![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设备树
文章平均质量分 93
苦梨甜
嵌入式全栈ing
展开
-
设备树一
设备树是采用树形结构来描述板子上的设备信息的文件,每个设备都是一个节点,叫做设备节点,每个节点都通过一些属性信息来描述节点信息,属性就是键—值对。节点是由一堆的属性组成,节点都是具体的设备,不同的设备需要的属性不同,用户可以自定义属性。除了用户自定义属性,有很多属性是标准属性, Linux 下的很多外设驱动都会使用这些标准属性。原创 2022-11-07 22:43:52 · 733 阅读 · 0 评论 -
设备树二
后缀名一般为dts和dts主,可以被include,甚至可以include那些c语言的头文件dtsi主一般写soc共性部分,而dts—般写目标单板特性部分,所以一般dts包含并重写部分dtsi注释用/* */,注意#开头的不是注释分号是段落块之间的分隔符,{}和[]是段落块的封装符号,和c语言语言类似/dts-v1/节点,表示dts的版本号,目前都是vl/{}是根节点root node,理论上只应该有一个根节点,有说法dtc会合并所有root node为同一个。原创 2022-12-16 20:44:54 · 1506 阅读 · 3 评论 -
platform_get_resource=NULL内核源码分析
of_translateone返回1of_translate_address回OFBAD_ADDRofaddresstoresource返回EINVALofaddresstoresource返回EINVAL所以numreg为0,通过代码的分折,当有ranges属性的时,但是属性值为0,则不对地址进行转,所以在设备节点中添加ranges属性即可。原创 2023-05-11 20:34:39 · 1195 阅读 · 0 评论 -
device_node转换成platform_device
设备树替换了平台总线模型当中对硬件资源描述的device部分。所以设备树也是对硬件资源进行描述的文件。在平台总线模型中,device部分是用platform_device结构体来描述硬件资源的。所以内核最终会将内核认识的device_node树转换platform_device。但是并不是所有的节点都会被转换成platform_device,只有满足要求的才会转换成platform_device,原创 2023-05-11 20:32:03 · 696 阅读 · 0 评论 -
dtb展开成device_node
early_init_dt_scan函数中调用early_init_dt_scan(phys_to_virt(dt_phys)),用于扫描设备树(Device Tree)of_find_matching_node_and_match 函数通过 of_device_id 匹配表来查找指定的节点,函数原。of_property_count_elems_of_size 函数用于获取属性中元素的数量,比如 reg 属性值是一个。的内存映射,只是在采用设备树以后,大部分的驱动都使用 of_iomap 函数了。原创 2023-05-11 20:30:29 · 522 阅读 · 0 评论 -
设备树dtb文件的格式分析
last_comp_version表示向后兼容的版本,17版本向后兼容16版本,所以last_comp_version的值为16。原创 2023-05-11 20:28:51 · 680 阅读 · 0 评论