Understanding the directory structure

Previous: Set up your environment

This project’s main directories are explained below. You can view this as a map to regularly refer back to as you navigate and become more acquainted with the code.

├── build
│   ├── posix
│   ├── s32k148-clang
│   └── s32k148-gcc
├── cmake
│   ├── modules
│   ├── presets
│   └── toolchains
├── doc
├── executables
│   ├── referenceApp
│   └── unitTest
├── libs
│   ├── bsp
│   ├── bsw
│   └── os
├── platforms
│   ├── posix
│   └── s32k1xx
└── tools

admin: holds platform-specific build adaptation files. In particular the cmake subdirectory contains platform-specific settings for the build environment.

doc: holds some of the RST (reStructuredText) documentation files from which this documentation is built. Most libraries also contain their own RST documentation along-side their code and all these are pulled together when this documentation is built, as can be seen in the index on the left.

build/[preset]: holds build artifacts & executables created by cmake for different [presets]. For example if you build for the posix platform the directory build/posix is created.

executables: holds application-specific code (not the built executables). The referenceApp subdirectory contains an example application. Within referenceApp you will find app.cpp which contains for bring-up/tear-down of systems by the lifecycle manager and application-specific configuration code.

libs: holds shared library code which is reused across many projects. libs/bsp contains BSP (Board Support Package) libraries, libs/bsw contains BSW (Base Software) shared libraries and libs/os contains FreeRTOS operating system code.

platforms: contains platform-specific code, that can be reused by multiple applications.

tools: holds any tools used in the project

Next: Using the console