7991d32487
This makes it easier to rename this repository and use it under its new name. For example, with this patch, if you push the repository to GitHub user 'foo' as repository 'bar', you can do: west init -m https://github.com/foo/bar my-workspace And you will get: - my-workspace/.west/config says manifest.path is 'bar' - my-workspace/bar exists as a git repository By contrast, with the current 'self: path:' setting, you will instead get: - my-workspace/.west/config says manifest.path is 'example-application' - my-workspace/example-application exists as a git repository Let's let people name this repository whatever they want, and get the expected results, instead of forcing the name example-application Signed-off-by: Marti Bolivar <marti.bolivar@nordicsemi.no> |
||
---|---|---|
.github/workflows | ||
app | ||
boards/arm/custom_plank | ||
drivers | ||
dts/bindings/sensor | ||
include/custom_lib | ||
lib | ||
scripts | ||
tests/lib/custom_lib | ||
zephyr | ||
.gitignore | ||
CMakeLists.txt | ||
Kconfig | ||
LICENSE | ||
README.md | ||
west.yml |
Zephyr Example Application
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, 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 example-application
and all Zephyr modules will be cloned. Run the following
command:
# 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
Building and running
To build the application, run the following command:
west build -b $BOARD app
where $BOARD
is the target board.
You can use the custom_plank
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
You can also use it together with the rtt.conf
file if using Segger RTT. Once
you have built the application, run the following command to flash it:
west flash