设备树
提示
这是对设备树和Zephyr如何使用它的概念概述。有关一步一步的指南和示例,请参阅设备树的主题。
设备树是一种描述硬件的分层数据结构。设计树规范定义了它的源表示和二进制表示。Zephyr使用设备树来描述其支持的电路板上可用的硬件,以及该硬件的初始配置。
设备输入文件有两种类型:设备源和设备绑定。资料来源包含了设计装置本身。绑定描述了其内容,包括数据类型。构建系统使用设备树源和绑定来生成生成的C头。生成的头的内容由devicetree.h API抽象,您可以使用该API从设备中获取信息。
以下是这个过程的一个简化的视图:

图20设备树生成流程
所有Zephyr和应用程序源代码文件都可以包括和使用devicetree.h。这包括设备驱动程序、应用程序、测试、内核等。
该API本身是基于C宏的。宏名称都以DT_开头。一般来说,如果您在Zephyr源文件中看到一个以DT_开头的宏,那么它可能是一个 devicetree.h 宏。生成的C头也包含以DT_开头的宏;您可能会在编译器错误消息中看到这些宏。您总是可以从未生成的宏判断生成的宏有一些低写字母,而devecree.h宏名称所有字母都大写。
在设备树中定义的一些信息可以通过从Kconfig生成的CONFIG_宏获得。这样做通常是为了向后兼容,因为西风使用Kconfig的时间比设备更长,并且仍在
设备树是一种描述硬件的分层数据结构,Zephyr使用它来配置和描述系统硬件。本文介绍了设备树的语法、结构、重要属性,以及如何写入属性值。设备树源文件(.dts)与绑定(.yaml)共同作用,生成C头文件供驱动程序和应用程序使用。此外,别名和选择节点提供了一种引用和配置系统值的方法。设备树输入文件包括源文件、头文件、覆盖文件和绑定,而输出文件主要是生成的C头文件。
订阅专栏 解锁全文
533

被折叠的 条评论
为什么被折叠?



