Skip to content

From your first line of C to shipping firmware

A complete, free, self-paced path. Deep C first, then the Cortex-M core, every peripheral, RTOS internals, bootloaders, security, and a capstone product you build end to end.
63lessons
388kwords
36hreading time
Freeno sign-up
Your progress

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.

  • 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.