上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 107 下一页
摘要: I2C总线 I2C总线和 platform 总线非常类似,platform 总线初始化位置如下: kernel_init(); kernel_init_freeable(); do_basic_setup(); driver_init(); platform_bus_init(); I2C总线是作为 阅读全文
posted @ 2023-04-05 23:15 流水灯 阅读(494) 评论(0) 推荐(0)
摘要: 以 struct kobject 为例,讲解如何使用链表 struct list_head struct kobject { const char *name; struct list_head entry; struct kobject *parent; ... }; struct list_he 阅读全文
posted @ 2023-04-02 20:29 流水灯 阅读(88) 评论(0) 推荐(0)
摘要: open一个字符设备的流程大概是:文件路径 => inode => chrdev_open() => (kobj_lookup=>) inode.i_cdev => cdev.fops.my_chr_open()。所以只要通过VFS找到了inode,就可以找到chrdev_open(),这里我们就来 阅读全文
posted @ 2023-04-01 16:26 流水灯 阅读(124) 评论(0) 推荐(0)
摘要: struct inode Linux中一切皆文件,当我们在Linux中创建一个文件时,就会在相应的文件系统创建一个inode与之对应,文件实体和文件的inode是一一对应的,创建好一个inode会存在存储器中,第一次open就会将inode在内存中有一个备份,同一个文件被多次打开并不会产生多个ino 阅读全文
posted @ 2023-03-31 22:33 流水灯 阅读(490) 评论(0) 推荐(1)
摘要: inode和block概述 文件是存储在硬盘上的,硬盘的最小存储单位叫做扇区sector,每个扇区存储512字节。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个块block。这种由多个扇区组成的块,是文件存取的最小单位。块的大小,最常见的是4 阅读全文
posted @ 2023-03-29 23:00 流水灯 阅读(214) 评论(0) 推荐(0)
摘要: 设备号设计原则 一般一个主设备号的一段连续子设备号共用一个驱动,称为cdev实例,所以有主设备号和子设备号之分 struct cdev { struct kobject kobj; struct module *owner; const struct file_operations *ops; st 阅读全文
posted @ 2023-03-17 22:53 流水灯 阅读(138) 评论(0) 推荐(0)
摘要: 为什么要用INPUT子系统 不采用input子系统,如果自己实现按键字符驱动,需要自己申请设备号,注册字符设备,实现file_operations接口,创建设备节点,实现阻塞、非阻塞、复用IO、异步通知,INPUT 子系统还统一定义了不同输入设备上报数据的格式。 在输入设备中会有以下几个问题: a. 阅读全文
posted @ 2023-03-16 23:18 流水灯 阅读(1040) 评论(0) 推荐(0)
摘要: struct bus_type { const char *name; ...... struct subsys_private *p; }; struct class { const char *name; struct module *owner; ...... struct subsys_pr 阅读全文
posted @ 2023-03-16 22:51 流水灯 阅读(113) 评论(0) 推荐(0)
摘要: 每个设备都有一个 uevent 属性文件,里面有设备号和设备名,此文要讲的是 uevent 事件,非 uevent 属性文件 kobject有事件需要上报时,会发送uevent事件,可以通过两个途径把事件上报到用户空间:一种是通过kmod模块,直接调用用户空间的可执行文件;另一种是通过netlink 阅读全文
posted @ 2023-03-12 19:33 流水灯 阅读(1140) 评论(0) 推荐(0)
摘要: 一个驱动可以支持多个设备;一个设备只能绑定一个驱动 platform总线上有设备链表和驱动链表,注册设备会遍历总线上的驱动链表找寻与之匹配的驱动,注册驱动会遍历总线上的设备链表找寻与之匹配的设备 匹配调用过程 注册设备: device_add ... bus_probe_device device_ 阅读全文
posted @ 2023-03-11 23:31 流水灯 阅读(104) 评论(0) 推荐(0)
上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 107 下一页