linux中dts分析

本文详细解析了Linux内核中设备树(Device Tree)的概念,包括DTS文件的符号含义、描述信息、结构和reg属性的理解。介绍了如何通过DTC编译DTS源文件生成DTB,并解释了DTS在系统启动过程中的作用。

目录

 

1 引言

2 dts加载

2.1 dts中相关符号的含义

2.2 dts的描述信息

2.3 dts的结构

2.4 dts中的 reg 理解

3 参考文献:

 

1 引言

       由于在参与的某个项目中涉及到修改dts的相关参数,所以对dts进行整体的学习了解。Linux内核从3.x版本之后开始支持使用设备树,这样做的意义重大,可以实现驱动代码与设备的硬件信息相互的隔离,减少了代码中的耦合性DTS。

2 dts加载

       如果要使用Device Tree,首先用户要了解自己的硬件配置和系统运行参数,并把这些信息组织成Device Tree source file。通过DTC(Device Tree Compiler),可以将这些适合人类阅读的Device Tree source file变成适合机器处理的Device Tree binary file(有一个更好听的名字,DTB,device tree blob)。在系统启动的时候,u-boot可以将保存在flash中的DTB copy到内存,并把DTB的起始地址传递给kernel。

                                      

2.1 dts中相关符号的含义

  • / - 根节点
  • @ - 如果设备有地址,则由此符号指定
  • & - 引用节点
  • : - 冒号前的label是为了方便引用给节点起的别名,此label一般使用为&label
  • , - 属性名称中可以包含逗号。如compatible属性的名字 组成方式为”[manufacturer], [model]”,加入厂商名是为了避免重名。自定义属性名中通常也要有厂商名,并以逗号分隔。
  • # - #并不表示注释。如 #address-cells ,#size-cells 用来决定reg属性的格式。
  •   - 空属性并不一定表示没有赋值。如 interrupt-controller 一个空属性用来声明这个node接收中断信号数据类型
  • ”” - 引号中的为字符串,字符串数组:”strint1”,”string2”,”string3”
  • < > - 尖括号中的为32位整形数字,整形数组<12 3 4>
  • [ ] - 方括号中的为32位十六进制数,十六机制数据[0x11 0x12 0x13]  其中0x可省略
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值