
Episode 21
Zephyr - First Experiences
Some thoughts on our first few months with Zephyr
The TMPDIR podcast · Cliff Brake and Khem Raj
May 26, 202334m 22s
Audio is streamed directly from the publisher (storage.googleapis.com) as published in their RSS feed. Play Podcasts does not host this file. Rights-holders can request removal through the copyright & takedown page.
Show Notes
Available on your favorite podcast platform.
- backstory
- working on a project using freeRTOS on STM32H743
- a lot of work integrating things like Ethernet/USB
- code generation has tradeoffs
- without one week, 1 engineer working part-time had Zephyr running with most drivers working
- Build
- Kconfig (very granular)
- Device Tree -> C headers
- extensive use of Macros
- no C++
- differences between other RTOS models
- most MCU tooling takes RTOS, and MCU integrates and delivers
- Zephyr does the opposite – they take MCU HAL, and then integrate and deliver directly to developers
- Support/Community
- Discord
- Github discussions
- Shell
- is amazing
- proper terminal with tab completion, proper backspace support, etc
- keeps what you are typing at bottom of screen even if there are logging messages scrolling
- list threads, memory used, %CPU, etc
- Projects like Beagle Connect Freedom – they are piping shell over radio connection
- Logging
- standard levels ERR, WRN, INF, DBG
- easy to add a logging domain in any module
- Macros automatically apply LOG_WRN() to current logging domain
- can change log level of each domain at runtime in shell
- Tooling
- well-integrated flashing
- debugging uses the command line GDB
- Linux connections
- Performance
- challenges
- configuration
- tracing code through system calls
- documentation is fairly good, but can be hard to find things
- opinion
- The Zephyr project is a sustainable approach as MCUs become more complex
Discuss this episode at our community site.