Find a file
Gregory Shue 5a66095fa6 lib: create empty lib subsystem
Create lib subsystem with empty Kconfig menu, subsystem build file.
Updated top-level build and documentation to include subsystem.
This was created to provide an example of how the `lib/` directory
can be connected to the Zephyr build system through `module.yml`,
and so that CI can verify that the extension settings used here
work with these sub-trees.
.
The approach follows the pattern of paralleling the Zephyr tree.
An empty subsystem was implemented rather than a non-empty one
in order to isolate the core changes from any specific library.
This provides a clean reference for users.
.
It was assumed that some users will want to strip out the `lib/`
subsystem separate from existing subsystems, and vice versa.
.
This was verified by:
  - visually verifying a clean build of:
      `west build -b custom_plank -p always example-application/app/`
  - visually verifying the subsystem appeared in the correct
    location in a clean build of:
      `west build -b custom_plank -p always example-application/app/`

Signed-off-by: Gregory Shue <gregory.shue@legrand.us>
2022-11-17 15:09:34 +01:00
.github/workflows ci/readme: remove usage of -s legacy option 2022-07-07 12:41:29 +02:00
app devicetree: remove usage of deprecated label property 2022-08-25 23:55:10 -07:00
boards/arm/custom_plank devicetree: remove usage of deprecated label property 2022-08-25 23:55:10 -07:00
drivers drivers: sensor: examplesensor: use select in Kconfig 2022-08-25 23:55:10 -07:00
dts/bindings/sensor devicetree: remove usage of deprecated label property 2022-08-25 23:55:10 -07:00
lib lib: create empty lib subsystem 2022-11-17 15:09:34 +01:00
scripts west: add example west command 2022-08-31 17:26:45 +02:00
zephyr app: initial application skeleton 2021-05-07 10:04:22 -04:00
.gitignore west: add example west command 2022-08-31 17:26:45 +02:00
CMakeLists.txt lib: create empty lib subsystem 2022-11-17 15:09:34 +01:00
Kconfig lib: create empty lib subsystem 2022-11-17 15:09:34 +01:00
LICENSE Initial commit 2021-01-12 14:16:14 +01:00
README.md lib: create empty lib subsystem 2022-11-17 15:09:34 +01:00
west.yml west: Point back to main after release 2022-09-30 12:20:03 -05: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:

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.

Getting Started

Before getting started, make sure you have a proper Zephyr development environment. You can 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. 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

Build & Run

The application can be built by running:

west build -b $BOARD 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 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