Firmware Architecture & System Software
Structure, startup, drivers, bootloaders and power. How professional firmware is organised: architectures and state machines, the boot sequence with HAL and BSP layers, device drivers, bootloaders and firmware updates, and low-power design.
- Firmware Architecture: Super Loop, State Machines & Events — How you structure firmware decides whether it stays maintainable and meets its deadlines. Learn the super loop, foreground/background (interrupt + main) design, cooperative time-triggered schedulers, finite state machines (table and switch based), event-driven/active-object architectures, layering and modularity, and how to choose between bare-metal and an RTOS — with worst-case response analysis.
- Boot Sequence, Startup Code, HAL & BSP — What happens between power-on and main()? Learn the Cortex-M reset sequence, the vector table, Reset_Handler and C runtime initialisation, SystemInit and clock setup, CMSIS, vendor HALs and low-level drivers, the Board Support Package (BSP) layer, and how to structure portable code so the same application runs on different boards.
- Device Drivers — Drivers hide hardware details behind clean interfaces. Learn driver layers and APIs, initialisation and error handling, interrupt-driven I/O with ring buffers, sizing buffers from data rates, blocking vs non-blocking designs, RTOS-aware drivers, Linux kernel/device-tree basics, and testing drivers.
- Bootloaders & Firmware Updates — A bootloader lets ECU software be updated in the field. Learn memory layout (bootloader, application, calibration), the reprogramming sequence over UDS, CRC/signature verification, secure boot, A/B partitions for OTA, flash timing and fail-safe design.
- Low-Power Design & Energy Budgets — Battery-powered devices live or die by their energy budget. Learn MCU power modes (run, sleep, stop, standby, shutdown), dynamic vs static power, race-to-sleep, wake-up sources and latency, peripheral and GPIO leakage, duty-cycling radios and sensors, measuring µA currents, and building a complete battery-life budget.