



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
WordLinux字符设备驱动开发框架介绍
1.字符设备驱动简介
字符设备是(Linux)驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的。比如常见的点灯、按键、IIC、S(PI)、LCD等等都是字符设备,这些设备的驱动就叫做字符设备驱动。
Linux驱动基本原理:Linux中一切皆为文件,驱动加载成功后会在/dev目录下生成一个相应的文件,应用程序通过对这个名为/dev/xxx的文件进行相应的操作即可实现对(硬件)的操作。
比如(LED驱动),会有/dev/led驱动文件,应用程序使用open函数来打开该文件;若要点亮或关闭led,就使用wri(te)函数写入开关值;若要获取led灯的状态,就用re(ad)函数从驱动文件中读取相应的状态;使用完成后使用close函数关闭该驱动文件。
Linux软件从上到下可分为4层结构,如下图左示。以控制LED为例,具体过程如下图右示:
#defineMINORBITS20#defineMINORMASK((1U/*驱动入口函数*/staticint__initxxx_init(void){/*入口函数具体内容*/return0;}/*驱动出口函数*/staticvoid__exitxxx_exit(void){/*出口函数具体内容*/}/*将上面两个函数指定为驱动的入口和出口函数*/module_init(xxx_init);module_exit(xxx_exit);staticinlineintregister_chrdev(unsignedintmajor,constchar*name,conststructfile_operations*fops)//major:主设备号//name:设备名字,指向一串字符串//fops:结构体file_operations类型指针,指向设备的操作函数集合变量staticinlinevoidunregister_chrdev(unsignedintmajor,constchar*name)//major:要注销的设备对应的主设备号//name:要注销的设备对应的设备名
输入lsmod命令即可查看当前系统中存在的模块,输入cat/proc/devices命令,查看当前系统中有没有chrdevbase这个设备
创建设备节点文件:驱动加载成功后,需要在/dev目录下创建一个与之对应的设备节点文件,应用程序通过操作这个设备节点文件来完成对具体设备的操作
使用mknod命令创建/dev/chrdevbase设备节点文件
mknod/dev/chrdevbasec2000#/dev/chrdevbase是要创建的节点文件#c表示这是个字符设备#200是设备的主设备号#0是设备的次设备号创建完后可使用ls/dev/chrdevbase-l命令查看是否存在
操作设备测试:使用应用程序读写设备,对/dev/chrdevbase文件进行读写操作
#读操作命令./chrdevbaseApp/dev/chrdevbase1#输出“kernelsenddataok!”是驱动程序中chrdevbase_read函数输出的信息#“readdata:kerneldata!”就是chrdevbaseAPP打印出来的接收到的数据#写操作命令./chrdevbaseApp/dev/chrdevbase2#“kernelrecevdata:usrdata!”,是驱动程序中的chrdevbase_write函数输出的
卸载驱动模块:若不再使用某个设备的话可以将其驱动卸载掉。输入rmmod命令卸载驱动后,使用lsmod命令查看chrdevbase这个模块还存不存在
至此,Linux字符设备
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025承包商入厂安全培训考试试题及答案7A
- 2024-2025厂里职工安全培训考试试题附参考答案(轻巧夺冠)
- 25年公司厂级安全培训考试试题附答案解析
- 2025实践中如何启动法律程序确认合同终止工程
- 2025劳动合同解除证明书时间规定
- 2025年超低频综合参数测试仪项目建议书
- 2025年氯磺化聚乙烯项目建议书
- 2025年酶标记制剂合作协议书
- 2025深圳公寓租房合同
- 2025年斗型布草车合作协议书
- (二模)济宁市2025年4月高考模拟考试地理试卷
- 首都医科大学附属北京安贞医院招聘考试真题2024
- 抽化粪池合同协议
- 中医养生馆运营方案中医养生馆策划书
- (二模)宁波市2024-2025学年第二学期高考模拟考试 英语试卷(含答案)+听力音频+听力原文
- 高考备考:100个高考常考易错的文言实词(翻译+正误辨析)
- 软件项目交付管理制度
- 知识产权现场审核记录表模板
- 食品安全自查、从业人员健康管理、进货查验记录、食品安全事故处置等保证食品安全的规章制度
- 2024年吉林省中考满分作文《情味浸润的时光》4
- 基于PLC的自动生产线控制系统的设计毕业论文
评论
0/150
提交评论