设备驱动程序.ppt

设备驱动程序.ppt

ID:50589683

大小:197.50 KB

页数:27页

时间:2020-03-14

设备驱动程序.ppt_第1页
设备驱动程序.ppt_第2页
设备驱动程序.ppt_第3页
设备驱动程序.ppt_第4页
设备驱动程序.ppt_第5页
资源描述:

《设备驱动程序.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、设备驱动程序2设备驱动程序的作用设备驱动程序是一个软件层,该软件层使硬件设备响应预定义好的编程接口,我们已经熟悉这些接口,它由一组控制设备的函数(open,read,ioctl等等)组成,这些函数的实际实现由设备驱动程序全权负责。设备驱动程序(应该只是)为系统的其它部分提供各种使用设备的能力,使用设备的方法应该由应用程序决定。3structfile_operations{structmodule*owner;loff_t(*llseek)(structfile*,loff_t,int);ssiz

2、e_t(*read)(structfile*,char*,size_t,loff_t*);ssize_t(*write)(structfile*,constchar*,size_t,loff_t*);int(*readdir)(structfile*,void*,filldir_t);unsignedint(*poll)(structfile*,structpoll_table_struct*);int(*ioctl)(structinode*,structfile*,unsignedint,u

3、nsignedlong);int(*mmap)(structfile*,structvm_area_struct*);int(*open)(structinode*,structfile*);int(*flush)(structfile*);int(*release)(structinode*,structfile*);int(*fsync)(structfile*,structdentry*,intdatasync);int(*fasync)(int,structfile*,int);int(

4、*lock)(structfile*,int,structfile_lock*);ssize_t(*readv)(structfile*,conststructiovec*,unsignedlong,loff_t*);ssize_t(*writev)(structfile*,conststructiovec*,unsignedlong,loff_t*);ssize_t(*sendpage)(structfile*,structpage*,int,size_t,loff_t*,int);unsig

5、nedlong(*get_unmapped_area)(structfile*,unsignedlong,unsignedlong,unsignedlong,unsignedlong);};structfile_operationsinclude/linux/fs.h设备驱动程序则编写设备驱动程序的主要工作就是编写如上子函数,并填充file_operations的各个域一个最简单字符驱动程序,由下面7个函数和1个结构体就可组成。Open(),Release,staticintmy_open(st

6、ructinode*inode,structfile*filp){设备打开时的操作…}staticintmy_release(structinode*inode,structfile*filp){设备关闭时的操作…}staticintmy_write(structfile*file,constchar*buffer,size_tcount,loff_t*ppos){设备写入时的操作…}staticintmy_read(structfile*file,constchar*buffer,size_t

7、count,loff_t*ppos){设备读取时的操作…}()Write(),Read()Ioctl()Init(),Exit()Structfile_operationstaticint__initmy_init(void){初始化硬件,注册设备,创建设备节点…}staticvoid__exitmy_exit(void){删除设备节点,注销设备…}{设备的控制操作……}Staticintmy_ioctl(structinode*inode,structfile*filp,unsignedint

8、cmd,unsignedlongarg)staticstructfile_operationsmy_fops={对文件操作结构体成员定义初始值…}7在操作系统中的位置设备驱动程序是内核代码的一部分。驱动程序的地址空间是内核的地址空间(copy_to_user函数等)。驱动程序的代码直接对设备硬件(实际是设备的各种寄存器)进行控制(实际就是读写操作)。应用程序通过操作系统的系统调用执行相应的驱动程序函数。中断则直接执行相应的中断程序代码。设备驱动程序的file_operations结构体的地址被注

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

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

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