驱动字典

获取设备号

alloc_chrdev_region(&devno, 0, DEV_CNT, "EmbedCharDev")

采用动态分配的方式获取设备号,次设备号为 0,设备名称为 EmbedCharDev,可通过命令 cat /proc/devices 查看,EV_CNT 为 1,当前只申请一个设备号。
移除设备时需要归还申请到的设备号,对应函数为 "unregister_chrdev_region()"

 

设备节点(设备文件)

出现在 /dev/ 路径下。创建设备节点并注册到文件系统方法可以用命令 ”mknod /dev/chrdev c 244 0”,也可以在驱动代码里通过函数 "device_create()" 创建设备节点。

移除设备时需要删除设备节点,对应的函数为 "device_destroy()",此函数还删除/sys/devices/virtual 目录下对应的设备目录


向内核提交一个设备

int cdev_add(struct cdev *p, dev_t dev, unsigned count)

cdev_add 函数用于向内核的 cdev_map 散列表添加一个新的字符设备

调用 cdev_del() 函数来释放散列表中的对象以及 cdev 结构本身

posted @ 2022-11-06 22:24  流水灯  阅读(17)  评论(0编辑  收藏  举报