杂项设备驱动(注册杂项设备流程、应用程序和内核传递数据)
何为设备节点
杂项设备节点在哪 /proc/misc
杂项设备属于字符设备,可以自动生成设备节点;
杂项设备比字符设备简单;
杂项设备主设备号相同,为10,次设备号不同;
主设备号和从设备号概念
主设备号可以通过命令cat /proc/devices查看
杂项设备的描述
上面提到的文件操作集合
include/linux/fs.h
注册、注销杂项设备函数
注册杂项设备的流程
应该是这样的 .fops = &xx_fops
实例
用的hello world代码框架如下,再参考上面注册杂项设备的流程,代码略
承接上面讲的,可以编译成模块或编译进内核里(上一讲)
安装驱动模块
查看是否生成设备节点 cd /dev/hello_misc
应用层使用系统io对设备节点进行打开,关闭,读写等操作会发生什么
驱动代码
其它也是如此,release,read,write
应用代码
脑中有如下画面
中间是设备节点,起着桥梁作用
讲到这,驱动开发干的是什么有了了解(实现那几个函数)
应用层和内核层数据传输
从内核空间读数据copy_to_user()
向内核空间写数据copy_from_user()
传递数据只能这样;
2函数只能用在驱动里;
一讲比一讲深入
如果,感到此时的自己很辛苦,那告诉自己:容易走的都是下坡路。坚持住,因为你正在走上坡路,走过去,你就一定会有进步。如果,你正在埋怨命运不眷顾,开导自己:命,是失败者的借口;运,是成功者的谦词。命运从来都是掌握在自己的手中,埋怨,只是一种懦弱的表现;努力,才是人生的态度。