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.
arch
Architecture-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 https://docs.zephyrproject.org 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.
cmake
- Additional build scripts needed to build Zephyr.
subsys
Subsystems 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.