Skip to content
michael.caisse.io michael.caisse.io
c++ embedded library senders

Keynote: Employing Senders and Receivers to Tame Concurrency in Embedded Systems

Asynchronous event handling is the bread and butter of small embedded systems; however, the lack of robust libraries in the bare-metal arena often result in a concurrency nightmare.

M

Michael Caisse

60 minutes

Event: cppnow

Abstract

Small embedded devices might only have one processing core but hardware accelerators, peripherals, and external events abound. Asynchronous event handling is the bread and butter of these systems; however, the lack of robust libraries in the bare-metal arena often result in a concurrency nightmare.

After a short sender/receiver primer, we will explore some patterns and idioms that have proven useful when employing the design in a high availability, complex embedded device. We will use Intel’s open source bare-metal senders and receivers library (https://github.com/intel/cpp-baremeta…) as well as other open source packages to build elegant, declarative solutions around interrupt handling, schedulers, devices drivers, and communication protocols. The patterns will be demonstrated on an STM32 target controlling a simple robot.

While this talk is focused on bare-metal implementations and embedded concerns, the shape of a solution is applicable to many domains and environments. Join me as we wrangle concurrency using the sender and receiver design.

Play the video
Slides