From your first line of C to shipping firmware
Start Here
What firmware is, the toolchain, and how a program actually runs on a microcontroller.
3 lessons · starts with "What Firmware Is (and Is Not)"The C Language
Every C concept a firmware engineer needs, taught with the machine in view: types, pointers, memory, the preprocessor, undefined behavior, libc, testing.
18 lessons · starts with "Hello, C — The Compilation Pipeline"C Meets the Metal
Assembly, memory-mapped registers, startup code, linker scripts, the Cortex-M core, and every core peripheral: GPIO, interrupts, timers, UART, SPI, I2C, DMA, ADC, flash.
16 lessons · starts with "Reading What the Compiler Wrote"Firmware Systems
Driver architecture, state machines, RTOS internals and synchronization, atomics, memory protection, bootloaders, security, debugging, power, performance, build systems.
12 lessons · starts with "Driver Design and Hardware Abstraction"Professional Firmware
Testing, communication stacks, filesystems, design patterns, architecture at scale, safety standards, embedded Linux, production and the field.
9 lessons · starts with "Testing Embedded Software"Capstone Project
Build a complete sensor node: bootloader, drivers, scheduler, storage, firmware update, low power, tests, release.
5 lessons · starts with "Capstone I — Requirements, Architecture, and Memory Map"Reference
Quick references for C, Cortex-M, the toolchain, a glossary, and curated resources.
5 pages · starts with "C Quick Reference"How this course works
Section titled “How this course works”It is linear on purpose. Part 1 teaches C the way firmware uses it, with the memory and the compiler always in view. Part 2 puts that C on an Arm Cortex-M4 with no vendor code between you and the registers. Part 3 builds the systems layer: drivers, state machines, an RTOS you write yourself, concurrency, bootloaders, security, debugging, power. Part 4 is what professionals do around the code. The capstone assembles all of it into one product.
One board, one truth. Every worked example targets the STM32F407 on the STM32F4 Discovery board, and every example also runs in the Renode simulator, so you can do the whole course without buying hardware. Register addresses, bit positions and toolchain flags are consistent from the first lesson to the last.
Every lesson ends the same way. Exercises that make you type and break things, a short quiz that checks you understood the mechanism rather than the vocabulary, and the handful of facts you should still remember a year from now. Tick “Mark this lesson complete” and your progress is kept in this browser.
Who this is for
Section titled “Who this is for”- You know some programming and want to become a firmware engineer.
- You write Arduino or vendor-HAL code and want to understand what is underneath.
- You are a software engineer moving to embedded and need the C and hardware depth fast.
- You are preparing for firmware interviews and want the questions answered properly.
Begin with What firmware is (and is not) in Start Here, or, if you already have a toolchain and know what a microcontroller is, go straight to Hello, C.