175: How Hard Could It Be?

Embedded.fm · 9 Nov 2016 · 1h 15m

What this episode covers

Jean Labrosse, founder of Micrium (now part of Silicon Labs) and author of the uC/OS real-time operating system, explains the origins of his software, which began after his team encountered a bug in a commercial RTOS that the vendor refused to fix. He details the technical challenges of building a robust kernel, including handling race conditions, priority inversion, and stack overflows, and discusses the importance of clean code and certification for medical and avionics applications. Labrosse also advocates for using commercial RTOS support over free alternatives like FreeRTOS, arguing that the 'free puppy' analogy highlights the hidden costs of maintenance and debugging time.

Mentioned

Companies
Silicon Labs
Products
uC/OS, FreeRTOS
Chips
Kinetis, ARM Cortex-M, 68HC11
Tools
MicroC Probe, SEGGER System View
Also
MISRA

Other shows on the same ground, closest first.

  • The Amp Hour · 1h 08m

    An Interview with Jack Ganssle (2nd)

    Jack Ganssle, author of the Embedded Muse, discusses the evolution of embedded firmware, highlighting the shift toward cloud-connected platforms and the acquisition of RTOS providers like FreeRTOS by Amazon and ExpressLogic by Microsoft. He critiques the current state of vendor-supplied software, praising Renesas' Synergy platform for providing fully tested, guaranteed software components, while noting the decline of legacy RTOSs like VxWorks. Ganssle emphasizes that firmware development requires rigorous design and quality processes, arguing that jumping into code without solid requirements leads to catastrophic failures, as seen in recent medical device and aviation incidents.

  • The Amp Hour · 1h 25m

    Real Time Operating Systems with Brian Amos

    Chris Gammell, author of 'Hands-On RTOS with Microcontrollers', explains the practical application of Real-Time Operating Systems (RTOS) to host Brian Amos. They discuss when to use an RTOS versus a simple state machine or super loop, highlighting use cases like UI handling and complex communications. Gammell details how FreeRTOS manages task prioritization, memory segmentation, and inter-task communication using queues and semaphores. The conversation covers debugging strategies using tools like Segger Ozone and SystemView, and contrasts lightweight RTOS with full operating systems like Linux and Zephyr.

  • Oxide and Friends · 2h 03m

    The Pragmatism of Hubris

    Cliff Biffle, principal engineer at Oxide Computer Company, explains the origins of Hubris, an embedded operating system designed for Oxide's rack-scale computers, drawing on his prior experience with Project Loon at Google. The team evaluated existing options like Tock and QNX but chose to build Hubris in Rust to ensure memory safety and value alignment, leveraging a software-hardware co-design approach to bypass the risks of secure FPGAs. Key technical decisions include using a minimal kernel, self-describing build archives, and advanced debugging tools like Humility to manage complex embedded systems without dynamic loading or self-hosting constraints.

  • The Pragmatic Embedded Podcast · 56m

    Modern Embedded Systems Programming with Miro Samek

    Miro Samek, founder and CEO of Quantum Leaps, explains why traditional embedded architectures like superloops and RTOS lead to 'spaghetti code' and concurrency bugs, advocating instead for event-driven active objects and hierarchical state machines. He details how this approach eliminates race conditions and mutexes by enforcing a 'no sharing' principle, thereby improving testability and development velocity. Samek also discusses the importance of using lightweight modeling tools to generate code from state diagrams, ensuring the model remains the source of truth in an agile workflow.

  • The Pragmatic Embedded Podcast · 45m

    Zephyr with Luka Mustafa

    Luka Mustafa, founder and CEO of Irnas Product Development, explains how Zephyr RTOS, a Linux Foundation-backed project, enables hardware-agnostic embedded development by abstracting low-level details through device trees and a comprehensive ecosystem. He highlights the dramatic reduction in porting time—moving Bluetooth code between chip architectures in an hour versus months—and the ability to run native POSIX simulations on Linux for faster development. Mustafa also details Zephyr's testing framework, Twister, and its cultural impact, noting the steep learning curve for electrical engineers while emphasizing the long-term benefits of code reuse and reduced maintenance overhead. The discussion covers resource constraints, safety-critical certification processes, and specific scenarios where simpler solutions like Arduino are preferable to an RTOS.

The summary, chapters and topics are generated from the episode’s audio by this directory, not written by Embedded.fm. The episode itself belongs to its publisher.