linux字符设备驱动开发方法与应用实例

linux字符设备驱动开发方法与应用实例

ID:34523242

大小:743.67 KB

页数:3页

时间:2019-03-07

linux字符设备驱动开发方法与应用实例_第1页
linux字符设备驱动开发方法与应用实例_第2页
linux字符设备驱动开发方法与应用实例_第3页
资源描述:

《linux字符设备驱动开发方法与应用实例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、技术应用研栏目编辑:梁春丽E-mail:lianglizi505@163.com究Linux字符设备驱动开发方法与应用实例■广州市中德电控有限公司简杰鸿■华南师范大学物理与电信工程学院刘朝辉摘要:本文总结了Linux系统下设备驱动程序的工作原理,介绍了基于LKM(LinuxKernelModel)的Linux字符设备驱动开发方法,完成利用计算机并口的交通灯设备的驱动程序。本设计在内核为Linux-2.4.8环境下编译通过,并可以运行。关键词:Linux;驱动程序;模块装载;操作系统一、引言目前,Linux作为开放源码的操作系统已广泛应用,其

2、强大的网络处理能力、高稳定性和较强的安全性得到了普遍的认同,但不可回避的是Linux上的应用程序相对来说还十分有限,对各种硬件的支持远不如Windows系统。其中对硬件的广泛支持能力主要取决于各种设备的驱动程序,由于目前许多硬件厂商在出售各种板卡等产品时,一般都不带Linux下的设备驱动程序,这使那些图1LED与D型连接器连接图图2十字路口红绿灯示意图想在Linux上搞开发应用的人员受到了很大的限制。因此,本文对Linux设备驱动程序的编写方法作了插到时间队列,这将使用Linux的定时器报时,即每秒中一些总结,也编写了一个应用实例,详细讨论

3、了与操作断100次。系统的软件接口部分,为那些想将其他系统下的驱动程序移植到Linux下的人员提供参考。该文参照Linux-2.4三、Linux设备驱动程序的工作原理的内核源代码提供有关数据结构和函数。设备驱动程序的工作原理如图3所示。在I/O设备管理中,与设备相关的代码是设备驱动程序。组成设备二、系统的硬件设计驱动程序的代码按照执行时间是否确定,可将其分为本设计的硬件设计如图1和图2所示,只需要一个同步执行和异步执行的代码。在Linux内核中把同步执25针的D型插座、8个二极管和8个电阻,就可以模拟一行的代码称为驱动程序的下半部,把异步执

4、行的代码个十字路口的交通灯。称为上半部,这是因为异步执行的代码是中断服务程由微机接口技术可知,并口的最小配置由一些8位序,它直接访问设备硬件,而且在一般情况下是先于同的端口组成。写到输出端口的数据,表现为25脚D型插步执行的代码而运行。而驱动程序的下半部包含用户请座输出引脚上的电平信号。该接口是打印机使用的PC机求的I/O系统调用,包括读、写数据以及执行等操作,比并行接口。因为驱动的设备是LED发光二极管,这里不如read()和write()调用等;还包含对用户发出的控制请求能使用并口打印机的驱动程序。的响应,比如启动或关闭设备等。由于用户

5、发出的I/O功PC机的并口控制卡经常使用的2个I/O并口基地址能调用和控制请求是在确定的时间内发生,所以它是同是0x378和0x278,在并口通信中使用的电平信号是标步事件,从执行的先后顺序上看,它在中断程序的后面准的TTL电平:0伏和5伏。我们要把驱动程序的下部分被执行,所以把它称为驱动程序的下半部。2010年第10期99FINANCIALCOMPUTEROFHUANAN研技术应用究栏目编辑:梁春丽E-mail:lianglizi505@163.com逻辑I/O层处理的是与用户I/O操作请求有关,但与备驱动程序是操作系统内核和机器硬件之间

6、的接口。具体I/O设备的驱动程序无关的操作。或者说逻辑I/O设备驱动程序为应用程序屏蔽了硬件细节。在应用程层实现启动所有I/O设备驱动程序之前都必须执行的操序看来,硬件设备只是一个设备文件,可以通过相应的作。通过逻辑I/O层向用户层提供通用一致的接口,如系统调用像操作普通文件一样对硬件设备进行操作。打开、读、写、关闭等系统调用。凡属Unix类操作系统的设备驱动程序,基本遵循由SVR4提出的DDI/DKI(设备-驱动程序接口/驱动程序-内核接口)规范,对内核与驱动之间管理接口进行严格定义。DDI/DKI要求一个驱动程序包括驱动程序与内核、驱动

7、程序与硬件、驱动程序与引导3个部分。1.设备驱动程序与内核设备驱动程序与内核接口是编制驱动程序工作量最大的一部分。它的具体内容是提供内核与设备驱动程序的接口以及编制设备驱动程序的同步操作函数,具体到本设计中就是structfile_operations结构。此结构包括了驱动程序对它所管理的设备能够完成的所有图3I/O设备管理系统的层次结构操作。这些操作也就是应用程序能够对设备发出请求四、Linux设备驱动开发调用的所有操作函数,这些函数组成了设备驱动程序Linux对硬件的驱动支持有两种方式:一种使用的下部分。在本设计的交通灯设计中,只有输出

8、灯的Linux内核中提供的机制来实现,另一种直接在用户空状态,没有读进灯的状态,所以没有读的功能。Struct间实现。由于用户空间驱动程序的局限性,特别是响应file_opera

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。