401: Oil and Water

Embedded.fm · 4 Feb 2022 · 1h 09m · Episode 401

What this episode covers

Miro Samek, founder of Quantum Leaps, discusses his 'Modern Embedded Systems Programming' YouTube series and the QP framework, explaining why event-driven state machines and active objects are superior to traditional RTOS usage for hard real-time systems. He details the architectural pitfalls of mixing blocking and non-blocking paradigms, advocating for strict separation to avoid race conditions and priority inversion. Samek also explains the business model of selling commercial licenses for QP to companies that cannot use its GPL open-source version, while providing free educational content to build trust and community.

Mentioned

Companies
Quantum Leaps, Microchip, Wind River, Raspberry Pi Foundation
Products
QP, Tiva C Launchpad, STM32 Nucleo, FreeRTOS, Zephyr, Arduino

Other shows on the same ground, closest first.

  • 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 · 44m

    QP framework with Mitch English

    Mitch English, a product development team lead at Inertia, discusses implementing the QP (Quantum Platform) framework for a medical device blood analyzer. He explains how QP's actor model and hierarchical state machines manage concurrency and complexity better than traditional RTOS approaches. The team shares lessons on testing strategies, using CppUTest for host-based unit tests, and the architectural decision to favor publish-subscribe patterns over direct posting to improve testability.

  • 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.

  • The Spark Gap · 26m

    The Spark Gap - Episode 4

    Corey and Carl debate the merits of using Real-Time Operating Systems (RTOS) versus bare-metal firmware for single-core embedded systems. Carl argues that RTOS solutions like ChibiOS and FreeRTOS provide necessary abstraction for changing design requirements, efficient timer management, and interrupt handling, while Corey contends that bare-metal code offers lower latency, no licensing costs, and full control over platform-specific optimizations. They discuss specific RTOS implementations, licensing models like GPL, and the trade-offs between development time and hardware performance.

  • 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 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.