linux设备驱动归纳总结.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
linux设备驱动归纳总结

linux设备驱动归纳总结 内核:用于管理软硬件资源,并提供运行环境。如分配4G虚拟空间等。 linux设备驱动:是连接硬件和内核之间的桥梁。 linux系统按个人理解可按下划分: 应用层:包括POSIX接口,LIBC,图形库等,用于给用户提供访问 内核的接口。属于用户态,ARM运行在用户模式或 者系统模式下。 内核层:应用程序调用相关接口后,会通过系统调用,执行SWI指 令切换ARM的工作模式到超级用户模式下,根据用 户函数的要求执行相应的操作。 硬件层:硬件设备,当用户需要操作硬件时,内核会根据驱动接口 操作硬件设备 图结构如下: 举一个相对比较邪恶的类比: 在深圳的酒店经常会在门缝看到一些卡片,上面说可以通过打电话送货上门提供某中服务。 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 二.内核代码树介绍 linux-2.6.29 |-arch : 包含和硬件体系结构相关的代码 |-block : 硬盘调度算法,不是驱动 |-firmware : 固件,如BOIS |-Documentation: 标准官方文档 |-dirver : linux设备驱动 |-fs : 内核所支持的文件体系 |-include :头文件。linux/module.h linux/init.h 常用库。 |-init :库文件代码,C库函数在内核中的实现。 init/main.c -start_kernel-内核执行第一条代码 |-ipc : 进程件通信 |-mm :内存管理 |-kernel : 内核核心部分,包括进程调度等 |-net :网络协议 |-sound : 所有音频相关 | 其中,跟设备驱动有关并且经常查阅的文件夹有: init include : linux, asm-arm drivers: arch: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 三.内核补丁: 补丁一般都是基于某个版本内核生成的,用于升级旧内核。 打补丁需要注意: 1.对应版本的补丁只能用于对应版本的内核。 2.如果在已打补丁的内核再打补丁,需要先卸载原来补丁。 打补丁的方法: 1.制作补丁: diff -Nur linux-2.6.30/ linux-/ linux-.patch //N为新加的文件全部修改 //linux-2.6.30 旧版本 //linux- 新版本 //目标补丁 2.打补丁: cd linux-2.6.30 //!!注意在原文件夹的目录中打补丁 patch -p1 3.恢复: cd linux-2.6.30 //!!注意在原文件夹的目录中打补丁 patch -R xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 四.内核中的Makefile: 对于内核,Makefile分为5类: Documentation/kbuild/makefiles.txt描述如下: 50 The Makefiles have five parts: 51 5Makefile 总Makefile,控制内核的编译 5.config 内核配置文件,配置内核时生成, 如make menuconfig后 5arch/$/Makefile 对应体系结构的Makefile 5scripts/Makefile.* Makefile共用的规则 5kbuild Makefiles 各子目录下的Makefile,被上层的Makefile调用。 简单来说,编译内核会执行以下两步骤,它们分别干了以下的事情。 1一般的,我们会拷贝一个对应体系结构的配置文件到主目录下并改名为 .config,这样就在make menuconfig生成的图形配置中 已经有了一些默认的配置,减少用户的劳动量。不过这一步不做也没关系的。 2.mak

文档评论(0)

jiqingyong11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档