正常
Embedded Development
What modern C++ can and cannot do in resource-constrained embedded systems—from zero-overhead abstractions and memory management to peripheral programming, interrupt concurrency, and finally STM32 practice and RTOS.
STM32F1 Hands-on Series
This is a complete roadmap for writing STM32 code in modern C++ from scratch. It follows the sequence "Environment → LED → Button → UART", refactoring each peripheral from C all the way to C++23:
- Development Environment Setup — Toolchain, project structure, CMake, WSL2 USB passthrough, GDB debugging.
- LED Blinking: Evolution from C to C++ — From HAL registers to templates and
constexpr. - Button Input: Debouncing, State Machines, and Type Safety — From polling to interrupts and state machines.
- UART Serial Communication — From protocols to interrupt-driven,
std::expectederror handling.
Embedded Special Topics
These are special topic articles migrated from an older tutorial, covering zero-overhead abstractions, memory management, register access, and interrupt safety. They serve as supplementary reading for the hands-on series:
Modern C++ for Embedded—Zero-Overhead Abstraction→Resource and Real-Time Constraints in Embedded Systems→The Cost of Dynamic Memory: Fragmentation and Uncertainty→Embedded C++ Tutorial—Static Storage and Stack Allocation Strategies→Embedded C++ Tutorial: Object Pool Pattern→Compile-Time Polymorphism vs Runtime Polymorphism→Embedded C++ Tutorial: Placement New→Embedded C++ Tutorial: Slab / Arena Implementation and Comparison→Embedded C++ Tutorial—ETL→Writing Interrupt-Safe Code→Circular Buffer→Intrusive Container Design→Type-Safe Register Access→Table of Contents→