The project structure
Regardless of your native OS (Windows or Linux), you should end up with the following project structure:
.
├── README
├── boot
├── doc
├── docker
├── samples
├── scripts
├── src
└── west.yml
where:
boot
: contains all of the file/binaries required for booting the board (application binary excluded).doc
: contains the documentation-related filesdocker
: contains the Docker-related configuration filessamples
: contains the source code for the sample applicationsscripts
: contains the utility scripts used for setting up the development environmentsrc
: starting point for your application.west.yml
: west manifest file
The manifest file
This west.yml
file is used to tell west
where to clone the required
repositories (i.e. Zephyr and the NXP HAL) and has the following content:
manifest:
version: "0.13"
remotes:
- name: zephyrproject
url-base: https://github.com/nxp-upstream
projects:
- name: zephyr
remote: zephyrproject
revision: nxpcup-2026
import:
name-whitelist:
- hal_nxp
Based on its content, we can see that the Zephyr repository is cloned from
https://github.com/nxp-upstream/zephyr
and uses the nxpcup-2026
branch. This is a fork of the main
branch from the official Zephyr
repository with some additional patches applied on it for temporary
fixes/workarounds that need to be upstreamed.
You should always run west update
each time you start developing to make
sure that you’re using the latest version of the Zephyr repository since
additional fixes may be added to the nxpcup-2026
branch.
If you encounter an issue that’s related to Zephyr, please make sure to create a GitHub issue under the FRDM-IMX93 for NXP CUP project repository first as described in Issues and contributions.
The samples
directory
This directory is made up of several sub-directories as shown below:
samples
├── hbridge
├── hello_world
├── pixy2
└── servo
Each of these sub-directories corresponds to a sample application. The purpose of such an application is to demonstrate certain functionalities and help in checking if the hardware setup is sane.
See Supported samples for the list of supported samples.
The src
directory
See Writing your own application for more information on the src
directory.