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.
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
- Board related code and configuration files.
- Zephyr technical documentation source files and tools used to generate the http://zephyrproject.org/doc web content.
- Device driver code.
- Device tree source (.dts) files used to describe non-discoverable board-specific hardware details previously hard coded in the OS source code.
- 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 files for all public APIs, except those defined under
- Architecture-independent kernel code.
- Library code, including the minimal standard C library.
- Miscellaneous code that doesn’t belong to any of the other top-level directories.
- Sample applications that demonstrate the use of Zephyr features.
- Various programs and other files used to build and test Zephyr applications.
- Additional build scripts needed to build Zephyr.
Subsystems of Zephyr, including:
- USB device stack code.
- Networking code, including the Bluetooth stack and networking stacks.
- File system code.
- Bluetooth host and controller
- Test code and benchmarks for Zephyr features.