浅谈嵌入式Linux系统设备驱动的开发与设计
作者:张玲玲
来源:《信息安全与技术》2012年第02
        主要阐述了嵌入式Linux设备驱动程序的概念,归纳嵌入式Linux设备驱动程序的共性,探讨嵌入式Linux设备驱动程序具体开发流程以及驱动程序的关键代码,总结嵌入式 Linux设备驱动程序开发的主导思想。
        关键词 嵌入式系统;Linux;设备驱动程序;内核
        On Linux Embedded Eystem Device Driver Development and Design
        Zhang Ling-ling
        IT Center of the Daqing Oilfield Limited Company's No.10 Oil Production Company HeilongjiangDaqing 166405
        Abstract the paper presents the concept of embedded Linux device driver progra
m, 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.02.22.4版本的内核,源代码的长度日益增加,其实主要是设备驱动程序在增加。
        设备驱动程序在Linux内核中占有极其重要的位置,它是内核用于完成对物理设备的控制操作的功能模块。除了CPU、内存以及其他很少的几个部分之外,所有的设备控制操作都必须由与被控设备相关的代码,也就是驱动程序来完成。内核必须包括与系统中的每个外部设备对应的驱动程序。否则设备就无法在Linux下正常工作。这就是驱动程序开发成为Linux内核开发的主要工作的原因。从内核源码的代码分布可以看出,设备驱动源码至少占据了一半的内核源码量,更能说明设备驱动程序对操作系统的意义和价值。
        2 嵌入式Linux设备驱动程序开发
嵌入式linux开发书籍
        2.1 设备驱动程序工作原理
        Linux操作系统下有3类主要的设备文件类型:块设备、字符设备和网络设备。这种分类方法可以将控制不同输入/输出设备的驱动程序与其它操作系统软件分离开来。字符设备与块设备的主要区别是:在对字符设备发出读/写请求时,实际的硬件I/O一般紧接着发生。
块设备则不然,它利用一块系统内存作缓冲区,若用户进程对设备的请求能满足用户的要求,就返回请求的数据;否则,就调用请求函数来进行实际的I/O操作。网络设备可以通过BSD套接口访问数据。所有嵌入式Linux设备驱动程序都有一些共性,是编写所有类型的驱动程序都通用的,操作系统提供给驱动程序的支持也大致相同。这些特性包括:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。