This repository contains a Zephyr example application. The main purpose of this repository is to serve as a reference on how to structure Zephyr based applications. Some of the features demonstrated in this example are:
- Basic application skeleton
- Custom boards
- Custom devicetree bindings
- Out-of-tree drivers
- Documentation using Doxygen and Sphinx
- Example CI configuration (using Github Actions)
Before getting started, make sure you have a proper Zephyr development environment. You can follow the official Zephyr Getting Started Guide.
The first step is to initialize the workspace folder (my-workspace
) where
the example-application
and all Zephyr modules will be cloned. You can do
that by running:
# initialize my-workspace for the example-application (main branch)
west init -m https://github.com/zephyrproject-rtos/example-application --mr main my-workspace
# update Zephyr modules
cd my-workspace
west update
The application can be built by running:
west build -b $BOARD -s app
where $BOARD
is the target board. The custom_plank
board found in this
repository can be used. Note that Zephyr sample boards may be used if an
appropriate overlay is provided (see app/boards
).
A sample debug configuration is also provided. You can apply it by running:
west build -b $BOARD -s app -- -DOVERLAY_CONFIG=debug.conf
Note that you may also use it together with rtt.conf
if using Segger RTT. Once
you have built the application you can flash it by running:
west flash