Skip to content
0:00 / 0:00

#c++14#embedded#superloop

Using C++14 in an Embedded “SuperLoop” Firmware - Erik Rainey - CppCon 2022

CppCon

189K subscribers • 136 videos on Hallway • Conference channel

YouTube
  • Recommended by 2 people: 2 in engineering communities.
  • A classic. People kept recommending it from 2023 to 2026.
  • Presented by Erik Rainey, Senior Software Engineer
  • Linked in the descriptionCppCon/CppCon2022

Intermediate. Assumes working knowledge.

18K views3 years ago2 recommendations

Systems programmingProgramming languagesC++Embedded systemsOperating systems

Erik Rainey explains how to use C++14 language and library features in a bare-metal embedded superloop environment.

cppcon.org/ --- Using C++14 in an Embedded “SuperLoop” Firmware - Erik Rainey - CppCon 2022 github.com/CppCon/CppCon2022 This presentation covers what the execution environment of an embedded "superloop" firmware is in order to describe later why certain C++14 language and library features are used and others are not. This environment lacks many basic features and capabilities that traditional C++ programmers may think are common place but is able to be programmed in C++14 (and later) with a specific design paradigms and guidelines. Programmers with deeply embedded C experience will be familiar with some of the limitations of the environment but may find the C++ solutions quite refreshing! The talk will conclude with some comments on C++17 / C++20 features which will be quite valuable to embedded environments of all types. --- Erik Rainey Erik is a Senior Software Engineer at Amazon working in the Prime Air on low-level/embedded firmware written in C++ for drones. He has got more than 20 years of professional experience making 21st century technologies on embedded devices which can blink LEDs. He's also been a contributor to Khronos's OpenVX 1.0 specification. --- Work at Hudson River Trading (HRT): tinyurl.com/safxfctf --- Videos Filmed & Edited by Bash Films: BashFilms.com YouTube Channel Managed by Digital Medium Ltd events.digital-medium.co.uk #cppcon #programming #firmware

Why it's here

2 people recommend this

What people say. Recommended as a practical guide with best practices for developing bare-metal embedded firmware using modern C++.

u/svadumin r/embedded • Recommends

On “Looking for well written, modern C++ (17/20) example projects for microcontrollers”

I would recommend this talk on cppcon: Using C++14 (and higher) in Embedded Firmware A lot of practical points, best practices and things to keep in mind during developing with C++ for bare metal. Also, you can take a look on ETL. I haven't used it by myself yet, but I plan to. Additionally, considering what OP and people here said about C++ and embedded, something from me: 1. Embedded developing process with C++ is pretty much the same as with C, because C++ has everything that C does (Is C a subset of C++?). In C++, you don't pay for what you don't use; 2. Complexity of C++ vs C: yes, C++ standard is bigger, but nobody can force to use everything that exists. Everything depends on…

u/comfortcubein r/embedded • Recommends

On “FreeRTOS or Bare Metal for Quad copter”

There is a great CppCon talk that goes into detail of pros and cons of an RTOS vs superloop programming for flight controller firmware: CppCon 2022: Using C++14 in an Embedded "SuperLoop" Firmware - Eric Rainey

u/NotBooleanin r/embedded • Mentions

On “Repo's with professional embedded C/C++ code (education)”

Unfortunately no C++ examples but for C, Zephyr RTOS (docs, code). Is a good example of driver abstraction. For applications the Nordic Connect SDK which uses Zephyr as its RTOS has a few application examples (docs, code) that I think are pretty good. A book I would recommend is Test Driven Development for Embedded C by Grenning, James W. It's for C but a lot of the concepts are the same, just replace the C stuff with C++. Writing testable code normally leads to good abstraction and portability. I would recommend Cppcon videos, any that feel relevant but there are some starting embedded development like this and this. If you like DM I can share a repo I'm working on that is very much…