网站大量收购独家精品文档,联系QQ:2885784924

浅谈嵌入式Linux系统设备驱动的开发与设计.docVIP

浅谈嵌入式Linux系统设备驱动的开发与设计.doc

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

浅谈嵌入式Linux系统设备驱动的开发与设计 【 摘 要 】 主要阐述了嵌入式linux设备驱动程序的概念,归纳嵌入式linux设备驱动程序的共性,探讨嵌入式linux设备驱动程序具体开发流程以及驱动程序的关键代码,总结嵌入式 linux设备驱动程序开发的主导思想。 【 关键词 】 嵌入式系统;linux;设备驱动程序;内核 【 abstract 】 the paper presents the concept of embedded linux device driver program, summarized in the embedded linux device driver of generality, embedded linux device driver specific development process as well as the driver of the key code, sum up the embedded linux device driver development of the dominant ideology. 【 keywords 】 embedded system; linux; device driver; kernel 0 引言 嵌入式系统被广泛运用到消费、汽车、电子、微控制、无线通信、数码产品、网络设备、安全系统等领域。越来越多的公司、研究单位、大专院校、以及个人开始进行嵌入式系统的研究,嵌入式系统设计将是未来相当长一段时间内研究的热点。 1 linux设备驱动程序概述 嵌入式linux以其可应用于多种硬件平台、内核高效稳定、源码开放、软件丰富、网络通信和文件管理机制完善等优良特性,成为嵌入式系统领域中的一个研究热点。嵌入式linux系统中,内核提供保护机制,用户空间的进程一般不能直接访问硬件。进行嵌入式系统的开发,很大的工作量是为各种设备编写驱动程序,除非系统不使用操作系统。linux设备驱动程序在linux内核源代码中占有很大比例,从2.0、2.2到2.4版本的内核,源代码的长度日益增加,其实主要是设备驱动程序在增加。 设备驱动程序在linux内核中占有极其重要的位置,它是内核用于完成对物理设备的控制操作的功能模块。除了cpu、内存以及其他很少的几个部分之外,所有的设备控制操作都必须由与被控设备相关的代码,也就是驱动程序来完成。内核必须包括与系统中的每个外部设备对应的驱动程序。否则设备就无法在linux下正常工作。这就是驱动程序开发成为linux内核开发的主要工作的原因。从内核源码的代码分布可以看出,设备驱动源码至少占据了一半的内核源码量,更能说明设备驱动程序对操作系统的意义和价值。 2 嵌入式linux设备驱动程序开发 2.1 设备驱动程序工作原理 在linux操作系统下有3类主要的设备文件类型:块设备、字符设备和网络设备。这种分类方法可以将控制不同输入/输出设备的驱动程序与其它操作系统软件分离开来。字符设备与块设备的主要区别是:在对字符设备发出读/写请求时,实际的硬件i/o一般紧接着发生。块设备则不然,它利用一块系统内存作缓冲区,若用户进程对设备的请求能满足用户的要求,就返回请求的数据;否则,就调用请求函数来进行实际的i/o操作。网络设备可以通过bsd套接口访问数据。所有嵌入式linux设备驱动程序都有一些共性,是编写所有类型的驱动程序都通用的,操作系统提供给驱动程序的支持也大致相同。这些特性包括: (1)读/写 几乎所有设备都有输入和输出。每个驱动程序都要负责本设备的读/写操作,操作系统的其它部分不需要知道对设备的具体读/写操作是怎样进行的,这些都由驱动程序屏蔽掉了。操作系统定义好一些读/写接口,由驱动程序完成具体的功能。在驱动程序初始化时,需要把具有这种接口的读/写函数注册到操作系统。 (2)中断 中断在现代计算机结构中有重要的地位,操作系统必须提供驱动程序响应中断的能力。一般是把一个中断处理程序注册到系统中,操作系统在硬件中断发生后,调用驱动程序的处理程序。linux支持中断的共享,即多个设备共享一个中断。 (3)时钟 在实现驱动程序时,很多地方会用到时钟,例如某些协议里的超时处理,没有中断机制的硬件的轮询等。操作系统应为驱动程序提供定时机制,一般是在预定的时间过了以后,回调注册的时钟函数。 嵌入式linux系统驱动程序开发与普通linux没有太多区别。嵌入式设备由于硬件种类非常丰富,在缺省的内核发布版中不可能包括所有驱动程序。可以在硬件生产厂家或者intemet上寻找驱动程序,如果找不到,可以根据一个相近硬件的驱动程序来改写。实现一个嵌入式linux设备驱动的大致流程如下: (1)定义主、次设备号,也可以动态获取;(2)实

文档评论(0)

docinppt + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档