Skip to content
Development
Skill

/embedded-fault-debug

Use when embedded firmware crashes, traps, faults, resets unexpectedly, jumps to default handlers, corrupts stack, or executes invalid instructions

From plugin
aix-skills
3876 skills

Claude Code

$ npx -y skills add easyzoom/aix-skills --skill embedded-fault-debug --agent claude-code

SKILL.md

embedded-fault-debug.SKILL.md
name: embedded-fault-debug
description: Use when embedded firmware crashes, traps, faults, resets unexpectedly, jumps to default handlers, corrupts stack, or executes invalid instructions

Embedded Fault Debug

Overview

Use this skill to preserve crash evidence and find the first failing instruction. The agent should read architecture-specific fault state before reset, map addresses to symbols, and separate root cause from secondary symptoms.

When To Use

Use this skill when:

  • Firmware hits HardFault, BusFault, UsageFault, trap, illegal instruction, default handler, watchdog reset, assert, or panic.
  • The board resets unexpectedly or hangs after a repeatable action.
  • The user has a register dump, fault log, crash PC, stack dump, watchdog event, or GDB backtrace.

Do not use this skill when the target cannot yet connect or flash; use `mcu-flashing-debug` first.

First Questions

Ask for:

  • Architecture/chip family and toolchain.
  • Exact symptom and whether it is reproducible.
  • Register dump, backtrace, fault/trap registers, assert log, or reset reason.
  • ELF/MAP file that matches the running image.
  • Whether the target has been reset since the fault.

Workflow

1. Preserve state. Do not reset or reflash until fault registers, PC, LR/RA, SP, and stack frame are captured.

1. Confirm image-symbol match. Ensure the ELF/MAP file matches the firmware currently running on target.

1. Identify the faulting address. Map PC, exception return address, `mepc`, stacked PC, or return address to a symbol and source line.

1. Classify the cause. Separate invalid memory access, illegal instruction, stack overflow, alignment, bus/peripheral access, watchdog, assert, and default handler cases.

1. Walk backward to the first bad state. Inspect caller, input pointers, stack bounds, interrupt context, DMA/cache interactions, and recent initialization.

1. Add a focused verification. Use a watchpoint, assertion, guard pattern, stack watermark, or minimal repro to prove the suspected cause.

Architecture Notes

Cortex-M

Read SCB fault registers before reset:

CFSR  = 0xE000ED28
HFSR  = 0xE000ED2C
MMFAR = 0xE000ED34
BFAR  = 0xE000ED38

Decode stacked `r0-r3`, `r12`, `lr`, `pc`, and `xpsr` from MSP or PSP.

RISC-V

Read:

mcause, mepc, mtval, mtvec, mstatus, sp

Check whether `mcause` is interrupt or exception, and map `mepc` to source/disassembly.

8051

Use available evidence:

  • Reset reason register if the derivative provides one.
  • Stack pointer and internal RAM pressure.
  • ISR vector selection and default handler loops.
  • Watchdog configuration.
  • GPIO heartbeat or serial breadcrumbs around suspected code.

Common Root Causes

  • Stack overflow or ISR stack pressure.
  • Null/corrupt function pointer.
  • Wrong vector table, trap vector, or interrupt number.
  • Accessing peripheral before clock/reset release.
  • DMA writing outside buffers.
  • Cache coherency issue on cache-enabled MCUs.
  • Compiler target flags not matching core features.
  • Watchdog not serviced during long init.
  • Bootloader/app offset mismatch.

Verification

Before claiming a fault is understood:

  • State the matched ELF/MAP and running firmware identity if known.
  • Report faulting PC/address and mapped symbol/source.
  • Report architecture-specific fault registers or explain why unavailable.
  • State the suspected root cause and the evidence linking it to the fault.
  • State the next minimal verification step, such as watchpoint, stack watermark, or assertion.

Common Failures

  • Resetting immediately and losing the only useful fault state.
  • Trusting a backtrace when the ELF does not match flashed firmware.
  • Fixing the line where the fault occurred instead of the earlier corruption.
  • Ignoring interrupt context, stack selection, or DMA/cache side effects.
  • Treating watchdog reset as a generic crash without reading reset reason.

Example

User:

程序跑一会儿就进 HardFault。

Agent:

1. Asks for chip, ELF, register dump, CFSR/HFSR, stacked PC, and whether reset happened. 1. Maps stacked PC to source. 1. Checks stack bounds, caller, interrupt context, and invalid memory access evidence. 1. Suggests a focused watchpoint or stack watermark before changing code.

Read more
@easyzoom
Ships withaix-skills

AIX Skills is a public collection of Agent Skills, templates, and references for building repeatable AI workflows.

Stars on GitHub

Momentum

stars in total
38
Star history of easyzoom/aix-skills on GitHub, a chart by star-history.com

Other skills on aix-skills.

8051-mcu-debug

8051-mcu-debug

Use when debugging 8051-compatible microcontrollers, 51 MCU firmware, STC download issues, Keil C51 projects, interrupts, timers,…

@easyzoom@easyzoomInstall Skill
avem-integration

avem-integration

Use when integrating, evaluating, configuring, or debugging Avem embedded C framework modules, event-driven components, drivers,…

@easyzoom@easyzoomInstall Skill
ble-gatt-integration

ble-gatt-integration

Use when integrating, designing, or debugging BLE GATT services, characteristics, descriptors, MTU, notifications, indications,…

@easyzoom@easyzoomInstall Skill
bootloader-debug

bootloader-debug

Use when debugging embedded bootloaders, application jumps, vector table offsets, firmware upgrade flow, OTA state, image…

@easyzoom@easyzoomInstall Skill
canbus-integration

canbus-integration

Use when integrating, porting, configuring, or debugging CAN bus libraries, CANBus-Triple, MCP2515, CAN frames, bit timing,…

@easyzoom@easyzoomInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills11d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc13d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about embedded-fault-debug.

Which coding agents can use embedded-fault-debug?
embedded-fault-debug installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.