Fearless concurrency in your microcontroller
summary
Shows concrete code and results: generator-based cooperative multitasking yields and busy-waits, then replaces polling with hardware interrupts to stop burning cycles and save energy. Presents the RTFM framework that emits zero-cost locks, computes ceilings with the immediate ceiling priority protocol, maps tasks to Cortex-M interrupts, and proves deadlock freedom while minimizing locking. Demonstrates an app! macro limitation: whole-program analysis forces single-file task/resource declarations and limits crate composition.
AI-written summary · about
chapters (33)
- 0:00Introduction
- 0:53Agenda
- 1:26Microcontrollers
- 3:04Bare Metal System
- 4:35General Purpose Input Output
- 5:14Timers
- 5:49Status Register
- 6:40Serial
- 7:26Concurrency
- 7:50Serial interface
- 8:19Infinite generators
- 8:59Linking task
- 9:28Simultaneous execution
- 10:40Cooperative multitasking
- 12:16Interrupts
- 13:29Ecole Forum
- 14:11Memory sharing
- 14:57Data race
- 16:52Memory safe
- 18:36Memory safe example
- 19:45Improving memory safety
- 20:37Ceiling priority protocol
- 21:38Memory Safety
- 22:06RTFM
- 22:32concurrency model
- 23:57app macro
- 25:20main function
- 26:02signatures
- 26:20resource
- 27:18Atomics
- 27:34Ring Buffer
- 28:05RealTime
- 28:44Concurrent Reactive Objects
related talks
52mBest Practices for Concurrency
57m[filtered] Asynchronous C++ Programming
05mFast Parallel Programming using Modern C++
01h 04mThe C++20 Synchronization Library
01h 01mC++ Sender Patterns to Wrangle C++ Concurrency in Embedded Devices
48mReal time 101
01h 03mUnlocking the value of C++20
01h 00mModern C++: C++ Patterns to Make Embedded Programming More Productive
