Home > On-Demand Archives > Q&A Sessions >
Live Q&A - An Introduction to The Zephyr Project RTOS
Mohammed Billoo - Watch Now - EOC 2023 - Duration: 25:53
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.
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.
Agreed. While it takes a bit getting used to, the reusability that devicetrees offer makes for cleaner code, in my opinion.
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.
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.
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) ?
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).
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.
Awesome! The integration with VS Code is a game-changer for Zephyr.
If you never used Zephyr, as I, this is a great Kick-Off to start with, thank you Mohammend for the compact presentation.!
Excellent! Glad you found the talk useful.
09:34:04 From Keith J : So is Zephyr Linux? 09:34:09 From Keith J : 😃 09:34:14 From Keith J : Sorry - couldn't resist 09:35:14 From Randy Lee : DeviceTree: So where's the grammer for the thing and where is the keyword/dictionary index for it? 09:38:09 From Al Anway : You made a statement that leaving a config option blank pulls in needed default drivers. Can you then see or explicitly include all of those drivers so they are not invisible within your project? 09:39:42 From Al Anway : thanks! 09:50:19 From BobF : FPGA portable ... custom processor depenedent? 09:50:56 From Keith J : Thanks for the presentation Mohammed. I'm keeping an eye on Zephyr but the barrier to entry is still to high unless using Nordic 09:51:11 From Keith J : meaning difficult 09:54:27 From BobF : Origins of name ... Zephyr? 09:54:28 From Raul Pando : Would you consider Zephyr for application type processors (Cortex-A) ? 09:56:02 From BobF : One day .... I may take a test (ChatGBT) 09:56:05 From Raul Pando : Thank you 09:56:42 From Stephane : According to ChatGPT: The name "Zephyr" for the Zephyr Real-Time Operating System (RTOS) was inspired by the term "zephyr wind". The term "zephyr" refers to a gentle, mild breeze that usually blows from the west. The name was chosen to convey the lightweight, scalable, and adaptable nature of the Zephyr RTOS, which is designed to be highly configurable and to support a wide range of devices with varying processing power and memory capabilities. Additionally, the name "Zephyr" also represents the project's goal to provide a breath of fresh air in the highly competitive and rapidly evolving embedded systems market. The Zephyr project is an open-source project under the Linux Foundation, and it is gaining popularity in the Internet of Things (IoT) and embedded systems communities. 09:56:57 From Jacob Beningo : Reacted to "According to ChatGPT..." with 👍 09:57:12 From Keith J : 😄 09:57:21 From BobF : Thanks Stephane 09:57:34 From Stephane : Reacted to "Thanks Stephane" with 👍
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...