嵌入式操作系统-设计与实现:第十章 Hello China的驱动程序管理框架.docVIP

嵌入式操作系统-设计与实现:第十章 Hello China的驱动程序管理框架.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式操作系统-设计与实现:第十章 Hello China的驱动程序管理框架

驱动程序管理框架 (The architecture of Hello China,loadable module and device driver) By Garry Xin All right reserved,2005/04/02 目录 设备驱动程序管理框架 3 概述 3 设备管理器和IO管理器 4 Hello China的设备管理框架 12 I/O管理器(I/OManager) 14 文件系统的实现 33 文件系统与文件的命名 33 文件系统驱动程序 34 打开一个文件的操作流程 34 设备驱动程序框架 35 设备请求控制块(DRCB) 35 设备驱动程序的文件组织结构 38 设备驱动程序的功能实现 39 设备驱动程序对象 42 DriverEntry的实现 43 UnloadEntry的实现 44 设备对象 45 设备对象的定义 45 设备对象的命名 45 设备对象的类型 46 设备对象的设备扩展 47 设备的打开操作 48 设备命名策略 49 设备的中断管理 50 设备驱动程序管理框架 概述 设备管理是操作系统最核心的管理任务之一,实际上,在一个典型的成熟的操作系统当中,设备管理部分的实现代码,可能占整个操作系统实现代码的一半,可见设备管理部分的复杂性和重要性。 由于硬件设备的多样性,操作系统不可能对每种硬件都自己直接驱动,而是采用一种分层的结构,即由硬件设备制造商(Vendor)提供针对特定硬件的设备驱动程序(Driver),设备驱动程序安装在计算机上,由操作系统调用设备驱动程序来控制硬件。这样就可以避免各种各样的麻烦,保持操作系统良好的可扩充性。 因此,一般来说,操作系统面临的是设备驱动程序,而设备驱动程序再进一步对设备进行驱动或管理,操作系统一般不直接面向具体的硬件设备,要实现这个功能,那么操作系统必须提供一个标准的接口给设备驱动程序,以便设备驱动程序可以向上跟操作系统交互,操作系统也根据自己提供的这个接口,来调用设备驱动程序的一些功能函数,来简介的操纵硬件。 另外,在设备管理过程当中,还有一些问题要解决,诸如: 如何标识和命名一个设备,如果一个设备得到良好的命名,那么用户程序就可以直接根据设备名字来打开设备,进而请求设备提供的服务,相反,如果无法正常的命名设备,那么用户将无法通知操作系统,自己想操纵哪个设备,因此,设备的命名机制,实际上是用户应用程序跟操作系统之间的接口; 如何处理设备中断,一般情况下,设备是通过中断的方式来通知操作系统,特定的事件已经发生(有些情况下,是被动通知的,即操作系统需要被动的查询设备),操作系统在收到中断通知之后,会根据中断号,调用合适的中断处理程序,一般情况下,中断处理程序是在设备驱动程序中的,因此,设备如何把自己特定的中断处理程序注册到操作系统中,也是需要解决的一个问题; 硬件资源的分配问题,所谓硬件资源,即包括中断号、输入/输出端口号、DMA通道、内存映射区域在内的系统资源。这些系统资源的分配,可以有两种方式:其一,静态分配,由人工的方式,手工设置设备所使用的资源情况,然后这些设置保存在一个配置文件中,设备驱动程序分析这个配置文件,获得资源分配情况,或者由设备管理单元通知设备驱动程序,这种方式的好处是,不需要操作系统核心做额外的事情,所有硬件资源都由计算机管理者手工分配,但有一个问题,就是操作起来比较麻烦,尤其是对于初级用户,可能会是一个很大的挑战,而且有可能出现资源冲突的现象,比如,由于错误的分配,两个硬件设备占用了同一个中断。另外一种分配方式,就是动态分配,操作系统核心在加载的时候,通过某种总线协议,动态的检测存在总线上的设备,并集中分配系统资源,然后通过某种协议通知设备驱动程序,显然,这种方式是一种理想的方式,不需要用户过多的干预,而且由于集中分配,避免了资源冲突问题。但这种方式需要系统总线的支持,有些情况下,系统总线是不支持自动发现设备的,这时候就需要通过手工的方式,静态分配系统资源; 用户线程对设备的调用问题,用户如何通过一种统一的接口,调用各种不同的设备驱动程序提供的服务,也是设备管理模块在设计过程中,需要重点考虑的问题之一。一般情况下,不可能为每种不同的设备,都提供一套特定的调用接口,由用户线程调用,而是由设备管理框架提供一套统一的接口,用户线程通过这套统一的接口,调用不同的设备驱动程序提供的服务。 一般情况下,一个操作系统的设备管理部件,需要通盘考虑上述问题,并针对上述问题,提供合理的解决方案,来实现一个可以真正使用的设备管理部件。 Hello China的设计过程中,对于设备管理部件,在设计的初期,也充分考虑了上述问题,并采取了合适的手段,对上述问题进行了解决。在本文中,我们就Hello China的设备管理模块,进行详细的描述,包括其总体框架模型

文档评论(0)

153****9595 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档