内核通识——内核中架构相关代码简介

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。

1、内核代码基本分为3块

(1)arch目录

本目录下全是cpu架构有关的代码。本文说的就是这个目录中的内容。


(2)drivers目录

本目录下全是硬件的驱动。


(3)其他内容

这些代码都和硬件无关,因此系统移植和驱动开发的时候这些代码几乎不用关注。

2、与架构相关的常用目录名及含义

 注意上面截图是ARM架的,因为我们开发板采用ARM芯片。

(1)/arch/arm/mach-xxx

mach就是machine architecture(机器架构)。

/arch/arm目录下的一个mach-xxx目录就表示一类machine,这类machine都使用xxx这个cpu来做主芯片,比如/arch/arm/mach-s5pv210目录里面,都是一些用s5pv210作为主芯片的开发板。

而mach-xx目录里面的一个mach-yy.c文件,则定义了一个开发板(一个开发板对应一个机器码),这个是可以被扩展的。比如/arch/arm/mach-s5pv210目录中,有mach-smdkc110.c、mach-smdkv210.c、mach-x210.c等文件。


(2)/arch/arm/plat-xxx

plat是platform的缩写,含义是平台。

plat可以理解为SoC,这个plat目录下都是SoC里面的一些硬件(内部外设)相关的代码。
在内核中把SoC内部外设相关的硬件操作代码就叫做平台设备驱动


(3)/arch/arm/include

这个include目录中的所有代码都是架构相关的头文件。

3、补充说明

(1)内核中的文件结构很庞大与凌乱,不同版本的内核可能一个文件存放的位置是不同的,给初学者带来一定的困扰。

(2)头文件目录include有好几个,使用时要注意具体是哪个。

//内核通用头文件
x210_kernel/include  //架构相关的头文件
x210_kernel/arch/arm/include        
x210_kernel/arch/arm/include/asm
x210_kernel/arch/arm/include/asm/mach
x210_kernel/arch/arm/mach-s5pv210/include/mach
x210_kernel/arch/arm/plat-s5p/include/plat

(3)内核中包含头文件时有一些格式。

#include <linux/kernel.h>  //x210_kernel/include/linux/kernel.h
#include <asm/mach/arch.h>//x210_kernel/arch/arm/include/asm/mach/arch.h
#include <asm/setup.h>    //x210_kernel/arch/arm/include/asm/setup.h
#include <plat/s5pv210.h> //x210_kernel/arch/arm/plat-s5p/include/plat/s5pv210.h

(4)有些同名的头文件是有包含关系的,有时候我们需要包含某个头文件时可能并不是直接包含它,而是包含一个包含着它的头文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/460544.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java   cxf实现webservice接口方式之不依赖spring

今天需要用cxf来实现webserive接口的需求。网上搜了搜资料基本上都是cxf结合spring的方式。整理了一份不依赖spirng的方式。学习学习 第一步&#xff1a;导入需要的jar包第二步&#xff1a;编写接口类&#xff1a;package com.tydic.test.service.cxf;public interface HelloT…

一道关于比赛胜负的Sql查询题目

以前做过一道题目&#xff0c;一直没有来得及总结下来。贴图&#xff1a; 记得以前曾经找到了两种方法&#xff0c;今天试了一下&#xff0c;还是可以的&#xff0c;贴出过程&#xff1a; 下面是具体的查询方法&#xff1a; 原来放的是图片,今天又练习了一下,附代码: 1 create …

SharePoint 2013 Nintex Workflow 工作流帮助(六)

博客地址 http://blog.csdn.net/foxdave 工作流动作 7. Call web service&#xff08;Integration分组&#xff09; 一个调用WebService的操作。 自然&#xff0c;配置项中主要是指向一个WebService进行调用。 关于配置项的说明&#xff1a; URL 必填项&#xff0c;也就是WebSe…

C#实现反射调用动态加载的DLL文件中的方法

反射的作用&#xff1a;1&#xff0e; 可以使用反射动态地创建类型的实例&#xff0c;将类型绑定到现有对象&#xff0c;或从现有对象中获取类型 2&#xff0e; 应用程序需要在运行时从某个特定的程序集中载入一个特定的类型&#xff0c;以便实现某个任务时可以用到反射。3&…

uboot的移植一一更换控制台串口

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 1、场景需求 X210开发板的SOC中一共有4个串口&#xff08;串口0~3&#xff09;&#xff0c;并且用DB9接口引出了2个串口&#xff0c;分别是串口0和串口2。其中靠近网口的是串口0&#xff0c;远离网口…

Oracle初始化参数之memory_target

一、引言&#xff1a; Oracle 9i引入pga_aggregate_target&#xff0c;可以自动对PGA进行调整&#xff1b; Oracle 10g引入sga_target&#xff0c;可以自动对SGA进行调整&#xff1b; Oracle 11g则对这两部分进行综合&#xff0c;引入memory_target&#xff0c;可以自动调整所有…

充实你的素材库!10款免费的 PSD 素材下载

由于网页设计师没有时间来自己从零开始设计&#xff0c;所以在设计项目中使用网络上已有的设计素材是常见的方式。这就是为什么我们经常会到网上搜索可以免费下载的素材。 今天&#xff0c;我们这里有几套不同的免费的 PSD 素材分享给你&#xff0c;从 iPhone 样机到用户界面等…

Linux系统下的硬盘分区、格式化与挂载

以下内容源于网络资源的学习与整理&#xff0c;如有侵权请告知删除。 参考内容 分区是什么意思_360问答 磁盘分区_360百科 挂载_360百科 fdisk对一个块设备进行分区_XZY028的博客-CSDN博客_块设备分区 怎么创建一个ramdisk块设备_XZY028的博客-CSDN博客 linux磁盘分区和挂载_苍…

position:fixed和scroll实现div浮动【示例】

前言 在自己建站的过程中&#xff0c;要实现一个div随滚动条浮动的效果&#xff0c;网上找了些示例不太好用&#xff0c;还是自己动手&#xff0c;丰衣足食&#xff0c;写的不好请大家谅解&#xff0c;毕竟我不是搞前端的&#xff0c;因为自己建站毕竟每一步都必须自己来&#…

HashMap vs ConcurrentHashMap — 示例及Iterator探秘

2019独角兽企业重金招聘Python工程师标准>>> 如果你是一名Java开发人员&#xff0c;我能够确定你肯定知道ConcurrentModificationException&#xff0c;它是在使用迭代器遍历集合对象时修改集合对象造成的&#xff08;并发修改&#xff09;异常。实际上&#xff0c;…

VMware虚拟机连不上移动硬盘或USB

解决方法&#xff1a; &#xff08;1&#xff09;打开虚拟机设置。 &#xff08;2&#xff09;选择USB控制器。 &#xff08;3&#xff09;USB兼容性选择USB3.0。 &#xff08;4&#xff09;重启。

拾遗----javascript一些实用方法

1、 join&#xff08;&#xff09; join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。 var ids []; for(var i 0 ;i <array.length ; i){ ids.push(array[i].id); // 将多个id 加入…

谷歌浏览器跨域报错解决办法

谷歌浏览器跨域报错&#xff1a; 在浏览器属性设置一下就可以了。 最后&#xff0c;先打开浏览器&#xff0c;就可以了。 转载于:https://www.cnblogs.com/fanyun/p/4263363.html

如何对iNand进行分区?(fdisk命令的源码分析)

以下内容源于网络资源的学习与整理&#xff0c;如有侵权请告知删除。 参考内容 硬盘分区、寻址和系统启动过程 - 走看看 x210&#xff1a;iNand分区情况_毛裤先生_2的博客-CSDN博客 Linux系统是如何识别硬盘设备和硬盘分区的&#xff1f; uboot之uboot中环境变量_雨于鱼的博客…

Unable to find the ncurses libraries or the required header files解决

问题&#xff1a; 解决方法: sudo apt-get install ncurses-dev 参考&#xff1a;Unable to find the ncurses libraries or the required header files解决 转载于:https://www.cnblogs.com/amanlikethis/p/3591353.html

iOS自动布局进阶用法

本文主要介绍几个我遇到并总结的相对高级的用法&#xff08;当然啦牛人会觉得这也不算什么&#xff09;。 简单的storyboard中上下左右约束&#xff0c;固定宽高啥的用法在这里就不做赘述了。 autolayout自动布局是iOS6以后出现的&#xff0c;但是在开始的一段时间里大家并不怎…

Windows系统与Linux系统下的硬盘分区操作

以下内容源于网络资源的学习与整理&#xff0c;如有其侵权请告知删除。 之前在uboot中利用fdisk命令对X210开发板的iNand进行分区时&#xff0c; 因为不小心在uboot中利用“fdisk -c 1”&#xff08;1对应着sd卡&#xff0c;0对应着iNand&#xff09;对sd卡也分区了&#xff…

您应该了解的 Windows Azure 网站在线工具

&#xfeff;&#xfeff;编辑人员注释&#xff1a;本文章由Windows Azure 网站团队的软件开发者 Amit Apple 撰写。 如果想要了解并亲身参与计算资源管理&#xff0c;那么您一定会很高兴得知这一消息&#xff1a;Windows Azure 网站现在提供一些非常有用的在线工具&#xff0c…

【自己给自己题目做】:如何在Canvas上实现魔方效果

最终demo -> 3d魔方 体验方法&#xff1a; 浮动鼠标找到合适的位置&#xff0c;按空格键暂停选择要翻转的3*3模块&#xff0c;找到相邻两个正方体&#xff0c;鼠标点击第一个正方体&#xff0c;并且一直保持鼠标按下的状态直到移到第二个正方体后放开&#xff0c;比如下图&…

彻底搞懂硬盘相关的概念

以下内容源于网络资源的学习与整理&#xff0c;如有侵权请告知删除。 参考博客 硬盘结构&#xff08;机械硬盘和固态硬盘&#xff09;详解 简单理解磁盘结构_Guanngxu的博客-CSDN博客_磁盘的结构 硬盘基础知识_Forskamse的博客-CSDN博客 硬盘知识笔记整理_落子摘星的博客-CSDN…