接上:https://blog.youkuaiyun.com/wangweijundeqq/article/details/101698711
目录
三.misc驱动框架源码分析1
misc设备初始化函数:
注册接口函数:
(2)源码框架的主要工作:注册misc类,使用老接口注册字符设备驱动(主设备号10),开放device注册的接口misc_register给驱动工程师
(1)驱动工程师需要借助misc来加载自己的驱动时,只需要调用misc_register接口注册自己的设备即可,其余均不用管。驱动工程师将来写程序时, 需要定义出 miscdevice 这个结构体, 然后对其进行填充, 调用 misc_register 对设备进行注册就可以了
(2)misc_list链表的作用。内核定义了一个misc_list链表用来记录所有内核中注册了的杂散类设备。当我们向内核注册一个misc类设备时,内核就会向misc_list链表中insert一个节点。
#define LIST_HEAD_INIT(name) { &(name), &(name) }
#define LIST_HEAD(name) \
struct list_head name = LIST_HEAD_INIT(name)

本文详细分析了Linux内核中的misc驱动框架,包括设备初始化、注册接口、open函数、在proc下的展现以及内核互斥锁。同时,深入探讨了蜂鸣器驱动的dev_init、ioctl函数,并介绍了如何通过ioctl进行硬件控制。通过对misc_list链表和互斥锁的理解,展示了驱动与应用程序如何交互。






最低0.47元/天 解锁文章
1415

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



