




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验七字符设备驱动程序设计 实验目的 掌握字符设备驱动程序编写的框架; 掌握设备驱动相关的知识; 实验原理 参考本周大课课件字符设备驱动程序.PPT。 实验步骤 建立一个工作目录,我们的驱动程序模块程序保存在这个目录下; #mkdir first_drv #cd first_drv 1自己编写一个字符设备驱动程序,程序格式参考下面; #i nclude #in elude #in elude #in elude #in elude #i nclude #i nclude /( i)编写硬件底层操作函数实现 open,release,write,read /( 2 )创建一个 file_oper
2、ations 结构 static int _in itXXX_ in it(void) /( 3)申请设备号 / (4)初始化 cdev结构 / (5)注册cdev结构 return 0; static void _exitXXX_ exit(void) /注销cdev结构 II注销设备号 module_init(); module_exit(); MODULE_LICENSE(); 注意:要求底层函数要实现 open,release,write,reac方法。 2编写 Makefile文件 内容格式,参考如下: obj-m+=模块程序文件名.0 all: make -C 内核源码路径M=pw
3、dmodules #这一行要以TAB键开头 clea n: make -C 内核源码路径M=pwdmodules clean #这一行要以TAB键开头 3编译模块,拷贝到根文件系统中 编译内核模块,直接使用make命令就可以了; #make 编译没有错误时,将模块拷贝到跟文件系统中; #cp xxx.ko /opt/rootfs/lib/modules/3.5.0-yyy/ 4启动开发板,进入linux系统后,在开发板上加载和卸载 模块 加载: # insmod川 b/modules/3.5.0-yyy/xxxx.ko 查看系统分配的设备号 #cat /proc/devices 手动添加设备文
4、件(设备节点) # mknod /dev/first_drv c 主设备号次设备号 5交叉编译应程序,打开设备文件进行读写操作 1 #in匚Iude此生 2 #in匚I占/typeshn 3 #in匚h= 4 #include 5 #include 6| 7 define FILE_NAME /dev/fist_d 8 9 int matn(void) 10 11 int fd; 12 fd二open(FILENAME#CLRDWR); 13 sleep(l); 14 15 int val=199; 16 write(fd, 17 sleep(l); 18 19 read(fdval,stze
5、of(vdl); 20 prxntf(read val is %dnaI); 21 sleep(3); 22 23 close(fd); 24 return 0; 25 实验成功后,叫老师查看实验结果,作为平时考察 成绩; first_drv: #i nclude #in elude #in elude #in elude #i nclude #in elude #i nclude #i nclude #in elude static int first_drv_ope n( struct inode *in, struct file *fp) prin tk(first driver ope
6、 n ealled!n); return 0; static int first_drv_release(struet inode *in, struct file *fp) prin tk(first driver release ealled!n); return 0; static int data=0; static ssize_t first_drv_write(struet file *fp, const char _user *buf, size_t len, loff_t *offset) copy_from_user(void *) prin tk(first driver
7、write called!data is %dn ,data); retur n sizeof( in t); static ssize_t first_drv_read(struct file *fp, char _user *buf, size_t len, loff_t * offset) data=data+1; copy_to_user(buf, prin tk(first driver read called!n); retur n sizeof( in t); static struct file_operati onsfirst_fops = .ow ner = THIS_MO
8、DULE, .ope n = first_drv_ope n, .release =first_drv_release, .write = first_drv_write, .read = first_drv_read, ; 驱动注册 static int major = 0; static struct cdev *first_drv_cdev; #defi ne FIRST_DRV_NAMEfirst_drv static int _in it first_drv_i nit(void) dev_t dev; alloc_chrdev_regio n( major = MAJOR(dev)
9、; first_drv_cdev = cdev_alloc(); cdev_i nit(first_drv_cdev, first_drv_cdev-ow ner = THIS_MODULE; cdev_add(first_drv_cdev, dev, 1); prin tk(first driver module in sert!n); return 0; static void _exit first_drv_exit(void) dev_t dev; dev = MKDEV(major,0); cdev_del(first_drv_cdev); un register_chrdev_re
10、gi on( dev, 1); prin tk(first driver module remove! n); modulen it(first_drv_i nit); module_exit(first_drv_exit); MODULE_LICENSE(GPL); Makefile: obj-m += first_drv.o all: modules modules clea n make -C /home/sice/li nu x-4.4.19M=pwd clea n: make -C /home/sice/li nu x-4.4.19M=pwd test: #in clude #in clude #in clude #in clude #in clude #defi ne FILE_NAME /dev/abc int m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四年级数学下册 5 三角形第6课时 多边形的内角和配套教学设计 新人教版
- 活动三《纸桥承重》(教学设计)-2023-2024学年五年级上册综合实践活动沪科黔科版
- 银行案件警示教育课件
- 七年级数学上册 第1章 有理数1.2 数轴、相反数和绝对值第1课时 数轴教学设计 (新版)沪科版
- 感谢培训班老师
- 第三单元《太阳、地球、月球》全部教学设计(共4课时) -2023-2024学年四年级下册科学 青岛版
- 第3课 神奇美图-循环嵌套与规则图形设计 教学设计 -2023-2024学年粤教清华版初中信息技术九年级下册
- 人教部编版三年级上册花的学校教学设计及反思
- 2024年秋新牛津译林版三年级上册英语教学课件 Project 1 Project 1
- 牛津译林版八年级下册Unit 2 TravellingWelcome to the unit教案及反思
- 医保业务培训大纲
- 中国职工保险互助会陕西办事处招聘考试真题2024
- 商铺施工方案
- 北师大版2024-2025学年度第二学期一年级数学期中检测(含答案)
- 第10课 养成遵纪守法好习惯
- 2025修订版《保障中小企业款项支付条例》解读学习课件
- 江苏省2024年中职职教高考文化统考烹饪专业综合理论真题试卷
- 2025年水质化验工题库 - 副本
- 2025年吉林司法警官职业学院单招职业倾向性考试题库必考题
- 光伏发电项目施工的应急预案与措施
- 毕业设计(论文)-护栏清洗机设计
评论
0/150
提交评论