摘要: 一个驱动可以支持多个设备;一个设备只能绑定一个驱动 platform总线上有设备链表和驱动链表,注册设备会遍历总线上的驱动链表找寻与之匹配的驱动,注册驱动会遍历总线上的设备链表找寻与之匹配的设备 匹配调用过程 注册设备: device_add ... bus_probe_device device_ 阅读全文
posted @ 2023-03-11 23:31 流水灯 阅读(64) 评论(0) 推荐(0) 编辑
摘要: platform_device 的创建 主要有两种方式 (1)在内核初始化时通过device_node转换为platform_device,这种是最新的实现方式,基于设备树,在内核初始化时将设备树中的节点转化为platform_device; of_platform_default_populate 阅读全文
posted @ 2023-03-11 23:19 流水灯 阅读(35) 评论(0) 推荐(0) 编辑
摘要: kernel_init(); kernel_init_freeable(); do_basic_setup(); driver_init(); platform_bus_init(); platform总线的注册就是在 /sys 文件下建立对应的文件夹和属性文件,并为全局变量 platform_bu 阅读全文
posted @ 2023-03-11 20:19 流水灯 阅读(43) 评论(0) 推荐(0) 编辑
摘要: list_head,这是linux中通用的链表形式,双向循环链表,功能强大,实现简单优雅。可如果您认为list_head就是链表的极致,应该在linux链表界一统天下,那可就错了。据我所知,linux内核代码中至少还有两种链表能占有一席之地。一种就是hlist,一种就是本节要介绍的klist。虽然三 阅读全文
posted @ 2023-03-11 17:01 流水灯 阅读(123) 评论(0) 推荐(0) 编辑