内核中架构相关代码简介

以下内容源于朱友鹏《物联网大讲堂》课程的学习,如有侵权,请告知删除。

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

(1)arch:本目录下全是cpu架构有关的代码

(2)drivers:本目录下全是硬件的驱动

(3)其他:相同点是这些代码都和硬件无关,因此系统移植和驱动开发的时候这些代码几乎都是不用关注的。

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

(1)mach(machine architecture)

  • arch/arm目录下的一个mach-xx目录就表示一类machine,表明这类machine都用xx这个cpu来做主芯片(譬如mach-s5pv210这个文件夹里面都是用s5pv210作为主芯片的开发板machine);
  • mach-xx目录里面的一个mach-yy.c文件中定义了一个开发板(一个开发板对应一个机器码),这个是可以被扩展的。

(2)plat(platform)

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

(3)include

  • 这个include目录中的所有代码都是架构相关的头文件。(linux内核通用的头文件在内核源码树根目录下的include目录里)。

3、补充

(1)内核中的文件结构很庞大、很凌乱(不同版本的内核可能一个文件存放的位置是不同的)。

(2)头文件目录include有好几个,譬如:

kernel/include      内核通用头文件

kernel/arch/arm/include 架构相关的头文件

kernel/arch/arm/include/asm

kernel\arch\arm\include\asm\mach

kernel\arch\arm\mach-s5pv210\include\mach

kernel\arch\arm\plat-s5p\include\plat

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

#include <linux/kernel.h>  kernel/include/linux/kernel.h

#include <asm/mach/arch.h>        kernel/arch/arm/include/asm/mach/arch.h

#include <asm/setup.h>  kernel\arch\arm\include\asm/setup.h

#include <plat/s5pv210.h>  kernel\arch\arm\plat-s5p\include\plat/s5pv210.h

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

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

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

相关文章

All-In-One Code Framework [一站式示例代码库] 【转】

All-In-One Code Framework [一站式示例代码库]2010 对一站式示例代码库&#xff0c;对奋战在一站式示例代码库上的每一位工程师来说都是不同寻常的一年。 在我们共同努力和开发社区的支持下&#xff0c;该项目从一年前的草根雏形&#xff0c;成长为CodePlex排名前三&#xff0…

Repeater的嵌套

今天做了一个小项目学习一下&#xff0c;是关于两个Repeater的嵌套使用的&#xff1a; 关于Repeater的嵌套&#xff0c;关键在于数据项的绑定。 首先&#xff0c;外Repeater需要设置OnItemDataBound事件&#xff0c;在事件中添加子Repeater的数据项绑定&#xff1b; <asp:Re…

Ioc容器Autofac介绍

Autofac是轻量级的开源Ioc容器&#xff0c;在这里可以下载http://code.google.com/p/autofac/。如果你用过其他的Ioc容器&#xff0c;那么学习Autofac使用也会比较容易&#xff0c;下面将通过一些例子来讲解其用法。 先看一个例子&#xff1a; 首先新建一个工程&#xff0c;添加…

汇编指令的学习2——常用的ARM指令

一、常用ARM指令1&#xff1a;数据处理指令 &#xff08;1&#xff09;数据传输指令 mov mvn&#xff08;源目标按位取反后赋给目标&#xff09; &#xff08;2&#xff09;算术指令 add sub rsb adc sbc rsc &#xff08;3&#xff09;逻辑指令 and orr eor …

cocos2dx 3.4 截图代码

Size size Director::sharedDirector()->getWinSize(); //定义一个屏幕大小的渲染纹理 RenderTexture* pScreen RenderTexture::create(size.width,size.height, kCCTexture2DPixelFormat_RGBA8888); log("-------log1---");//获得当前的场景指针 Scene* pC…

NSURLRequest详解IOS最基础的api

http://blog.csdn.net/bl1988530/article/details/6590099转载于:https://www.cnblogs.com/qiqibo/archive/2012/08/22/2650996.html

正则表达式 Mather类的使用

Matcher类: 使用Matcher类,最重要的一个概念必须清楚:组(Group),在正则表达式中 ()定义了一个组,由于一个正则表达式可以包含很多的组,所以下面先说说怎么划分组的, 以及这些组和组的下标怎么对应的. 下面我们看看一个小例子,来说明这个问题 \w(\d\d)(\w) 这个正则表达式有三…

ARM协处理器的汇编指令

以下内容源于网络资源的学习与整理&#xff0c;如有侵权请告知删除。 一、协处理器的简介 协处理器&#xff08;cp&#xff0c;coprocessor&#xff09;是SoC内部的处理单元&#xff0c;用来协助主CPU实现一些特定的功能&#xff0c;比如MMU、cache、TLB等内容。ARM在设计上支…

用代码实现Sharepoint2010的个人信息的照片上传(2)(原创)

用代码从AD读取照片信息并同步到SharePoint2010的个人照片信息中 前言 上篇我们讲到用代码实现了照片信息同步到SharePoint2010的个人照片信息中&#xff0c;但是做的是从文件夹读取照片信息到SharePoint2010,今天我们要做的从AD的thumbnailPhoto属性中读取照片信息到SharePoin…

HTML5实现Word中文字全环绕图片效果

实现这个功能是当时看见数字报的展示出来的编排方式&#xff0c;就是图片热点&#xff0c;而且下载打开还是PDF的&#xff0c;让我这个WP用户咋个看。想实现Word中的编排方式&#xff0c;也需要浏览器支持Word插件&#xff0c;火狐、谷歌、Opera这些都要另外弄插件&#xff0c;…

汇编指令的学习4——ldm/stm指令、栈的处理

1、为什么需要多寄存器访问指令&#xff1f; ldr/str每周期只能访问4字节内存&#xff0c;如果需要批量读取、写入内存时太慢&#xff0c;解决方案是stm/ldm ldm (load register mutiple) stm&#xff08;store register mutiple&#xff09; 2、举例&#xff1a;stmia sp,…

第一课 GCC入门

1序言 gcc是一个可移植的编译器&#xff0c;支持多种硬件平台&#xff1b;也不仅仅是一个本地编译器也是一个跨平台编译器&#xff1b;支持多张语言编译时按照模块化设计支持多种语言。 gcc编译过程&#xff1a;预处理&#xff08;预处理器&#xff09;&#xff1b;编译&#x…

[转载] 晓说——第9期:多如牛毛严酷无比的美国那些法

转载于:https://www.cnblogs.com/6DAN_HUST/archive/2012/08/26/2657224.html

ARM的汇编伪指令【伪指令的解释】

本文作为此博文的伪指令章节的补充说明。 伪指令的含义 伪指令本质上不是指令。伪指令由编译器环境提供&#xff0c;用来指导编译过程&#xff0c;经过编译后伪指令不会生成机器码。 伪指令是和具体的编译器相关的。我们使用GNU工具链&#xff0c;因此学习GNU环境下的汇编伪指令…

关注 Imagine Cup 2010, 参与软件设计“最具人气奖”投票

关注 Imagine Cup 2010, 参与软件设计“最具人气奖”投票 Imagine Cup 2010全球总决赛将于7月3日到7月8日在波兰华沙举行。现在通过参与软件设计“最具人气”奖投票&#xff0c;你也可以参与到Imagine Cup 2010中。了解全球学生是如何用科技创新帮助我们解决人类面临的最困难问…

浏览器模拟用户登陆

javascript:document.getElementById(user).valuejack;document.getElementById(password).valuetest;submitForm();void(0);转载于:https://www.cnblogs.com/ahghy/p/3488839.html

Bzoj 2127 happiness 最小割

happiness 题解: 将图转换成最小割. 将割完的图中与S相连的点看做选文科, 与T相连的点看做选理科. flow(s, u) 文科值 flow(u,t) 理科值 假设u 和 v 一起选文科有奖励值z, flow(s,u) z/2 flow(s,v) z/2, flow(u,v) z/2 假设u 和 v 一起选理科有奖励值z, flow(u,t) z/2…

C中静态存储区和动态存储区

c语言中需要内存来存放数据。而内存主要分为两类&#xff1a;静态存储区和动态存储区。 1、静态存储区 &#xff08;1&#xff09;分为数据区&#xff08;只读数据区&#xff08;代码区&#xff1f;在linux中又叫文本段.text&#xff09;、读写数据区.data&#xff09;、未初始…

POJ 1149 最大流建图 PIGS

题意&#xff1a; 给出猪圈个数 m 和买家人数 n 然后给出m个猪圈的猪的头数.. 接下来 n 行.. 给出mm a1 a2 .. a(mm) k 例如 2 1 5 3 表示第i1个用户 有mm(2) 个猪圈的钥匙 就是有第 a1(1) 个和第 a2(5) 个猪圈的钥匙..还想要买得k头猪.. 问最多能够卖出多少头.. 思路&#xff…

【编译打包】tengine 1.5.2

tengine 官方没有提供rpm包&#xff0c;应网友要求&#xff0c;本文继续提供SRPM 包去掉了不相关的模块&#xff0c;支持平台为 rhel6 系列&#xff0c;适用于Web&#xff0c;LB&#xff0c;cache等场合。编译参数如下./configure \--prefix%{_sysconfdir}/nginx \--sbin-path%…