驱动字典
获取设备号
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 结构本身
标签:
linux driver
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
2018-11-06 C语言#和##操作符使用方法
2017-11-06 Qt ------ QTabWidget
2017-11-06 Qt ------ CSS 长度单位