杂项设备
- 是字符设备里面的一种
- 主设备号固定为10,只需要分配次设备号
- 步骤
- 构建文件操作集
- 其中write/read中应用与内核层传输需要用到两个函数
- copy_from_user
- copy_to_user
- 其中write/read中应用与内核层传输需要用到两个函数
- 构建杂项设备结构体
- struct miscdevice misc = {}
- 注册杂项设备
- misc_register(&misc);
- 卸载杂项设备
- misc_deregister(&misc);
- 构建文件操作集
字符设备
- 驱动初始化
- 分配设备号
- 静态分配设备号
- register_chrdev_region
- 动态分配设备号
- alloc_chrdev_region
- 操作设备号dev_t
- 用宏来获取设备号和组合设备号
- 静态分配设备号
- 初始化cdev
- cdev_init
- 注册cdev
- cdev_add
- 初始化硬件
- 分配设备号
- 构建文件操作集
- 生成设备节点
- 自动生成设备节点
- 创建一个class
- class_create
- 创建一个设备
- device_create
- 创建一个class
- 手动生成设备节点
- mknod命令
- 自动生成设备节点
- 驱动卸载
- 释放设备号
- unregister_chrdev_region
- 卸载cdev
- cdev_del
- 卸载设备
- device_destroy
- 卸载class
- class_destroy
- 释放设备号