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

Modern C++ in Embedded Systems - The Saga Continues

Continuing to explore how modern C++ features and idioms can be applied effectively in resource-constrained embedded environments.

M

Michael Caisse

60 minutes

Event: cppcon

Abstract

For nearly 35 years I have been working with small processors and there has always been deep divides between practitioners of languages. When writing assembly we ridiculed those using C and when I spent years microcoding we scoffed at everyone. However, nearly all groups continue to wag their heads at the shameful C++ programmers attempting to twist their tools toward the small.

Recent language developments have made C++ the obvious choice for many embedded projects; nevertheless, the toxic environment extends past reddit roasts into poor vendor support of tools and nearly obstructionist chip manufacturers.

At C++Now I introduced a bare-metal project started in 2018 for a Ciere client as a case study. The goal was to extract useful lessons ranging from tooling acrobatics to idioms, language features, and libraries for producing high quality embedded results. Like an Athenian youth navigating Minos’ labyrinth we were thwarted at every bend and could merely report on the first half of the quest. In this session we will complete the saga with a discussion of the recent language features that enable goals of size, speed, and expressiveness, the libraries employed, and debugging techniques to stave off the minotaur.

While the examples will be based on a concrete project, the extracted lessons-learned should be applicable to many embedded projects (bare-metal and small-OS). Attendees will walk away with motivations to use C++ in embedded projects, hints and tips to making tools work, and a sampling of language features and idioms that improve the quality of a final product.

Play the video