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 Zephyr application skeleton
- Zephyr workspace applications
- West T2 topology
- Custom boards
- Custom devicetree bindings
- Out-of-tree drivers
- Out-of-tree libraries
- Example CI configuration (using Github Actions)
- Custom west extension
This repository is versioned together with the Zephyr main tree. This
means that every time that Zephyr is tagged, this repository is tagged as well
with the same version number, and the manifest entry for zephyr
will point to the corresponding Zephyr tag. For example, example-application
v2.6.0 will point to Zephyr v2.6.0. Note that the main
branch will always
point to the development branch of Zephyr, also main
.
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 (openht-workspace
) where
the openht-firmware
and all Zephyr modules will be cloned. You can do
that by running:
# initialize openht-workspace for the openht_firmware (main branch)
west init -m https://github.com/M17-Project/OpenHT-firmware.git --mr main openht-workspace
# update Zephyr modules
cd openht-workspace
west update
The application can be built for the STM32F469 Discovery board by running:
cd openht-firmware
west build -b stm32f469i_disco app
Once you have built the application you can flash it by running:
west flash