linux设备驱动归纳总结(一):内核的相关基础概念.doc

linux设备驱动归纳总结(一):内核的相关基础概念.doc

ID:15003854

大小:246.00 KB

页数:12页

时间:2018-07-31

linux设备驱动归纳总结(一):内核的相关基础概念.doc_第1页
linux设备驱动归纳总结(一):内核的相关基础概念.doc_第2页
linux设备驱动归纳总结(一):内核的相关基础概念.doc_第3页
linux设备驱动归纳总结(一):内核的相关基础概念.doc_第4页
linux设备驱动归纳总结(一):内核的相关基础概念.doc_第5页
资源描述:

《linux设备驱动归纳总结(一):内核的相关基础概念.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一.linux设备驱动的作用内核:用于管理软硬件资源,并提供运行环境。如分配4G虚拟空间等。linux设备驱动:是连接硬件和内核之间的桥梁。linux系统按个人理解可按下划分:应用层:包括POSIX接口,LIBC,图形库等,用于给用户提供访问 内核的接口。属于用户态,ARM运行在用户模式(usr)或 者系统模式(sys)下。内核层:应用程序调用相关接口后,会通过系统调用,执行SWI指 令切换ARM的工作模式到超级用户(svc)模式下,根据用 户函数的要求执行相应的操作。硬件层:硬件设备,当用户需要操作硬件时,内核会根据

2、驱动接口 操作硬件设备图结构如下:举一个相对比较邪恶的类比:在深圳的酒店经常会在门缝看到一些卡片,上面说可以通过打电话送货上门提供某中服务。xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx二.内核代码树介绍linux-2.6.29|-arch: 包含和硬件体系结构相关的代码|-block: 硬盘调度算法,不是驱动|-firmware: 固件,如BOIS|-Documentation: 标准官方文档

3、|-dirver:linux设备驱动|-fs: 内核所支持的文件体系|-include :头文件。linux/module.hlinux/init.h 常用库。|-init :库文件代码,C库函数在内核中的实现。init/main.c->start_kernel->内核执行第一条代码|-ipc: 进程件通信|-mm :内存管理|-kernel: 内核核心部分,包括进程调度等|-net :网络协议|-sound: 所有音频相关|其中,跟设备驱动有关并且经常查阅的文件夹有:initinclude:linux,asm-arm

4、drivers:arch:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx三.内核补丁:补丁一般都是基于某个版本内核生成的,用于升级旧内核。打补丁需要注意:1.对应版本的补丁只能用于对应版本的内核。2.如果在已打补丁的内核再打补丁,需要先卸载原来补丁。打补丁的方法:1.制作补丁:diff-Nurlinux-2.6.30/linux-2.6.30.1/>linux-2.6.30.1.patch//N

5、为新加的文件全部修改//linux-2.6.30 旧版本//linux-2.6.30.1 新版本//目标补丁2.打补丁:cdlinux-2.6.30//!!注意在原文件夹的目录中打补丁patch-p1<../linux-2.6.30.1.patch//-p1是忽略一级目录3.恢复:cdlinux-2.6.30//!!注意在原文件夹的目录中打补丁patch-R<../linux-2.6.30.1.patch//撤销补丁xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

6、xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx四.内核中的Makefile:对于内核,Makefile分为5类:Documentation/kbuild/makefiles.txt描述如下:50TheMakefileshavefiveparts:5152Makefile 总Makefile,控制内核的编译53.config 内核配置文件,配置内核时生成, 如makemenuconfig后54arch/$(ARCH)/Makefile 对应体系结构的Makefile55scripts/Makefil

7、e.*Makefile共用的规则56kbuildMakefiles 各子目录下的Makefile,被上层的Makefile调用。简单来说,编译内核会执行以下两步骤,它们分别干了以下的事情。1一般的,我们会拷贝一个对应体系结构的配置文件到主目录下并改名为 .config,这样就在makemenuconfig生成的图形配置中 已经有了一些默认的配置,减少用户的劳动量。不过这一步不做也没关系的。2.makemenuconfig2.1、由总Makefile决定编译的体系结构(ARCH). 编译工具(CROSS_COMPILE)

8、,并知道需要进去哪些内核根下的哪些目录进行编译。2.2、由arch/$(ARCH)/Makefile,决定arch/$(ARCH)下还有 的哪些目录和文件需要编译。2.3、知道了需要编译的目录后,递归的进入哪些目录下,读取每一个Kconfig的信息,生成了图形配置的界面。2.4、通过我们在图形配置界面中选项为[*]、[M]或者[]

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。