一、linux驱动开发-10.1-MISC驱动

一、前言

       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,失败
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值