blob: 0e65694255e6b1492e8781d1713758b8e259d8c7 [file] [log] [blame]
.. _source_tree_v2:
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 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 :file:`lib`.
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
Sample applications that demonstrate the use of Zephyr features.
Various programs and other files used to build and test 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.