1.前言
在前面文章中,有介绍自动创建设备节点的写法,不然就需要手动敲mknod命令创建设备。链接:
驱动开发学习之新旧字符设备接口,自动创建设备的点灯-优快云博客
在pinctrl 和 gpio 子系统文章也有介绍过( 链接:驱动开发之pinctrl 和 gpio 子系统-优快云博客),为了方便开发,减少重复性代码,内核大佬,开发了很多框架给使用者使用,MISC 驱动框架就是为了解决自动创建设备节点这个问题了,但是MISC的主设备号为 10,如果对主设备号有要求还是自己写创建设备的代码了,不过还好,代码量不多。
2.MISC 设备驱动简介
所有的 MISC 设备驱动的主设备号都为 10,不同的设备使用不同的从设备号。随着 Linux 字符设备驱动的不断增加,设备号变得越来越紧张,尤其是主设备号,MISC 设备驱动就用于解 决此问题。MISC 设备会自动创建 cdev,不需要像我们以前那样手动创建,因此采用 MISC 设 备驱动可以简化字符设备驱动的编写。我们需要向 Linux 注册一个 miscdevice 设备,miscdevice 是一个结构体,定义在文件 include/linux/miscdevice.h 中,内容如下: