驱动开发学习day3-->自动创建设备文件 区分设备文件 ioctl 驱动互斥

1 自动创建设备文件

 创建设备文件的方法:1 手动创建--->sudo mknod /dev/haha0 c 250 0
                                     2  自动创建--->内核函数

Linux内核为我们提供了一组函数,可以用来在模块加载时自动在/dev目录下创建相应的设备节点(设备文件),并在模块卸载时删除该设备节点。


    内核函数:1 class_create-->创建一个设备文件类--》对应一类设备
                      2 device_create--->创建一个设备文件--》对应一个设备

1.1 创建一个设备文件类--》class_create

#define class_create(owner, name)        
 ({                        
static struct lock_class_key __key;    
__class_create(owner, name, &__key);    
})

owner:THIS_MODULE表示模块本身
name:设备模块名
返回值:struct class类型指针(设备文件类指针)

1.2 创建一个设备文件--》device_create

struct device *device_create(struct class *class, struct device         *parent,  dev_t devt, void *drvdata, const char *fmt, ...)
*class:设备文件类指针,是class_create的返回值
*parent:父设备,一般为NULL。
devt:设备号。包括主设备号和次设备号
*drvdata:私有数据,若无,给NULL.
*fmt:设备文件名(haha0/haha1)
...:可变参数
返回值:成功,struct device指针。失败ERR,需要进一步处理

1.3销毁设备文件--》device_destroy

void device_destroy(struct class *class,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值