
前言
Zephyr 使用设备树来描述其支持的板型上可用的硬件,以及该硬件的初始配置。
有两种类型的设备树输入文件:设备树源码 和 设备树绑定 。这里的 设备树源码 即设备树本身;设备树绑定 则描述了设备树的内容,包括数据类型。[构建系统] 使用设备树源码和绑定来生成一个 C 头文件。这一过程让你最终可以通过 devicetree.h API 获取你设备树中的信息。
这是该流程的概览:

所有 Zephyr 和应用程序源代码文件都可以引入并使用 devicetree.h 。
一般来说,如果 Zephyr 源码中以 DT_ 开头的宏,它就可能是定义在 devicetree.h 中的宏。
生成的 C 头文件也包含以 DT_ 开头的宏。
设备树中定义的一些信息可通过 Kconfig 生成的 CONFIG_ 宏获得。这通常是为了向后兼容,因为 Zephyr 使用 Kconfig 的时间超过了设备树,并且仍在将一些信息从 Kconfig 转换为设备树。
Zephyr 还允许 Kconfig 重写从设备树获取的默认值。
什么是设备树?
顾名思义,设备树就是一个树状结构。这一结构的具备可读性的格式称为 DTS 文件(用于设备树源码),这一文件格式定义在 设备树规范 中。
这是一个示例 DTS 文件:
/dts-v1/;
/ {
a-node {
subnode_nodelabel: a-sub-node {
foo = <3>;
label = "SUBNODE";

最低0.47元/天 解锁文章
910

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



