A twelve-part series on designing, building and maintaining production firmware architectures, written for firmware engineers, technical leads and engineering managers responsible for long-life embedded products. It is not a beginner tutorial: it assumes you know C, Cortex-M and an RTOS, and it focuses on the decisions that are expensive to reverse.
Every article from part 02 onward works through the same example product, the KIC-400 industrial controller on an STM32H743, so the task table, memory map, recovery matrix and test plan can be checked against each other.
Phase 1: Decide
| # | Article | Level | Reading time | What you can do after it |
|---|---|---|---|---|
| 01 | Embedded Firmware Architecture Fundamentals | Intermediate | 20 min | Choose an architecture per subsystem from measurable thresholds |
| 02 | Production-Grade Firmware Architecture | Advanced | 29 min | Produce a task table, memory map, RAM budget and ownership matrix |
| 03 | Firmware Architecture Anti-Patterns | Intermediate | 23 min | Detect architectural decay with greps, runtime stats and scope traces |
Phase 2: Build
| # | Article | Level | Reading time | What you can do after it |
|---|---|---|---|---|
| 04 | HAL vs BSP vs Drivers vs Middleware | Intermediate | 17 min | Decide which layer a piece of code belongs in |
| 05 | RTOS Architecture | Advanced | 18 min | Derive priorities, size queues and stacks, and check schedulability |
| 06 | State Machine Architecture | Intermediate | 17 min | Turn blocking code into run-to-completion state machines and test them exhaustively |
Phase 3: Fail safely
| # | Article | Level | Reading time | What you can do after it |
|---|---|---|---|---|
| 07 | Error Handling and Recovery | Advanced | 14 min | Classify faults, budget recovery time and preserve crash evidence |
| 08 | Firmware Security Architecture | Advanced | 21 min | Design secure boot, key hierarchy, anti-rollback and debug lock |
Phase 4: Verify
| # | Article | Level | Reading time | What you can do after it |
|---|---|---|---|---|
| 09 | Designing Firmware for Testability | Intermediate | 17 min | Set up dual-target builds, fault injection and a minimal HIL rig |
Phase 5: Operate
| # | Article | Level | Reading time | What you can do after it |
|---|---|---|---|---|
| 10 | Designing Firmware for 10-Year Products | Intermediate | 18 min | Make builds reproducible, archive releases and plan for obsolescence |
Coming next: 11. Field Diagnostics and Firmware Observability and 12. OTA and Safe Firmware Updates.
Two reading paths
Related articles on this site
- Event-driven firmware architecture on Cortex-M
- Hierarchical state machines in C
- Secure boot and OTA on Arm Cortex-M with TrustZone and MCUboot
- FreeRTOS queues on STM32
- Firmware architecture interview questions
Stay updated
New installments are announced through the site newsletter; subscribe from any article page. For an independent review of your own firmware architecture against the practices in this series, use the contact page.