Practical Zephyr - Zephyr Basics (Part 1) | Interrupt

This is the start of a new article series about Zephyr’s basics: It will walk you through Zephyr’s build and configuration systems West, Kconfig and devicetree.


This is a companion discussion topic for the original entry at https://interrupt.memfault.com/blog/practical_zephyr_basics

Thanks so much Martin! This article is exactly what I needed as someone trying to figure out Zephyr. I’ve done bare metal C, but am new to RTOS in general.

At first I couldn’t get “West build” to work, but then found this post: How to build your Zephyr app in a standalone folder - Zephyr Project

Turns out I needed to source the helper file
source ~/zephyrproject/zephyr/zephyr-env.sh

I followed the setup instructions from the Zephyr website, instead of using the Nordic toolchain manager.
-Hunter

Great to hear, thanks! This first article is a little starter that really just serves as a “bring-up” to be able to follow along when diving into Kconfig and Devicetree. Using Nordic’s toolchain manager is just a short-cut for the setup. In the last article of this series we’ll revise our setup and see what we can truly do with West. Then, you’ll really only need to install tools, no more sources needed since it is all managed by West. Hope you’ll stick around for the last article!

I had to do some digging to find the new location for the west binaries.
Please also add the following path to the setup.sh
$ncs_install_dir/toolchains/$ncs_bin_version/usr/local/bin

Using ubuntu 22.04 i also have to install libpython3.9 which is available via ppa (deadsnakes)

But even after that i had still issues using the west flash command.
In the end i am relying on using VSCode inside of WSL( where all of this is happening ), to flash and debug. I am forwarding the usb device to it via usbpid. But still quite helpful what is happening in the blog post.