| .. _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. |
| |
| :file:`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 |
| |
| :file:`boards` |
| Board related code and configuration files. |
| |
| :file:`doc` |
| Zephyr documentation source files and tools. |
| |
| :file:`drivers` |
| Device driver code. |
| |
| :file:`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. |
| |
| :file:`include` |
| Include files for all public APIs, except those defined under :file:`lib`. |
| |
| :file:`kernel` |
| Architecture-independent kernel code. |
| |
| :file:`lib` |
| Library code, including the minimal standard C library. |
| |
| :file:`misc` |
| Miscellaneous code that doesn't belong to any of the other top-level |
| directories. |
| |
| :file:`samples` |
| Sample applications that demonstrate the use of Zephyr features. |
| |
| :file:`scripts` |
| Various programs and other files used to build and test Zephyr |
| applications. |
| |
| :file:`tests` |
| Test code and benchmarks for Zephyr features. |
| |
| :file:`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 |
| |