- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux内核的编译加载 make menuconfig make zImage make modules 内核配置系统由以下3部分组成: makefile: 定义编译规则 Kconfig: 给用户提供配置选择功能 配置工具: 配置命令解释器和配置用户界面 第三十一页,共三十六页。 .config配置文件 运行make menuconfig时,配置工具首先分析与体系结构对应的/arch/xxx/Kconfig文件,该文件除包含一些与体系结构相关的配置项外,通过source语句引入一系列Kconfig文件,而这些Kconfig可再次通过source引入下一层Kconfig… 一般地,驱动工程师在drivers目录的相应子目录增加新设备驱动代码,并增加或修改Kconfig配置文件和Makefile脚本 第三十二页,共三十六页。 小结:Linux驱动程序 在Linux操作系统中驱动程序是操作系统内核与硬件设备之间的桥梁,它屏蔽了硬件的细节 (如总线协议、DMA操作等),在应用程序看来硬件设备只是一个特殊的文件。 驱动程序的基本功能主要有以下几点: 对设备的初始化和释放。如对音频设备而言包括向内核注册设备,设置音频的输入输出参数 (采样频率、采样宽度等)、分配音频设备使用的内核内存等工作。 对设备进行管理。包括实时参数设置以及提供对设备的操作接口服务。 负责内核和设备之间的数据交换 。这需要在用户空间、内核空间、总线及外设之间传输数据。 检测和处理设备工作过程中出现的错误。 第三十三页,共三十六页。 小结: Linux驱动程序 Linux设备驱动程序一般集成在操作系统内核中,这样,不同的应用程序就可以共享这些代码。设备驱动程序实际是处理或操作硬件控制器的软件,从本质上讲,它们是内核中具有高特权级的、驻留内存的、可共享的底层硬件处理例程。 设备驱动程序的一个基本特点就是对设备的抽象处理。系统中的所有硬件设备看起来都与一般的文件一样,它们可以使用处理文件的标准系统调用来打开、关闭和读写。即, Linux下的设备驱动程序被组织成一组完成不同任务的函数的集合,通过这些函数使得Linux的设备操作犹如文件一般。在应用程序看来,硬件设备只是一个设备文件,应用程序可以象操作普通文件一样对硬件设备进行操作,如open ( )、close ( )、read ( )、write ( ) 等。 第三十四页,共三十六页。 小结: Linux驱动程序 Linux下对外设的访问只能通过驱动程序来进行; Linux具有统一的驱动程序接口,以文件操作的方式管理驱动程序,如:open、read、write… 驱动程序是内核的一部分,可以使用中断、DMA等操作; 驱动程序需要在用户态和内核态之间传递数据; Linux屏蔽了应用层对外设的直接访问; Linux在用户态时不能处理中断。 第三十五页,共三十六页。 内容总结 Linux设备驱动程序设计第一章 简介。内核在有限的可用资源之上为每一个进程创建了独立的虚拟内存空间(MMU)。内核的各个部分在和内存管理系统交互的时候都使用相同的一组函数调用,包括简单的malloc/free和其他一些复杂的函数。内核在没有结构的硬件系统上面构造了结构化的文件系统。具有不同的内存映射(指针的传递处理)。DD的任务是将用户的标准化调用作用于实际硬件的设备特有操作上。它使得某个特定硬件能够响应一个定义良好的内部编程接口,同时完全隐蔽了设备的工作细节。用户通过一组与具体设备无关的标准化的调用来完成相应的操作。驱动程序的任务就是把这些标准化的系统调用映射到具体设备对于实际硬件的特定操作上 第三十六页,共三十六页。 * IF: InterFace * * 嵌入式linux下常见的文件系统? RomFS:只读文件系统,可以放在ROM空间,也可以在系统的RAM中,嵌入式linux中常用来作根文件系统? RamFS:利用VFS自身结构而形成的内存文件系统,使用系统的RAM空间? JFFS/JFFS2:为Flash设计的日志文件系统? Yaffs:专门为Nand Flash设计? proc:为内核和内核模块将信息发送给进程提供一种机制,可以查看系统模块装载的信息? devFS:设备文件系统Linux上的Ext2fs? 支持4 TB 存储、文件名称最长1012 字符? 可选择逻辑块? 快速符号链接? Ext2不适合flash设备? 是为象IDE 设备那样的块设备设计的,逻辑块大小必须是512 byte、1 KB、2KB等? 没有提供对基于扇区的擦除/写操作的良好管理? 如果在一个扇区中擦除单个字节,必须将整个
原创力文档


文档评论(0)