linux MISC 驱动模型分析
发布日期:2021-07-01 01:01:22 浏览次数:2 分类:技术文章

本文共 697 字,大约阅读时间需要 2 分钟。

linux MISC 驱动模型分析

        阅读led驱动程序的代码的时候,没有发现ldd3中提到的各种字符设备注册函数,而是发现了一个misc_register函数,这说明led设备是作为杂项设备出现在内核中的,在内核中,misc杂项设备驱动接口是对一些字符设备的简单封装,他们共享一个主设备号,有不同的次设备号,共享一个open调用,其他的操作函数在打开后运用linux驱动程序的方法重载进行装载。

1. 主要数据结构

    内核维护一个misc_list链表,misc设备在misc_register注册的时候链接到这个链表,在misc_deregister中解除链接。主要的设备结构就是miscdevice。定义如下:
struct miscdevice  {
    int minor;
    const char *name;
    const struct file_operations *fops;
    struct list_head list;
    struct device *parent;
    struct device *this_device;
    const char *nodename;
    mode_t mode;
};
    这个结构体是misc设备基本的结构体,在注册misc设备的时候必须要声明并初始化一个这样的结构体,但其中一般只需填充name minor fops字段就可以了。下面就是led驱动程序中初始化miscdevice的代码:
static struct miscdevice misc = {
    .minor = MISC_DYNAMIC_MINOR,
    .name = DEVICE_NAME,

转载地址:https://mao0514.blog.csdn.net/article/details/115252472 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Linux设备树常用的OF函数总结
下一篇:字符杂项设备 misc_register

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月18日 10时31分40秒