源码树结构

理解 Zephyr 源码树有助于快速定位 Zephyr 相关功能的代码。

Zephyr 源码树提供了如下顶层目录,且每个目录可能还包括一个或多个子目录:

arch

架构相关的内核以及 SoC 相关的代码。每个所支持的架构(例如 x86 和 ARM)都有一个自己的子目录。每个子目录还包括如下功能的子目录:

  • 架构相关的内核源文件
  • 架构相关的内核头文件和私有 API
  • SoC 相关的代码

boards

开发板相关的代码和配置文件。

doc

Zephyr 文档的源文件和工具。

drivers

设备驱动的代码。

ext

集成到 Zephyr 中的外部源代码,例如厂商提供的硬件接口代码、密码库代码等。

include

lib 外的所公有 API 的头文件。

kernel

架构无关的内核代码。

lib

包括最小化 C 库在内的库代码。

misc

不属于如何顶层目录的杂项代码。

samples

演示 Zephyr 功能特性的应用程序例程。

scripts

各种程序以及用于编译、测试 Zephyr 应用程序的其它文件。

tests

Zephyr 功能特性的测试代码。
subsys
Zephyr 的子系统包括: * USB 设备栈代码。 * 网络代码,包括蓝牙协议栈和网络协议栈。 * 文件系统代码。 * 蓝牙主机和控制器。