




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
linux驱动程序实验报告(共5篇) 第一篇:linux驱动程序实验报告字符设备驱动程序院系名称学生姓名学号专业名称班级时间实验报告****年**月**日至年月日::::::实验题目字符设备驱动程序一、实验目的通过编写一个简单的C语言字符设备驱动程序,来加深对上次的内存管理实验的复习,以及对本次学习的字符设备驱动的应用。二、实验内容编写一个字符设备驱动程序,以内核模块的形式插入内核,编译方法与内核编译方法一致。创建设备节点,然后通过编写一个测试程序,输出“helloworld!”。三、实验步骤用C语言编写一个字符设备驱动程序;编译,链接,将程序插入内核模块中;创建设备节点,编写测试程序,运行输出“helloworld”。四、调试以及运行过程因为用的是学校的电脑,在运行时,就出现错误。开始是怎么都插不进去模块。最后发现原来是makefile文件开始用小写,后来改成Makefile,,竟然对了。虽然最后显示内核模块插入了,但是无法进行编译,总是显示,无法正常运行。最后,把代码拷进同学电脑里,对了。才发现,有时要相信自己,换一个位置去试,就会发现惊喜。五、心得体会对于程序,我们要多练,才能懂得其真正的用处在哪里。没有编写程序运行前只知道一点皮毛,真正操作后才会受益匪浅。通过编写字符设备驱动程序,我知道了当我们不会写代码时,可以先试着把别人的类似代码敲一遍,然后找出那种属于自己的感觉,理解清楚别人的思想,然后根据需要编写属于自己的代码。六、源代码1.字符设备驱动程序#include#include#include#include#includeMODULE_LICENSE(“GPL”);MODULE_AUTHOR(“Helight”);//定义主设备号与次设备号#defineDP_MAJOR250#defineDP_MINOR0//定义变量staticintchar_read(structfile*filp,char__user*buffer,size_t,loff_t*);staticintchar_open(structinode*,structfile*);staticintchar_write(structfile*filp,constchar__user*buffer,size_t,loff_t*);staticintchar_release(structinode*,structfile*);staticintchropen;structcdev*chardev;staticintlen;//file_operations结构中的每个函数都对应一个具体的功能,也就是对设备的不同操作staticconststructfile_operationschar_ops={.read=char_read,.write=char_write,.open=char_open,.release=char_release,};//设备驱动模块加载函数staticint__initchar_init(void){dev_tdev;printk(KERN_ALERT“Initing......n”);dev=MKDEV(DP_MAJOR,DP_MINOR);chardev=cdev_alloc();if(chardev==NULL){return-1;}if(register_chrdev_region(dev,10,“chardev”)){printk(KERN_ALERT“Registerchardeverrorn”);return-1;}chropen=0;len=0;cdev_init(chardev,&char_ops);if(cdev_add(chardev,dev,1)){printk(KERN_ALERT“Addchardeverrorn”);}return0;}//文件打开函数会在设备结构体指针赋值给私有数据staticintchar_open(structinode*inode,structfile*file){if(chropen==0)chropen++;Else{printk(KERN_ALERT“Anotherprocessopenthechardevicen”);return-1;}try_module_get(THIS_MODULE);return0;}//释放函数staticintchar_release(structinode*inode,structfile*file){chropen--;module_put(THIS_MODULE);return0;}//读函数staticintchar_read(structfile*filp,char__user*buffer,size_tlength,lo

Jo****31
实名认证
内容提供者


最近下载
一种基于双轨缆道的牵引式雷达波在线测流系统.pdf
一种基于双轨缆道的牵引式雷达波在线测流系统.pdf
一种胃肠道超声检查助显剂及其制备方法.pdf
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf