



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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春季学期国开电大专科《行政组织学》一平台在线形考(形考任务1至5)试题及答案
- 某矿业股份有限公司高管人员绩效考核与薪酬激励制度
- 动火作业施工方案
- 施工现场防汛安全教育
- 2025年ibm英语客服面试题及答案
- JJF1070-2023定量包装商品净含量计量检验规则
- 科技革命与产业变革-深度研究
- 部编初中历史八下第14课海峡两岸的交往教案
- 17J008挡土墙(重力式、衡重式、悬臂式)图示图集
评论
0/150
提交评论