实验三 Linux驱动程序编写课件.ppt

实验三 Linux驱动程序编写课件.ppt

ID:57115187

大小:62.00 KB

页数:15页

时间:2020-07-31

实验三 Linux驱动程序编写课件.ppt_第1页
实验三 Linux驱动程序编写课件.ppt_第2页
实验三 Linux驱动程序编写课件.ppt_第3页
实验三 Linux驱动程序编写课件.ppt_第4页
实验三 Linux驱动程序编写课件.ppt_第5页
资源描述:

《实验三 Linux驱动程序编写课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验三Linux驱动程序应用一、实验目的1、掌握Linux动态加载驱动程序2、了解基本驱动程序的编写drv驱动程序的加载编译应用程序drvtest下载调试应用程序drvtest二、实验内容三、预备知识Linux驱动程序驱动程序编写驱动模块动态加载3.1Linux驱动程序系统内核应用程序系统调用机器硬件系统内核设备驱动程序Linux下对外设的访问只能通过驱动程序进行3.1Linux驱动程序设备类型字符设备---指存取时没有缓存的设备。鼠标,键盘,串行口等。块设备-----读写都有缓存来支持,块设备必须能够随机存取

2、。硬盘软盘设备,CD-ROM等。网络设备3.1Linux驱动程序驱动的作用设备初始化和释放数据传送(内核->硬件)读数据(硬件->内核)读取应用程序传送给设备文件的数据回送应用程序请求数据检测和处理设备错误3.2驱动程序编写设备编号主设备号从设备号3.2驱动程序编写头文件#include#include#include……3.2驱动程序编写模块初始化open,read,write,close结构体structfile_oper

3、ation{int(*open)(struct……..)int(*write)(struct……..)…..}驱动设备工作原理*每个成员=一个系统调用;一种设备对应一个结构体*用户进程利用系统调用操作设备,通过设备文件的主设备号找到相应设备驱动程序,然后读取这个数据结构相应的函数指针,将控制权交给该函数.这样编写设备驱动程序的主要工作就是编写子函数,并填充file_operations的各个域3.2驱动程序编写设备操作函数类型open设备文件打开调用该函数release设备文件关闭调用该函数read读设备状态到

4、bufferwrite写设备ioctl控制I/O设备3.2驱动程序编写模块退出模块退出,必须删除设备驱动,并释放占用的资源。Linux驱动程序编译方式Linux中驱动程序的使用可以按照两种方式编译:静态编译进内核编译成模块以供动态加载由于Linux不支持模块动态加载,而且嵌入式Linux不能够象桌面Linux那样灵活的使用insmod/rmmod加载卸载设备驱动程序,因而通常在Linux中将设备驱动程序静态编译进内核。但是编译进内核的话,会增加内核的大小,还要改动内核的源文件,而且不能动态的卸载,不利于调试,所

5、以推荐使用模块方式。3.3驱动模块动态加载安装驱动#insmoddrv.o卸载驱动#rmmoddrv创建设备文件mknod/dev/drvtestcmajorminor四、实验步骤1.进入工作目录$cd/home/cvtech/cvtpxa270/examples/drvtest2.查看代码drv.c-----驱动程序源代码drv.h-----驱动程序源代码包含的头文件drvtest.c----应用程序源代码四、实验步骤3.编译drv驱动,生成drv.o驱动模块程序4.编译drvtest应用程序5.下载运行dr

6、vtest6.观察实验结果输入数字后回车,程序将该值写到驱动层,然后从驱动层度上来,比较两值是否相等

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

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

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