OTA updates that cannot brick a device: commit ordering, a bootloader decision table, every power interruption point, and how many canaries you actually need.
Category: Embedded Firmware Architecture
A twelve-part series on designing, building and maintaining production embedded firmware architectures. Start with the series guide for the reading order.
Field Diagnostics and Firmware Observability: Designing Firmware That Can Explain What Went Wrong
Firmware observability with real budgets: flash endurance arithmetic that caps logging, symbolicating a crash address, and fleet queries that find the cause.
Designing Firmware for a 10-Year Product Lifecycle: Maintainability, Obsolescence and Long-Term Support
Firmware for a ten-year product lifecycle: reproducible builds you can verify, release archives that outlive vendor links, and config migration both ways.
Designing Firmware for Testability: Unit Testing, Mocks, HIL and Fault Injection
Firmware testability as architecture: the dual-target build, what host tests genuinely cannot prove, fault injection without ifdefs, and a minimal HIL rig.
Firmware Security Architecture: Secure Boot, Firmware Integrity and Key Management
Firmware security architecture for embedded systems: what secure boot verifies and costs, root of trust, key rotation over ten years, and debug lock.
Firmware Error Handling and Recovery Architecture: Designing Embedded Systems That Know How to Fail
Designing the firmware fault path: error vs fault, recovery worst-case timing, I2C bus recovery, supervised watchdogs and evidence that survives a reset.
State Machine Architecture in Embedded Systems: Designing Deterministic Event-Driven Firmware
Designing embedded state machines that hold up in production: run-to-completion, timeout transitions, four implementations costed, and exhaustive FSM testing.
RTOS Architecture: How to Design Tasks, Queues, Events, Timers and Synchronisation
Deriving an RTOS task table with rate-monotonic analysis, plus the three places the analysis breaks on real hardware — cache variance, sporadic load, blocking.
HAL vs BSP vs Driver vs Middleware: Where Should Firmware Code Actually Belong?
Where firmware code actually belongs: the reason-to-change test, peripheral vs device drivers, and eight boundary cases that get argued in every code review.
15 Firmware Architecture Anti-Patterns That Make Embedded Systems Unmaintainable
Fifteen firmware architecture anti-patterns, each with a measurable tell you can run today: a grep, a runtime stat or a scope trace, before the fix gets costly.