The first blink is a useful milestone
Give a new board one small, observable job before adding the rest.
Notes from close to the metal
An embedded programming blog about firmware, microcontrollers, and the satisfying moment when the hardware finally does what you meant.
// Start with one bit. #include <stdint.h> int main(void) { uint32_t flags = 0; flags |= (1u << 3); return 0; }
Give a new board one small, observable job before adding the rest.
A small set of operations that makes a whole lot of firmware easier to read.
Turn “it doesn't work” into something you can actually observe.