一、前言
misc驱动也叫杂项驱动,就是某些外设无法进行分类的时候就可以使用MISC驱动。MISC驱动其实就是字符设备驱动,通常嵌套在platform总线驱动中。
二、简介
所有的MISC设备驱动的主设备号都为10,不同的设备使用不同的次设备号。
MISC设备会自动创建cdev,不需要手动创建,因此可以简化字符设备驱动的编写。
2.1、定义MISC设备
linux中用miscdevice表示一个MISC设备,如:
struct miscdevice {
int minor; //子设备号
const char *name; //设备名字
const struct file_operations *fops; //设备操作集
struct list_head list;
struct device *parent;
struct device *this_device;
const struct attribute_group **groups;
const char *nodename;
umode_t mode;
};
定义一个MISC设备后需要设备minor、name、fops三个成员变量。
①、minor:因为主设备号固定为10,所以只需要设置次设备号minor,linux在miscdevice.h中预定义了一些MISC设备的子设备号,可以使用这些预定义的,也可以自定义,只要这个子设备号没被其他设备使用;
②、name:就是此设备的名字,设备注册成功后就会在/dev目录下生成一个名为name的设备文件;
③、fops就是字符设备的操作集合;
2.2、注册设备
设置好miscdevice后就需要使用misc_register函数向系统注册一个MISC设备:
/*
@misc:要注册的MISC设备
@return:0,成功
<0,失败
*/

最低0.47元/天 解锁文章
568

被折叠的 条评论
为什么被折叠?



