杂项设备驱动(注册杂项设备流程、应用程序和内核传递数据)

image

何为设备节点
image

杂项设备节点在哪 /proc/misc
image

杂项设备属于字符设备,可以自动生成设备节点;
杂项设备比字符设备简单;
杂项设备主设备号相同,为10,次设备号不同;

主设备号和从设备号概念
image

主设备号可以通过命令cat /proc/devices查看
image


杂项设备的描述
image

上面提到的文件操作集合
include/linux/fs.h
image

注册、注销杂项设备函数
image


注册杂项设备的流程
image

image
应该是这样的 .fops = &xx_fops

实例
用的hello world代码框架如下,再参考上面注册杂项设备的流程,代码略
image

承接上面讲的,可以编译成模块或编译进内核里(上一讲)
安装驱动模块
查看是否生成设备节点 cd /dev/hello_misc


应用层使用系统io对设备节点进行打开,关闭,读写等操作会发生什么

image

驱动代码
image
其它也是如此,release,read,write

应用代码
image

脑中有如下画面
image
中间是设备节点,起着桥梁作用

image

讲到这,驱动开发干的是什么有了了解(实现那几个函数)


应用层和内核层数据传输

从内核空间读数据copy_to_user()
image

向内核空间写数据copy_from_user()
image

传递数据只能这样;
2函数只能用在驱动里;


一讲比一讲深入


posted @ 2023-02-09 09:00  我爱茜茜公主  阅读(146)  评论(0)    收藏  举报