Linux设备驱动:字符驱动与串行驱动详解
1. 杂项驱动概述
杂项(Misc)驱动是一类简单的字符驱动,它们具有一些共同的特性。内核将这些共性抽象成一个API(在 drivers/char/misc.c 中实现),这简化了这些驱动的初始化过程。所有杂项设备被分配的主设备号为10,但每个设备可以选择一个单独的次设备号。如果一个字符驱动需要驱动多个设备,可能就不适合作为杂项驱动。
字符驱动的初始化步骤通常如下:
- 通过 alloc_chrdev_region() 等函数分配主/次设备号。
- 使用 device_create() 创建 /dev 和 /sys 节点。
- 使用 cdev_init() 和 cdev_add() 将自身注册为字符驱动。
而杂项驱动通过一次调用 misc_register() 就能完成上述所有操作,示例代码如下:
static struct miscdevice mydrv_dev = {
MYDRV_MINOR,
"mydrv",
&mydrv_fops
};
misc_register(&mydrv_dev);
在上述示例中, MYDRV_MINOR 是你想静态分配给杂项驱动的次设备号。你也可以在 myd
超级会员免费看
订阅专栏 解锁全文
481

被折叠的 条评论
为什么被折叠?



