设备树的起源
一堆乱七八糟的板级硬件信息都放在内核的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
标签:文件,dtc,编译器,内核,linux,dts,驱动,设备 From: https://www.cnblogs.com/FZLGYZ/p/16636601.html