C++ in the World of Embedded Systems
summary
Claims that modern C++ is practical for constrained and real‑time embedded systems and shows how to make that true: compile‑time MMIO metaprogramming for device registers with static bounds checks, testable drivers via template injection and mocks, and an event loop using fixed_function/fixed_string plus custom or pool allocators. Discusses toolchain realities (GCC/C++20+ support, hosted vs freestanding stdlib gaps), and compares third‑party options (Boost ETL Esco, static_vector/intrusive containers) to avoid heap and exceptions while preserving determinism.
AI-written summary · about
chapters (34)
- 0:00Introduction
- 1:25What is Embedded Systems
- 2:12Types of Embedded Systems
- 4:30Embedded Development Process
- 5:35Conclusion
- 6:22Terminology
- 8:19Trigger Hardware
- 9:28Preemptive Scheduling
- 11:45Requirements
- 12:46Limitations
- 13:35Compiler Support
- 14:26Standard Library
- 16:54Platform Limits
- 18:30Industrial Standards
- 20:12Examples
- 21:08Device Registers
- 22:23Issues
- 23:09Address Evaluation
- 25:50Compile Time
- 26:09Optimization
- 30:02Application
- 31:25Summary
- 32:24Demo
- 33:21Reusable Loop
- 34:13Alternative Solutions
- 35:29Standard Libraries
- 41:29stdvector
- 42:36booststaticvector
- 43:45priorityqueue
- 46:13Intrusive Containers
- 48:38Event Tag
- 49:48Polymorphous
- 51:40Error Handling
- 53:06Intermediate Summary
related talks
57mDeeply Embedded C++
01h 00mBuilding Effective Embedded Systems in C++: Architectural Best Practices
01h 38mEmbedded & C++
58mLeveraging C++20/23 Features for Low Level Interactions
01h 02mDeveloping Kernel Drivers with Modern C++
55mC++ on small micro controllers
01h 03mUnlocking the value of C++20
01h 05mThe real problem of C++
