bakesheep/emberprobe-mcu-flash-debug/mcu-elf-analyze

Claude Code and agent skill by bakesheep/emberprobe-mcu-flash-debug

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Statically analyze the configured firmware ELF through EmberProbe - Flash and RAM usage per section plus the largest functions and variables. No probe or hardware needed. Use when the user asks how much Flash/RAM the firmware uses, what occupies the most space, why the binary grew, or wants a memory footprint report.

Install

npx vskill@latest install bakesheep/emberprobe-mcu-flash-debug/mcu-elf-analyze

SKILL.md

MCU ELF Analyze

Use scripts/analyze-elf.js from this skill directory. This is a pure static analysis of the workspace's configured ELF — it never touches the probe or the target, so it works with no hardware attached and does not conflict with sampling or downloading.

Before you run

  • MCP first: if this session provides EmberProbe MCP tools (such as elf_analyze), use them; the scripts here are the fallback. The authorization and hardware rules on this page apply to both.
  • Applies to: static firmware footprint analysis — Flash and RAM per section plus the largest functions and variables.
  • Requires: the EmberProbe Agent Bridge (to read the selected ELF path). No probe or hardware is needed — “no hardware” here does not mean “no Bridge”; a Bridge failure is an extension/activation problem, not a wiring problem.
  • Preconditions: an ELF is selected (else ELF_NOT_CONFIGURED) and is readable, not mid-rebuild (else ELF_READ_FAILED).
  • Side effects: none — read-only, no hardware access.
  • Success evidence: the flash/ram/topSymbols JSON. Static RAM only (heap/stack are runtime properties). A footprint report says nothing about whether the firmware actually runs.

For failure handling, retry limits, cross-skill routing, and result scoping, read ../_emberprobe/agent-workflow.md.

bash
node <skill-dir>/scripts/analyze-elf.js --workspace <workspace>
node <skill-dir>/scripts/analyze-elf.js --workspace <workspace> --top 30
node <skill-dir>/scripts/analyze-elf.js --workspace <workspace> --map build/firmware.map
node <skill-dir>/scripts/analyze-elf.js --workspace <workspace> --linker-script STM32H750.ld

--top limits the largest-symbol ranking (default 20, max 100). --map and --linker-script select the layout source explicitly; without them the extension uses the ELF-adjacent .map or the unique workspace linker script.

Interpreting the result

The JSON on stdout contains:

  • flash: total bytes and per-section list of everything programmed to Flash (.isr_vector, .text, .rodata, plus the load copy of .data), addresses are LMAs.
  • ram: total bytes and per-section list of runtime RAM usage (.data, .bss, etc.), addresses are VMAs. .data legitimately appears in both lists.
  • topSymbols: largest functions and objects with kind, section, size, address.
  • regions: every region declared by the selected .map or .ld, including zero-use

regions such as H750's RAM_D2, RAM_D3, and ITCMRAM. Each entry has origin, capacity, used, sectionBytes, percent, and section details. used is the high-water span from the region origin and includes linker reservations and gaps; sectionBytes is the de-duplicated section-range total.

  • source and diagnostics: the layout file used and actionable messages for an

ambiguous source, stale map, unmapped section, or unsupported linker expression.

Report totals in human units (KiB) and highlight the top consumers. To compute a Flash utilization percentage, combine flash.total with the chip's flashSize from the mcu-chip-info skill — do not guess the chip capacity from the ELF.

Note: the report includes linker-reserved heap/stack sections when they are present in the ELF. It does not measure runtime heap/stack peaks or free RAM.

Failure diagnostics

On failure, parse the JSON diagnostic on stderr. ELF_NOT_CONFIGURED means no ELF is selected (use mcu-config), ELF_READ_FAILED means the file is missing or being rebuilt.

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/bakesheep/emberprobe-mcu-flash-debug/mcu-elf-analyze/badge)](https://verified-skill.com/skills/bakesheep/emberprobe-mcu-flash-debug/mcu-elf-analyze)

Something wrong with this skill or its page? Tell us.