【c3】内核模块,设备号,字符驱动


1.内核模块:必须包含module.h

在这里插入图片描述
在这里插入图片描述

2.内核模块参数:权限位S_IRUGO是用在sysfs文件系统里

如下static int…只是初始化给默认值。
在这里插入图片描述
在这里插入图片描述

2.1 extern:声明来自另一个模块

在这里插入图片描述
在这里插入图片描述

3.设备号:主设备号对应驱动程序,具有相同主设备号设备使用相同驱动程序,次设备号用来标识连接系统中相同的设备

3.1 字符设备申请主设备号:三个函数,三个宏

主设备号:哪一类。次设备号:哪一个。设备文件->设备号->cdev。
在这里插入图片描述
在这里插入图片描述
如下次设备号个数不是次设备号(hello_minor)。
在这里插入图片描述
在这里插入图片描述

3.2 块设备申请主设备号:hello_major为0是系统自动分配的主设备号即register_blkdev函数分配

在这里插入图片描述
在这里插入图片描述

4.字符设备驱动:控制外部设备都是通过读写dev下设备文件实现

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.1 驱动加载后自动生成设备节点:让系统udev自动生成/dev目录下的设备节点,udevadm info

linux系统中有一个后台程序udev(用来自动生成设备节点的软件),当一个设备接入到系统中时会发送一个事件到udev。udev接到这事件后就会获取这些设备信息,这些信息大部分保存在/sys/class/xx文件系统(sysfs)中。udev获得到这些信息后就会根据获得到的信息以及udev规则在/dev下生成对应设备节点。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如下测试读写设备,group改变组,mode改变权限。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值