设备树知识点
平台总线内容的学习中,我们使用 platform_device 结构体来对硬件设备进行描述,这是一种传统的平台总线设备描述方式。每个 platform_device 结构表示一个特定的硬件设备,并通过注册到平台总线上来使得内核能够与该设备进行通信和交互。该结构包含设备的名称、资源(如内存地址、中断号等)、设备驱动程序等信息。
为了克制设备平台所导致的代码重复杂乱,进而引入设备树概念。
当描述设备树(Device Tree)时,通常会涉及到以下几个关键术语:DTS、DTSI、DTB 和DTC。下面来对每个术语进行介绍。
1. DTS(Device Tree Source):DTS 是设备树的源文件,采用一种类似于文本的语法来描述硬件设备的结构、属性和连接关系。DTS 文件以.dts 为扩展名,通常由开发人员编写。它是人类可读的形式,用于描述设备树的层次结构和属性信息。
2. DTSI(Device Tree Source Include):DTSI 文件是设备树源文件的包含文件。它扩展了 DTS文件的功能,用于定义可重用的设备树片段。DTSI 文件以.dtsi 为扩展名,可以在多个 DTS 文件中包含和共享。通过使用 DTSI,可以提高设备树的可重用性和可维护性(和 C 语言中头文件的作用相同)。
3. DTB(Device Tree Blob):DTB 是设备树的二进制表示形式。DTB 文件是通过将 DTS 或 DTSI文件编译而成的二进制文件,以.dtb 为扩展名。DTB 文件包含了设备树的结构、属性和连接信息,被操作系统加载和解析。在运行时,操作系统使用