设备树的起源

一堆乱七八糟的板级硬件信息都放在内核的arch/arm里面,导致内核太虚胖,从而引入设备树DTS(Device Tree Source)

Device Tree是一种描述硬件的数据结构,用时实现驱动代码与设备信息分离;

DTS文件采用树形结构描述板级设备,也就是电路板上的硬件设备信息,比如CPU数量、内存基地址、IIC接口上接了那些设备、SPI接口上接了那些设备;

DTS文件描述设备信息有相应的语法规则;

设备树文件的扩展名为.dts,一个.dts对应一个电路板,一般放在内核的arch/arm/boot/dts目录下;

对于一些相同的dts配置可以抽象到dtsi文件中,dtsi文件其实类似于C语言中的.h文件,可以使用C语言中的的include来包含.dtsi文件

 

dtc (device tree compiler)也就是设备树文件.dts 文件的编译器,将.c文件编译为.o文件需要用到gcc编译器,将.dts文件编译为相应的二进制文件则需要dtc编译器;

dtc工具在Linux内核的scripts/dtc目录下,编译了内核源码之后才生成。

dtb文件就是将.dts文件编译成二进制数据之后得到的文件

 

dts语法:

我们基本上不会从头到尾写一个dts文件,大多数是直接在SOC厂商提供的.dts文件上进行修改;

但是语法还是必须要学习的,以方便修改dts

posted on 2022-08-29 17:13  信义勤爱  阅读(62)  评论(0编辑  收藏  举报