- 博客(4)
- 收藏
- 关注
原创 I2C子系统——总线注册、驱动注册、设备注册流程
文章涉及内核代码版本:6.1.51作为笔记,主要记录I2C子系统的总线注册、总线上的驱动注册、总线上的设备注册三部分在代码逻辑上的整体流程;学习过程中有了解到设备注册方式其实不止一种,此处学习的设备注册方式为:驱动注册的流程中,会遍历总线设备链上的所有设备,然后调用驱动的match函数进行匹配,并对匹配上的设备调用驱动的probe函数进行设备注册;
2024-02-29 19:16:28 508
原创 hwmon子系统——属性文件及其读写函数自定义逻辑
hwmon子系统作为Linux内核中的一个子系统,用于监控硬件传感器的状态和提供对硬件传感器的访问接口。在应用层,对传感器信息的读取,本质上是对驱动中hwmon子系统在注册传感器设备时所创建的各个属性文件进行读取操作在Linux系统下,这些属性文件是直观存在的,如下图中的路径(my_hwmon为驱动中手动修改的结果,默认是hwmon);需要注意,下面这一长串目录才是hwmon子系统根据驱动流程所创建的最原始且完整的目录,其他父级目录能够进入这个目录基本都是存在链接进行指向,并非完整的目录;
2024-01-17 11:31:01 1282
原创 sysfs文件系统一 —— /sys目录对应根节点创建
对于/sys这个顶级目录则较为特别,内核代码中并没有kobject类型的结构体变量与之对应,而是直接创建了一个kernfs_root结构体类型全局静态变量sysfs_root进行指代,kernfs_root结构体类型中包含有一个kernfs_node类型的成员变量,内核中专门创建了一个kernfs_node类型的全局静态变量sysfs_root_kn,sysfs_root_kn则指向了sysfs_root的kernfs_node类型成员。/sys目录对应节点信息初始化函数sysfs_init函数如下。
2024-01-12 14:22:47 910
原创 OpenBMC开发——qemu添加新设备及设备注册至I2C子系统
Step2:i2cdectect -y 1扫描i2c-1总线下挂载的物理设备,可以看到已经扫描到了0x50的EEPROM、0x52的PCA9548、0x48的emc1413共计三个设备,因为在dts文件中已经配置了三个设备的信息,所以系统启动时自动扫描到了相应的硬件设备,且存在相应的三个设备驱动程序可以匹配并处理这三种设备,并将设备注册到i2c子系统中,故此时扫描出的三个地址都是UU,表明都已经被驱动程序占用;
2024-01-05 21:17:28 1725
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人