1.DTS(device tree source)设备树的由来和使用
设备树的由来
什么是设备树:设备树被用来描述板级信息,包括:CPU的数量和类别、内存基地址和大小、总线和桥、外设链接、中断控制器和中端使用情况、GPIP控制器和GPIO使用情况、Clock控制器和Clock使用情况等。
设备树信息被保存在一个ASCII文本文件中,适合人类的阅读习惯,类似于xml文件,在ARM Linux中,一个.dts文件对应一个ARM的machine,放置在内核的arch/arm(arm64)/boot/dts中。
设备树是一种数据结构,用于描述设备信息的语言,具体而言,是用于操作系统中描述硬件,使得不需要对设备的信息进行硬编码(hard code)。
设备树由一系列被命名的节点(node)和属性(property)组成,而几点本身可包含子节点。所谓属性,其实就是成对出现的键值对(key-value)。
设备树源文件dts被编译成dtb二进制文件,在bootloader运行时传递给操作系统,操作系统对其进行展(Flattened),从而产生一个硬件设备的拓扑图,有这个拓扑图,在编码的过程中就可以直接通过系统提供的接口获取到设备树的节点和属性信息。
2.DTS语法
理论上每个节点都要有一个compatible属性,但不是必须的。节点名称后面写了@设备地址,那么必须带reg属性。
3.设备树的编程接口和方法