《Linux操作系统 - 驱动开发》第7章 杂项设备开发

开发环境:
主机:Ubuntu14.04
开发板:Exynos4412-4412

7.1杂项设备的编写

杂项设备可以说是对一部分字符设备的封装,还有一部分不好归类驱动也归到杂项设备。

为什么会引入杂项设备?
第一、节省主设备号
如果所有的驱动都是用字符设备,那么所有的设备号很快就用完了,总共就255个主设备号。

第二、驱动写起来相对简单
如果直接使用封装好的杂项设备,那么就可以减少一步注册主设备号的过程。

  • 杂项设备初始化文件

杂项设备初始化部分源文件“drivers/char/misc.c”,这一部分通过Makefile可知,是强制编译的。而且是Linux官方(不是三星官方)出来的时候就带的,为了一些简单的驱动更容易实现。
在这里插入图片描述

【注】杂项设备是强制编译进入内核的。

  • 杂项设备注册头文件

在include/linux/miscdevice.h文件中结构体miscdevice以及注册函数如下所示。
在这里插入图片描述