Embedded C/C++ for Microcontrollers
Curated: level up your embedded C/C++ from a top free university course, then prove you can reason about pointers, memory, hardware registers, and bit manipulation. The intermediate firmware module of the Embedded track.
Introduction to Embedded Systems Software and Development Environments
University of Colorado Boulder (Coursera) · online course · ~13h · Free · English
Why we picked it: By far the most popular free university course on this material — 141,000+ learners and a 93% positive rating on Coursera. It is a genuine intermediate step: it refreshes C, then puts pointers, memory layout, hardware-register bit manipulation, and firmware/build structure to work on real ARM Cortex-M microcontrollers with the GNU toolchain. Audit it for free — pick 'Audit the course' and skip the paid certificate.
- C refresher: data types, fixed-width types (stdint.h), pointers
- the memory model & memory map (flash vs RAM, stack, static/global)
- reading and writing memory-mapped hardware registers through pointers
- bit manipulation of registers — setting, clearing, and testing bits
- the GNU/GCC toolchain: compiling, linking, and objdump/map files
- build systems with make
- Git version control for firmware
- structuring and debugging firmware on an ARM Cortex-M target
Study guide
Open the study guide →1 study section · what to focus on + prove it in Forge, then take the check.