Source Tree Structure¶
Understanding the Zephyr source tree can be helpful in locating the code associated with a particular Zephyr feature.
The Zephyr source tree provides the following top-level directories, each of which may have one or more additional levels of subdirectories which are not described here.
archArchitecture-specific kernel and system-on-chip (SoC) code. Each supported architecture (for example, x86 and ARM) has its own subdirectory, which contains additional subdirectories for the following areas:
- architecture-specific kernel source files
- architecture-specific kernel include files for private APIs
- SoC-specific code
boards- Board related code and configuration files.
doc- Zephyr technical documentation source files and tools used to generate the http://zephyrproject.org/doc web content.
drivers- Device driver code.
dts- Device tree source (.dts) files used to describe non-discoverable board-specific hardware details previously hard coded in the OS source code.
ext- Externally created code that has been integrated into Zephyr from other sources, such as hardware interface code supplied by manufacturers and cryptographic library code.
include- Include files for all public APIs, except those defined under
lib. kernel- Architecture-independent kernel code.
lib- Library code, including the minimal standard C library.
misc- Miscellaneous code that doesn’t belong to any of the other top-level directories.
samples- Sample applications that demonstrate the use of Zephyr features.
scripts- Various programs and other files used to build and test Zephyr applications.
subsysSubsystems of Zephyr, including:
- USB device stack code.
- Networking code, including the Bluetooth stack and networking stacks.
- File system code.
- Bluetooth host and controller
tests- Test code and benchmarks for Zephyr features.