Using C++14 in an Embedded “SuperLoop” Firmware
summary
Claims that C++14 is practical in a tightly constrained superloop firmware with concrete limits: deployed Prime Air firmware runs on a hexacopter with six motors, flies >60 mph and carries <5 lb, so the build actually ships and flies. Target hardware is Cortex‑M (no MMU), toolchain is cross‑compiler (arm‑none‑eabi g++ style) with newlib‑nano, heavy warnings and static analyzers. Runtime choices are specific: no heap, no exceptions, placement new only, use ring buffers + DMA, ISR minimization, watchdogs — it works in production.
AI-written summary · about
chapters (36)
- 0:00Introduction
- 0:33Primary Drone
- 3:21Outline
- 5:55Firmware
- 7:17Types of Firmware
- 9:03Hardware Environment
- 16:22Limitations
- 18:40Missing Features
- 20:49Eliminate Runtime Errors
- 24:07Undefined Behavior
- 25:27Whats left
- 26:34What is this system like
- 29:07System assumptions
- 31:04ISR
- 32:08Memory
- 34:59Boot Sequence
- 37:07Build Environment
- 37:43Data Structures
- 39:58State Machines
- 40:43Bulk Transfer
- 43:10Language Restrictions
- 43:23Loop Bounds
- 44:29pointers
- 44:57exceptions
- 48:27Heap withdrawal
- 50:02Recommendations
- 52:09Basic Types
- 53:13References
- 53:32Peripherals
- 54:37C name spacing
- 55:14Keep names simple
- 55:50Use previrtual functions
- 56:51Keep it simple
- 58:17Instantiation
- 59:08Inline
- 59:29Const
related talks
01h 38mEmbedded & C++
57mDeeply Embedded C++
06mUsing PMR in C++ Embedded Systems for Functional Safety
55mC++ on small micro controllers
23mFunctional Programming in C++ (Run time vs Compile time types)
01h 00mBuilding Effective Embedded Systems in C++: Architectural Best Practices
49mCost of C++ Abstractions in C++ Embedded Systems
55mHow bad is meta-programming still today?
