嵌入式Linux设备驱动程序开发分析

来源 :计算机光盘软件与应用 | 被引量 : 0次 | 上传用户:jiaxing19871215
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:为了探讨嵌入式Linux设备驱动程序开发,文中对其设备驱动程序完成了以下分析:Linux设备驱动程序开发过程;基本组成结构;设备驱动程序的框架。
  关键词:嵌入式;Linux设备;驱动程序;开发过程
  中图分类号:TP311.52
  1 设备驱动程序
  1.1 Linux设备驱动程序开发过程
  Linux操作系统的主要设备是块设备、字符设备和网络设备这三类类型的文。
  字符设备能够保证在文件存取时减少缓存垃圾,这样一来就能使字符设备能够驱动程序能够像访问文件一样的字符设备以此来负责实现这些行为,并实现操作。
  块设备可以看作是类似磁盘这样的文件系统的宿主。同时能被Linux允许一次传输的字节数目不限,在读取设备时也能像读取字符设备那样并且能使两者的读取数方式是一致。
  而网络设备异于其他两者,因为其设备面向的上一层是一个网络协议层,要想实现数据访问就必须得需要通过BSD套接口。
  但实际上,无论所有嵌入式Linux设备的驱动程序有多少不同,都会有一些共性,所以在开发过程中,能够实现任何类型的驱动程序通用化,这些特性举例如下:
  (1)读/写。输入和输出是几乎所有设备都支持的两种基本操作,并由各个驱动程序自身来完成。接口是由系统规定好并实行读/写操作的,这样一来就能直接由驱动程序来实践并完成具体的操作和功能。一旦当驱动程序逐渐初始化的过程中,那么则需要注册读/写函数到操作系统的接口中。
  (2)中断。作为计算机中的一个非常重要的功能,中断处理程序也应当同读写一样注册到系统中,因为使操作系統在程序无响应时能够提供使驱动程序中断的能力。这样一来操作系统会在硬件中断发生后自动调用驱动程序并处理程序。
  (3)时钟。许多开发设备驱动程序时上也会运用到时钟,由于驱动程序必须由操作系统提供定时机制,所以在注册时钟函数时通常是在预定的时问过了之后。完成一个Linux嵌入式设备驱动程序的流程如下:给主、次设备号下定义,或实现动态获取;完成初始化或清除驱动函数→设计好预定要实现的文件的各种操作→审核定义file—operations结构→调试所需的文件操作→向内核保证实现中断服务并注册→用命令将驱动编译到内核并完成加载→优化生成设备节点的文件。这样的流程是该程序的基本流程。
  1.2 基本组成结构
  综上所述可分析得出,通常可以将加载设备驱动程序的工作流程解析如下。
  首先,为了保险地往内核中插入设备程序我们可以通过模块的加载命令insmod,然后,毫无疑问地需要使用init—module的方法,这样一来就可以直接得到insmod对设备的init函数进行指针初始化的结果,最后就可以通过register-dev方法注册该设备到Linux系统。
  这种方法一旦成功,则能够完全实现通过调用init函数指针初始化所指的设备这一方法,在设备链表的末尾直接插入device数据结构,最后通过rmmod调用cleanupmodule这种设备驱动程序来方便执行模块卸载命令的方法。
  1.3 设备驱动程序的框架
  图1为嵌入式Linux的系统架构,实现Linux的设备驱动程序与内核的接口连接即可分为三部分:为实现设备的初始化与系统启动的代码的接口实现对接;通过file2operation来完成与内核接口的对接;与设备的接口对接后的对设备进行读写等操作。
  由此可见,每一个设备驱动程序都有其特定的的任务与相对应的函数集。当一个被称为file2opera2tion的数据结构被一个驱动程序所拥有,那么显而易见的是其中包含的指针会指向驱动程序内部的大多数函数。通常我们在实行一系列的与引导系统相关联的操作时,内核的作用就是能够调用所有的驱动程序的初始化函数并将其统一在一起,并将得到的信息输出给内核,通常此类信息包括:驱动程序的主设备号或是内部的函数地址结构。这如此一来,仅需通过内核,就能了解到各个设备驱动程序的信息,这种方法不仅简单而且快捷方便,也节省了许多时间。
  2 结语
  通常,针对特殊的硬件设施问题,因此会在驱动程序原有的上作出调整,结合各类信息并为其编写出个别的基本的函数,这样一来,设计构想就完成了。再者再通过各种渠道向虚拟文件系统(VFS)投递并注册,这种工作也就是被称为为Linux内核系统编写驱动程序。相应的好处就是当上层应用在使用的过程中发生变更时,VFS系统也会随之作出相应的调整或是更改设备函数,好使整体更加契合。
  参考文献:
  [1]肖杰,李仁发,徐成.基于嵌入式Linux设备驱动程序的开发[J].科学技术与工程,2006,3:323-326.
  [2]甄诚,董秀珍,付峰,刘晓东.小型医疗仪器中嵌入式Linux设备驱动程序的开发[J].医疗卫生装备,2006,5:20-21.
  [3]董志国,李式巨.嵌入式Linux设备驱动程序开发[J].计算机工程与设计,2006,20:3737-3740.
  [4]赵伟,张昕凯,谭彩虹.基于嵌入式Linux的DPR设备驱动程序开发[J].仪器仪表学报,2006,S3:2050-2053.
  [5]苟培培,郭麦成,孙静,王涛.嵌入式Linux设备驱动的研究与开发[J].电脑编程技巧与维护,2007,4:72-74.
其他文献
(漳州城市职业学院,福建 漳州 363000)  摘 要:无线点餐,利用两台安卓平板电脑通过WIFI和一台充当服务器的台式机连接,开发一个简单的点餐系统,实现前台点餐,吧台处可以出账入账,可修改菜单,两台打印机(吧台和厨房)输出纸质。  关键词:无线点餐;安卓;WIFI  中图分类号:TP311.52 文献标识码:A 文章编号:1007-9599 (2013) 09-0000-03  1 无线系统
突击队、轻骑队、工农通讯员组织和同志审判会等群众团体,是中央苏区党领导群众运动开展反腐败斗争的中坚力量。中国共产党和临时中央政府,不仅动员、组织中央苏区的各群众团体
本研究从电力建设工程的概念出发,分析了电力建设工程的特点,研讨了电力建设工程概预算管理过程中的问题,阐述了电力建设工程概预算管理的现状,提供了有助于电力建设工程加强
电子海图质量控制经常使用第三方质量检查软件,ENCAnalyzer软件正是目前较为完善的一个电子海图质量控制工具。作为SevenCSENCtools软件包的一部分,该软件具有其自身的质量检查
在上一期中,我们在用例描述、域模型的基础上,通过Robustness分析工具,更进一步地理解了每一个用例的处理流程。而且在域模型的基础上,通过引入与设计相关的边界对象、控制对象,充
本文在分析企业品牌建设内涵基础上,分析了企业品牌建设在企业转型与产业升级中的重要影响,侧重从做好品牌建设实施规划、高度重视与落实品牌建设和以创新为支撑提升企业产品
2014年7月采集鞍山市大气中PM2.5样品,采用IMPROVE-TOR方法准确测量了样品中的8个碳组分,研究了鞍山城区夏季PM2.5及其载带的碳组分的污染特征。鞍山市夏季PM2.5浓度为(53.4±18.0)μg/m3,有机碳(OC)、元素碳(EC)和总碳(TC)占PM2.5的比例分别为(11.89±3.86)%、(4.79±1.31)%和(16.68±5.02)%,表明碳是鞍山城区夏季PM2.
摘要:在Web服务组合过程中,QoS(quality of service)是决定其组合能否成功的关键因素之一。这篇文章在分析了Web服务组合中QoS的非功能属性基础上,分别从四个角度来描述通用的QoS属性,并对服务构件的QoS服务质量进行了量化,最后给出了开放环境下Web服务组合中QoS的评分度量模型。  关键词:Web服务组合;QoS;度量模型  中图分类号:TP393.09  QoS(qua
当前,应从以下五个方面来实现党的依法执政:一是树立"法治"治党理念,增强依法执政意识;二是明确依法执政能力建设的评价标准,提高依法执政能力;三是建立制度治党机制,为实现
在飞速发展的信息化时代,随着计算机技术的普及,数据库成了一种非常重要的信息存储工具。在以数据库为核心的应用系统中,查询操作最为频繁,而实现快速有效的查询对数据库的性能有