2021-04-18 18:47:28 +00:00
|
|
|
# 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 application skeleton
|
|
|
|
- [Custom boards][board_porting]
|
|
|
|
- Custom [devicetree bindings][bindings]
|
|
|
|
- Out-of-tree [drivers][drivers]
|
|
|
|
- Documentation using Doxygen and Sphinx
|
|
|
|
- Example CI configuration (using Github Actions)
|
|
|
|
|
|
|
|
[board_porting]: https://docs.zephyrproject.org/latest/guides/porting/board_porting.html
|
|
|
|
[bindings]: https://docs.zephyrproject.org/latest/guides/dts/bindings.html
|
|
|
|
[drivers]: https://docs.zephyrproject.org/latest/reference/drivers/index.html
|
|
|
|
|
|
|
|
## Getting Started
|
|
|
|
|
|
|
|
Before getting started, make sure you have a proper Zephyr development
|
|
|
|
environment. You can follow the official
|
|
|
|
[Zephyr Getting Started Guide](https://docs.zephyrproject.org/latest/getting_started/index.html).
|
|
|
|
|
|
|
|
### Initialization
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
# 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
|
|
|
|
```
|
|
|
|
|
|
|
|
### Build & Run
|
|
|
|
|
|
|
|
The application can be built by running:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
west build -b $BOARD -s app
|
|
|
|
```
|
|
|
|
|
|
|
|
where `$BOARD` is the target board. A sample debug configuration is also
|
|
|
|
provided. You can apply it by running:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
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:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
west flash
|
|
|
|
```
|