Raspberry Pi Pico with C++OS: Coroutines and std::execution in Embedded Systems
summary
Build uses an RP2040 with nearly 300 KB RAM and two Cortex‑M0+ cores: core 0 runs I/O and an exit (preemptive) executor, core 1 runs a single‑context decoder. C++OS implements parts of the C++ standard concurrency API on bare metal including mutex and condition_variable, partial atomics behind a single spinlock, event‑based lock‑free queues and a preview std::execution style executor model. Opus decoding pipeline (UART→Opus queue→PCM queue→I2S DMA) runs on the two cores and produces audio (rough but functional); Wi‑Fi modem integration fails due to poor docs. Coroutines and a coroutine event loop are prototyped but not yet finished.
AI-written summary · about
chapters (7)
- 0:00Introduction & Concept
- 27:01Demo & Setup
- 34:25Hardware & Synchronization
- 52:01Queue Implementation
- 56:50Multicore & Atomics
- 1:07:18Final Speaker Demo
- 1:12:37Future Work & Conclusion
related talks
43mUsing Both Cores of Raspberry Pi Pico with C++OS
30mPicoRuby as a Multi-VM Operating System
34mMicroPython on the RP2040
39mA Slice of Zephyr Pi!
31mA Beginner's Complete Guide to Microcontroller Programming w..
29mShield Your Devices: The Strength of Open-Source Software and Hardware
23m"Six Clock Cycle per Pixel - Graphics on the Neotron Pico"
01h 03m“Lessons Learned From An Embedded RTPS in Modern C++"
