Home > On-Demand Archives > Talks >

An Introduction to The Zephyr Project RTOS

Mohammed Billoo - Watch Now - Duration: 44:00

An Introduction to The Zephyr Project RTOS
Mohammed Billoo

A Realtime Operating System (RTOS) is a staple of most embedded systems. The Zephyr Project RTOS is relatively young and borrows certain elements and paradigms from Linux that may stump experienced embedded software developers, who are accustomed to a more "traditional" RTOS.

This talk will introduce The Zephyr Project RTOS, demonstrating the similarities and differences between Zephyr and a traditional RTOS. The focus will be on how to use the data structures and paradigms offered by Zephyr to accomplish tasks common to most embedded systems. This talk will also highlight key differences that seasoned embedded software developers will need to keep in mind when incorporating Zephyr into their projects.

Topics Covered:

  • Navigating The Zephyr Project RTOS code base
  • Creating tasks 
  • Synchronizing data across tasks
  • Creating interrupt handlers
  • Incorporating peripherals
  • User space vs kernel space
M↓ MARKDOWN HELP
italicssurround text with
*asterisks*
boldsurround text with
**two asterisks**
hyperlink
[hyperlink](https://example.com)
or just a bare URL
code
surround text with
`backticks`
strikethroughsurround text with
~~two tilde characters~~
quote
prefix with
>

DanR
Score: 0 | 10 months ago | no reply

Thank you Mohamed, for this intro to Zephyr. Looking forward to my first go on it.
Perhaps they named it Zephyr because it's a breeze to use...

randy.lee
Score: -1 | 10 months ago | 1 reply

Devicetree is an abomination. OMG is it bad. Just about any vendor, NXP, Renasas and Cypress have serious tools to set up various subsystems, pin assignments and what things to include much, much, much better. Way better. Device tree is not even close to the abilities of any of those tools.

RaulPando
Score: 0 | 10 months ago | 2 replies

It's true that it gets some getting used to, unless one comes from the (embedded) Linux kernel build environment (the resemblance is a good design choice by Zephyr committee in my opinion). But the flexibility and modularity it brings in makes it well worth it, a testament to this are the overlays Mohammed alluded to and node aliasing so that application code can remain the same while targeting different hardware just by DT configutation, Mike Szczys covers this use case nicely in his presentation.

mabSpeaker
Score: 0 | 10 months ago | 1 reply

Agreed. While it takes a bit getting used to, the reusability that devicetrees offer makes for cleaner code, in my opinion.

SarahRead
Score: 0 | 10 months ago | no reply

If using Nordic tools, the new Device Tree action in the latest nRF Connect SDK VS code extension is pretty nice. Very easy to visualize pin assignments, peripherals, etc.

randy.lee
Score: 0 | 10 months ago | no reply

targeting different hardware: If your code isn't very, very interested in what's under it; you're not doing embedded. It is never the case that I change hardware without changes to the application above it. And when I do, I track it carefully along with the application. This idea that I'd take anything and willy nilly move it to another board is ridiculous; the code is part and parcel of the hardware it lives in context with. I absolutely DO NOT want layering of hardware setups as that makes it a lot harder to find what is going on really.

Nathan3
Score: 0 | 10 months ago | 1 reply

Thanks for the presentation. One question I have regarding custom hardware What is the best way to handle it in your opinion: copy dev kit board and create a new devicetree ? or use an overlay over a dev kit (and build using the dev kit name) ?

mabSpeaker
Score: 0 | 10 months ago | no reply

Great question. Creating a new devicetree is overkill. Instead, you can use an overlay over a dev kit (since you're most likely using a dev kit as a starting point and only adjusting the pinout).

RaulPando
Score: 0 | 10 months ago | 1 reply

Thanks Mohammed for an insightful presentation. I didn't appreciate how well integrated Zephyr & VSCode are! I think this is an important point for developers accustomed to a front end IDEs so very appropriate to cover it for an introduction to Zephyr.

mabSpeaker
Score: 0 | 10 months ago | no reply

Awesome! The integration with VS Code is a game-changer for Zephyr.

rokath
Score: 0 | 10 months ago | 1 reply

If you never used Zephyr, as I, this is a great Kick-Off to start with, thank you Mohammend for the compact presentation.!

mabSpeaker
Score: 0 | 10 months ago | no reply

Excellent! Glad you found the talk useful.

OUR SPONSORS