官注+星标G众号,及时获取更多技术分享~
作者 | 冰茶奥利奥
V G众号 | 嵌入式电子创客街
QA:dts和dtsi的区别
在嵌入式 Linux 系统中,DTS(Device Tree Source)和 DTSI(Device Tree Source Include)是描述硬件设备树的文件格式。它们本质上是同一种语法的文件,但在使用上有一定区别。以下是两者的主要差异和用途:
1. 文件类型和用途
-
DTS (Device Tree Source)
DTS 文件是设备树的主文件,描述了一个具体设备或板子的硬件配置。每个具体的硬件设备都会有一个对应的 DTS 文件,它是系统用来解析设备硬件结构的主要输入。
例如:board.dts
。 -
DTSI (Device Tree Source Include)
DTSI 文件是设备树的包含文件,通常是一个共享的硬件描述片段,供多个 DTS 文件引用。DTSI 文件中定义的是通用或模块化的硬件配置,目的是实现代码复用。
例如:chip.dtsi
。
2. 内容层次
-
DTS
通常定义特定板级硬件相关的配置,例如 GPIO 引脚分配、外设启用等。/dts-v1/; /include/ "chip.dtsi" / { model = "Custom Board"; compatible = "custom,board"; aliases { serial0 = &uart0; }; chosen { stdout-path = &uart0; }; };
-
DTSI
通常定义 SoC(芯片)级或通用硬件部分的配置,适用于多个设备树文件。/dts-v1/; / { soc { uart0: serial@10000000 { compatible = "ns16550";