Skip to content

Technoculture/firmware-template

Repository files navigation

Firmware Template


shape_3FWSg8mxSBF3motfyvrGN at 24-08-13 17 33 10

This repository contains a Zephyr firmware template. 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:

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, the example-application v2.6.0 will point to Zephyr v2.6.0. Note that the main branch always points to the development branch of Zephyr, also main.

Getting Started

Before getting started, make sure you have a proper Zephyr development environment. Follow the official Zephyr Getting Started Guide.

Initialization

The first step is to initialize the workspace folder (my-workspace) where the firmware-template and all Zephyr modules will be cloned. Run the following command:

# initialize my-workspace for the panomic-application (main branch)
west init -m https://github.com/Technoculture/firmware-template --mr main panomic-workspace
# update Zephyr modules
cd panomic-workspace
west update

Building and running

To build the application, run the following command:

cd panomic-workspace
export BOARD=panomic_board
west build -b $BOARD app

where $BOARD is the target board.

You can use the panomic_board board found in this repository. Note that Zephyr sample boards may be used if an appropriate overlay is provided (see app/boards).

A sample debug configuration is also provided. To apply it, run the following command:

west build -b $BOARD app -- -DOVERLAY_CONFIG=debug.conf

Once you have built the application, run the following command to flash it:

west flash -r jlink

In order to debug the program using gdb, run the following command:

west debug -r jlink

When accessing the shell or console, use USART3 on the Olimexe407 board
uart

Testing

To execute Twister integration tests, run the following command:

west twister -T tests --integration

Documentation

A minimal documentation setup is provided for Doxygen and Sphinx. To build the documentation first change to the docs folder:

cd docs

Before continuing, check if you have Doxygen installed. It is recommended to use the same Doxygen version used in CI. To install Sphinx, make sure you have a Python installation in place and run:

pip install -r requirements.txt

API documentation (Doxygen) can be built using the following command:

doxygen

The output will be stored in the _build_doxygen folder. Similarly, the Sphinx documentation (HTML) can be built using the following command:

make html

The output will be stored in the _build_sphinx folder. You may check for other output formats other than HTML by running make help.