364: All the Abstractions

Embedded.fm · 5 Mar 2021 · 1h 09m · Episode 364

What this episode covers

Jacob Beningo, an embedded software consultant and author, discusses the critical role of tracing technology in embedded development, recommending tools like Percepio Tracealyzer and SEGGER SystemView to visualize system behavior without the performance overhead of print statements. He explains how tracing helps debug timing issues, optimize low-power states, and validate real-time operating system (RTOS) performance, particularly in complex applications like satellite flight software. Beningo also shares insights from his books on reusable firmware and MicroPython, advocating for the use of Hardware Abstraction Layers (HALs) to accelerate development while understanding their limitations, and highlights the Embedded Online Conference as a way to access industry expertise efficiently.

Mentioned

Companies
Percepio, SEGGER, Adafruit, Renesas, IEEE
Chips
STM32, ESP32
Tools
Tracealyzer, J-Trace, SystemView
Also
ThreadX, FreeRTOS, Zephyr, MicroPython, CircuitPython, Synergy Software Quality Handbook, SWEBOK

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 · 46m

    Linux Profiling with Mohammed Billoo

    Mohammed Billoo, founder of Mab Labs Embedded Solutions and author of the Embedded Linux Essentials Handbook, explains how to profile embedded Linux systems by distinguishing between VM size and VM RSS to identify memory leaks in scientific instruments. He details how to use tools like HTOP, perf, and LTTNG to prove that the CPU is rarely the bottleneck, often pointing to crypto engines, DMA, or file system I/O as the real constraints. Billoo advocates for baking kernel configurations like kallsyms and function tracers into builds from day one to enable rapid debugging without premature optimization. The conversation also covers using LLMs to interpret complex tool outputs like Valgrind and perf, while emphasizing that physical measurements remain the ultimate arbiter of system performance.

  • 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 Amp Hour · 1h 44m

    Pedantic or Andrantic

    Chris Gammell, a developer advocate at Hologram and founder of Contextual Electronics, joins Elecia and Chris White of Embedded.fm to discuss hardware prototyping, learning strategies, and industry tools. The conversation covers the challenges of cellular IoT connectivity, the utility of the HackRF software-defined radio, and debugging techniques using the J-Trace Pro. They also explore pedagogical concepts like the Dreyfus model for learning programming and hardware, emphasizing the importance of iteration and mental health in engineering careers.

  • The Pragmatic Embedded Podcast · 33m

    Technical Debt in Embedded Systems Development

    Jeff Gable and Luca engineer discuss technical debt in embedded systems, defining it as trading present velocity for future maintainability. They identify specific forms of debt, including poor hardware abstraction, untracked hardware revisions, and the lack of automated testing. The hosts argue that while prototyping may justify debt, safety-critical products require rigorous refactoring and visible tracking of these issues to avoid slowing down development teams.

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.