OTA updates that cannot brick a device: commit ordering, a bootloader decision table, every power interruption point, and how many canaries you actually need.
Tag: STM32H7
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.
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.
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.
How to Design a Production-Grade Firmware Architecture
A production firmware architecture built end to end on STM32H7: task table, memory map, ownership matrix, dependency rules and error propagation.