会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
流水灯
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
28
29
30
31
32
33
34
35
36
···
107
下一页
2023年4月5日
linux 驱动 --- I2C总线及驱动
摘要: 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)
2023年4月2日
linux内核数据结构 --- list_head
摘要: 以 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)
2023年4月1日
chrdev_open --- 通过文件路径,执行驱动设置的open()流程
摘要: 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)
2023年3月31日
Linux设备文件三大结构:inode,file,file_operations
摘要: struct inode Linux中一切皆文件,当我们在Linux中创建一个文件时,就会在相应的文件系统创建一个inode与之对应,文件实体和文件的inode是一一对应的,创建好一个inode会存在存储器中,第一次open就会将inode在内存中有一个备份,同一个文件被多次打开并不会产生多个ino
阅读全文
posted @ 2023-03-31 22:33 流水灯
阅读(490)
评论(0)
推荐(1)
2023年3月29日
struct inode
摘要: inode和block概述 文件是存储在硬盘上的,硬盘的最小存储单位叫做扇区sector,每个扇区存储512字节。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个块block。这种由多个扇区组成的块,是文件存取的最小单位。块的大小,最常见的是4
阅读全文
posted @ 2023-03-29 23:00 流水灯
阅读(214)
评论(0)
推荐(0)
2023年3月17日
字符设备的申请和注册
摘要: 设备号设计原则 一般一个主设备号的一段连续子设备号共用一个驱动,称为cdev实例,所以有主设备号和子设备号之分 struct cdev { struct kobject kobj; struct module *owner; const struct file_operations *ops; st
阅读全文
posted @ 2023-03-17 22:53 流水灯
阅读(138)
评论(0)
推荐(0)
2023年3月16日
linux 内核 --- input 子系统
摘要: 为什么要用INPUT子系统 不采用input子系统,如果自己实现按键字符驱动,需要自己申请设备号,注册字符设备,实现file_operations接口,创建设备节点,实现阻塞、非阻塞、复用IO、异步通知,INPUT 子系统还统一定义了不同输入设备上报数据的格式。 在输入设备中会有以下几个问题: a.
阅读全文
posted @ 2023-03-16 23:18 流水灯
阅读(1040)
评论(0)
推荐(0)
subsystem
摘要: 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)
2023年3月12日
mdev / udev 捕获 uevent 事件,在 /dev 下创建或删除设备文件
摘要: 每个设备都有一个 uevent 属性文件,里面有设备号和设备名,此文要讲的是 uevent 事件,非 uevent 属性文件 kobject有事件需要上报时,会发送uevent事件,可以通过两个途径把事件上报到用户空间:一种是通过kmod模块,直接调用用户空间的可执行文件;另一种是通过netlink
阅读全文
posted @ 2023-03-12 19:33 流水灯
阅读(1140)
评论(0)
推荐(0)
2023年3月11日
platform_device 和 platform_driver 的匹配
摘要: 一个驱动可以支持多个设备;一个设备只能绑定一个驱动 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
下一页
公告