linux内核设备树api,Linux设备树-记录

1.名词:

dt

dts

dtsi

dtb

dtc

将DTB反编译成dts,dtc -I dtb -O dts -o ABC.dts arch/arm/boot/ABC.dtb

同名节点的处理策略:将内容做集合,名字用最后的那个节点名字。

2.基本语法

1)dts文件以/做为根节点开始,{};之中包含子节点和属性,子节点还可以包含子节点和属性

2)不同级的节点内可有有相同的节点名和属性名

3)结束标志:节点结束符{}后必须以“;”号结束,节点属性值必须以“;”号结束

4)支持C风格/*...*/和C++风格“//...”注释

5)dts文件本身中可以通过#include包含其他.dtsi文件和.h文件

6).dtsi文件本身也可以通过#include包含其他.dtsi和.h

7)DT规范中没有规定节点名和属性的含义

8)DT应用于Linux内核驱动这类特定的场景下,某些节点和属性有特定意义(约定俗成)

9)不论.dts还是.dtsi文件都可以定义节点,并且都是在“/”根节点之下,最终在编译生成.dtb文件时合并成一个根节点

3.特殊节点

1)根节点

2)aliases节点 - 节点别名,节点标签

3)chosen节点 - 启动参数

4)memory节点 - 内存布局,

4.标准熟悉

model

根的compatible,内核要解析的,表示一个板子

cpu的compatible

设备节点的compatible,会和驱动里的compatible比较匹配

二级节点 -- 平台设备, platf_driver.driver.of_match_table.compatible

三级节点 -- i2c spi

phandle

status -- 决定这个设备是否可以工作, “okay”“disabled”“fail”“fail-sss”

reg=

address-cells - 0,1,2表示几个32bit单元表示地址,决定他的子节点

size-cells - 0,1,2表示几个32bit单元表示size大小

device-type

range -- 父子空间的映射

中断 -- interrupt-controller, interrupt-cells, interrupt-parent

gpio属性

5.DT的用途:

1)平台识别 compatible,来识别是否是自己的支持的平台

2)运行时配置

3)设备植入

6. API -- dt读到的都是大端模式

of_find_node_by_path("path")

of_find_node_by_name(start_node, name)

of_find_node_by_type() -- for cpu

of_find_property(node, name, len)

of_get_property()

of_property_read_u8/16/32

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值