.. _learning_layout: Understanding the directory structure ===================================== Previous: :ref:`learning_setup` 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. .. code-block:: text ├── 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: :ref:`learning_console`