全球旧事资料 分类

1、了解在UPTECHS2410P270DVP平台上实现触摸屏Li
ux驱动程序的基本原理。2、了解Li
ux驱动开发的基本过程。
二、实验内容
以一个简单字符设备驱动程序为原型,剖析其基本结构。进行部分改写之后并编译实现其相应功能。
三、预备知识
1、掌握在Li
ux集成开发环境中编写和调试程序的基本过程。2、了解ARM芯片(本实验是针对ARMS3C2410系列)的基本结构。3、了解Li
ux内核中关于设备控制的基本原理。
四、实验设备及工具
硬件:UPNETARM2410S嵌入式实验仪,PC机pe
tum
500以上硬盘40G以上内存大于128M。软件::PC机操作系统REDHATLINUX90+超级终端或Xshell+AMRLINUX开发环境
五、实验原理
1、Li
ux设备驱动概述Li
ux设备驱动程序属于Li
ux内核的一部分,并在Li
ux内核中扮演着十
分重要的角色。它们像一个个“黑盒子”使某个特定的硬件响应一个定义良好的内部编程接口,同时完全隐蔽了设备的工作细节。用户通过一组标准化的调用来完成相关操作,这些标准化的调用是和具体设备驱动无关的,而驱动程序的任务就是把这些调用映射到具体设备对于实际硬件的特定操作上。
我们可以把设备驱动作为内核的一部分,直接编译到内核中,即静态编译,也可以单独作为一个模块(module)编译,在需要它的时候再动态的把它插入到内核中。在不需要时也可把它从内核中删除,即动态连接。显然动态连接比静态连接有更多的好处,但在嵌入式开发领域往往要求进行静态连接,尤其是像S3C44B0这种不带MMU的芯片。但在S3C2410等带MMU的ARM芯片中我们依然可以使用动态连接。目前Li
ux支持的设备驱动可分为三种:字符设备(characterdevice),块设备(blockdevice),网络接口设备(
etworki
terface)。当然它们之间的也并不是要严格的加以区分。2、Li
ux关于字符设备的管理
驱动程序在Li
ux内核中往往是以模块形式出现的。与应用程序的执行过程不同,模块通常只是预先向内核注册自己,当内核需要时响应请求。模块中包含两个重要的函数:i
it_module和clea
up_module。前者是模块的入口,它为模块调用做好准备工作,而后者则是在模块即将卸载时被调用,做一些清扫工作。
驱动程序模块通过函数:
21
fi
tregister_chrdevu
sig
edi
tmajorco
stchar
amestructfile_operatio
sfops来完成向内核注册的。其中u
sig
edi
tmajor为主设备号,co
stchar
ame为设备名,至于结构指针structfile_operatio
sfops它在驱动程序中十分重要。
在我们编写好一个驱动程序模块后,按传统的主次设备号的方法来进行设备管理,则我们应手工为该模块建立一个设备节点。r
好听全球资料 返回顶部