| name | ironcore |
| description | State machines, ISRs, RTOS, hardware abstraction, and timing analysis — domain expertise for electrical and embedded systems engineers |
| type | domain |
Embedded Systems Patterns
Overview
IRONCORE — Iron is hard, precise, and unforgiving — exactly like embedded systems.
When invoked: assesses hardware context (bare-metal / RTOS / HAL / ISR), loads the relevant pattern file, and enforces embedded discipline — deterministic timing, ISR safety, lock-free queues, type-safe register access.
Core principle: Embedded systems have zero margin for error — timing violations, race conditions, and memory corruption cause real-world failures. Design for determinism and verifiability.
Announce at start: "Running IRONCORE for embedded systems patterns."
Entry Point — First 5 Minutes
HARDWARE CONTEXT ASSESSMENT:
"What platform and RTOS?"
A) Bare-metal (no RTOS) — Cortex-M, AVR, PIC
B) FreeRTOS / Zephyr / ThreadX
C) Linux embedded (Yocto, Buildroot)
D) FPGA / HDL
E) Mixed (Linux + MCU co-processor)
"What is failing or being designed?"
1) State machine / control flow
2) ISR / interrupt handling
3) RTOS task design / scheduling
4) Hardware register / peripheral driver
5) Timing / real-time requirements
6) Communication protocol (SPI, I2C, UART, CAN)
7) Memory / stack corruption
Context → Section mapping:
- Any + 1 → State Machine Design (patterns/state-machines.md)
- Any + 2 → ISR Safety Rules (patterns/isr-safety.md)
- B + 3 → RTOS Task Decomposition (patterns/rtos-tasks.md)
- Any + 4 → Hardware Register Abstraction (patterns/hardware-abstraction.md)
- Any + 5 → Deadline Analysis (patterns/rtos-tasks.md — WCRT section)
- Any + 7 → Stack Size Estimation + run
hunter
Critical first question for ALL embedded work:
"Is this hard real-time (missed deadline = failure) or soft real-time (missed deadline = degraded performance)?"
State Machine Design
Load patterns: patterns/state-machines.md
Required elements:
- HSM structure — entry/exit actions, parent states for hierarchy
- Transition table — explicit (from, event, to, action) rows — no implicit transitions
- Guard conditions — typed guards, not raw conditionals inside handlers
- Tests — transition coverage, no unreachable states
Rule: All events must be handled in all states (even if the handler is explicit ignore).
ISR Safety Rules
Load patterns: patterns/isr-safety.md
Non-negotiable rules:
- Minimal ISR work — read hardware register, push to buffer, set flag. Nothing else.
- volatile for all ISR-shared variables — compiler cannot cache these
- Memory barriers —
__DMB() before setting flags, before reading data
- Lock-free queues for ISR→main — SPSC queue, no mutex (mutexes block ISRs)
- No malloc/free in ISRs — ever
RTOS Task Decomposition
Load patterns: patterns/rtos-tasks.md
Steps:
- Identify tasks by rate: control loop, communication, UI, logging
- Assign priorities by rate monotonic: shorter period = higher priority
- Verify schedulability: Σ(WCET/period) ≤ n(2^(1/n)−1) (for n=3: ≤ 0.78)
- Measure stack usage with watermark pattern, add 25% margin
- Choose IPC — queue for data, semaphore for events, mutex for shared resources
Priority inversion: Always use xSemaphoreCreateMutex() (has priority inheritance), never binary semaphore for resource protection.
Hardware Register Abstraction
Load patterns: patterns/hardware-abstraction.md
Required:
- Type-safe register structs — volatile fields, bitfield macros (REG_SET/GET/MASK)
- MMIO safety — NULL check, alignment check,
__DMB() after writes
- Endianness macros — HTONS/HTONL/NTOHS/NTOHL for all network/protocol data
- Timing checklist — clock freq, setup/hold times, interrupt latency, watchdog timeout
Red Flags
Never:
- Do blocking operations in ISR
- Share ISR↔main data without volatile
- Use malloc/free in ISRs or time-critical code
- Ignore stack overflow potential
- Skip deadline analysis for hard real-time tasks
Always:
- Use memory barriers for ISR-main communication
- Verify RMS utilization bound before deploying
- Test state machines for unreachable states
- Validate MMIO access bounds
- Document timing requirements and verify them
Integration with Superpowers
| Skill | Integration |
|---|
forge | Write hardware-in-loop tests first |
hunter | Debug timing violations, race conditions |
sentinel | Verify timing budgets before claiming success |
chronicle | Store hardware-specific patterns |
Final Checklist