设备驱动程序设计.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux 设备驱动程序设计Linux设备驱动程序设计郗闽军牛建伟实验目的学习Linux下进行驱动程序设计的原理掌握Linux设备驱动程序开发的基本过程和设计方法实验内容内核驱动设计入门-模块方式驱动程序(5.1)内核驱动设计实验-触摸屏驱动(5.2)写一个简单的应用程序,显示触摸位置的坐标(x,y)开发一个LED(数码管)驱动程序,并编写一个应用程序对所开发的驱动程序进行测试(大作业)实验实现的功能是上电复位后,数码管显示数字0-7,然后每一个数字依次闪烁一次,小数点也要点亮,即:Linux的设备驱动程序硬件设备与应用程序之间的一个中间软件层它使得某个特定硬件能够响应一个定义良好的内部编程接口,同时完全隐蔽了设备的工作细节用户通过一组与具体设备无关的标准化的调用来完成相应的操作驱动程序的任务就是把这些标准化的系统调用映射到具体设备对于实际硬件的特定操作上驱动程序是内核的一部分,可以使用中断、DMA等操作驱动程序在用户态和内核态之间传递数据设备驱动程序的分类字符设备所有能够象字节流一样访问的设备都通过字符设备来实现它们被映射为文件系统中的节点,通常在/dev/目录下面一般要包含open read write close等系统调用的实现块设备通常是指诸如磁盘、内存、Flash等可以容纳文件系统的存储设备。块设备也是通过文件系统来访问,与字符设备的区别是:内核管理数据的方式不同它允许象字符设备一样以字节流的方式来访问,也可一次传递任意多的字节。网络接口设备通常它指的是硬件设备,但有时也可能是一个软件设备(如回环接口loopback),它们由内核中网络子系统驱动,负责发送和接收数据包。它们的数据传送往往不是面向流的,因此很难将它们映射到一个文件系统的节点上。基本概念主设备号和次设备号主设备号和次设备号能够唯一地标识一个设备128(V2.0以前), 256(V2.0以后)主设备号相同的设备使用相同的驱动程序,次设备号用于区分具体设备的实例动态获取主设备号Linux下对设备号的分配请参考Documentation/devices.txt设备文件 Linux使用设备文件来统一对设备的访问接口,将设备文件放在/dev/目录下设备的命名一般为设备文件名+数字或者字母表示的子类,例如/dev/hda1, /dev/hda2等Linux 2.4以后引入了设备文件系统(devfs)的概念,所有的设备文件作为一个可以挂装的文件系统,这样就可以被文件系统统一管理,从而设备文件就可以挂装到任何需要的地方。一般将主设备建立一个目录,再将具体的子设备文件建立在此目录下。例如,/dev/mtdblock0基本概念驱动程序使用的2个重要结构struct filestruct file_operations基本概念struct file基本概念struct file数据结构定义位于include/fs.hstruct file结构与驱动相关的成员mode_t f_mode 标识文件的读写权限loff_t f_pos 当前读写位置unsigned int_f_flag 文件标志,主要进行阻塞/非阻塞型操作时检查struct file_operation * f_op 文件操作的结构指针void * private_data 驱动程序一般将它指向已经分配的数据struct dentry* f_dentry 文件对应的目录项结构基本概念设备驱动程序接口( struct file_operations), 标记化方法:static struct file_operations demo_fops = {owner: THIS_MODULE,write: demo_write,read: demo_read,ioctl: demo_ioctl,open: demo_open,release: demo_release,};基本概念设备驱动程序接口( struct file_operations )通常所说的设备驱动程序接口是指struct file_operations{ },它的定义位于include/linux/fs.h中。在嵌入式系统的开发中,通常只要实现如下几个接口函数就能完成系统所需要的功能init 加载驱动程序时,内核自动调用read 从设备中读取数据write 向字符设备中写数据ioctl 控制设备,实现除读写操作以外的其他控制命令open 打开设备并进行初始化release 关闭设备并释放资源exit 卸载驱动程序时,内核自动调用基本概念驱动程序注册过程(动态分配主设备号)insmod module_name ;加载驱动程序,运行init函数(register_chrde

文档评论(0)

189****5087 + 关注
官方认证
文档贡献者

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

版权声明书
用户编号:7102116031000022
认证主体仪征市思诚信息技术服务部
IP属地江苏
统一社会信用代码/组织机构代码
92321081MA278RWX8D

1亿VIP精品文档

相关文档