Zephyr, a project of The Linux Foundation backed by major tech companies like Intel, Nordic Semiconductor, NXP, Linaro and much more companies developing and maintaining a small real-time operating system for connected, resource constrained devices supporting multiple architectures and targets. Zephyr is released under Open Source Apache License 2.0
This blog is a short tutorial on how to build, flash and run the sample application using Zephyr RTOS. Here I am using Ubuntu 18.04 and B-L475-IOT1 Development Board.
What do you need?
- Linux Host System
- Zephyr Supported Board
Setup the Zephyr Development Environment
Follow this Zephyr documentation guide to install the required linux dependencies. Since the Zephyr provides a west (meta-tool) for building application, flashing and debugging them.
Install west
pip3 install --user -U west
Clone the Zephyr Repositories
Clone all of Zephyr repositories in a new zephyrproject
directory.
west init zephyrproject cd zephyrproject west update
Install Python Dependencies
Install python packages required by Zephyr. From the zephyrproject directory that you cloned Zephyr into:
pip3 install --user -r zephyr/scripts/requirements.txt
Build and Run an application
Go to the zephyr cloned directory
cd zephyr
Setup your build environment
source zephyr-env.sh
Before building the sample application check the environment variable are properly set by following command
printenv | grep ZEPHYR
This will print the environment variable
ZEPHYR_TOOLCHAIN_VARIANT=zephyr ZEPHYR_BASE=$HOME/zephyrproject/zephyr ZEPHYR_SDK_INSTALL_DIR=$HOME/zephyr-sdk/
If ZEPHYR_TOOLCAIN_VARIANT and ZEPHYR_SDK_INSTALL_DIR is not set, follow the Zephyr documentaion guide to set the environment variable properly.
Build an blinky application
Build the blinky sample for ST disco_l475_iot1 board
west build -b disco_l475_iot1 samples/basic/blinky
The generated output file will be in build/zephyr/
directory. The directory contains bin, hex and elf file format.
Flash the application to a Board
west flash
Once the application is flashed it will blink the on board LED for every second.
Conclusion
In this post we build and flashed the sample blinky application for the disco_l475_iot1 board. In the next post we will build and run the sample application with Mcuboot.
1 Comment
[…] PreviousPrevious post:Zephyr RTOS: Getting Started […]