FW Mem GuardYour build grew. Know by how much. VS Code extension: Windows x64 and macOS 15+ (Apple Silicon / Intel).
Linux x64: separate CLI / CI package targeting glibc 2.28+ (Rocky Linux 8 and Ubuntu 24.04); Node.js 22 or 24. There is no Linux VSIX. See Compare firmware Flash and RAM between builds, right inside VS Code. Check maximum usage and allowed growth against the budgets you choose, with a bundled local engine. Local processing · No telemetry · No FW Mem Guard account · No automatic upload
Watch the 29-second illustrated demo · English guide · Support The visuals illustrate actual bundled demo results; they are not a recording of the VS Code interface. Catch growth before it becomes a surpriseA build can fit in memory and still exceed your growth budget. The bundled demo shows exactly that:
Both total-usage checks pass in this example. Both growth checks fail intentionally, so BUDGET_EXCEEDED / exit 2 is the expected demo result, not an installation error. These are actual results from the bundled engine and example profile. Try it in a minute
The demo uses bundled Map files and a manual profile. It does not validate your own project. This guide covers FW Mem Guard 0.3.7 pre-release for Windows x64 and macOS Apple Silicon / Intel. The bundled engine has a separate component version, 0.2.1-pilot.1. Bring your own completed buildsRun FW Mem Guard: Set Up / Update Project. Select baseline Map + matching ELF, then current Map + matching ELF. Keep the baseline fixed and distinct from the current files. The picker shows each region's address range, capacity and coverage of required run and load addresses in both builds. A unique compatible region is suggested; you confirm the Flash and RAM choices explicitly. An unavailable choice explains what does not fit. Set the four aggregate limits: maximum total usage and allowed growth, for Flash and for RAM. Multi-bank projects also require total and growth limits for every selected bank. A growth limit of 0 forbids positive growth. Review and save a project such as After the next completed build, use Compare Builds or Repeat Last Comparison. Use Edit Budgets to update limits in the same project. Use Set Up / Update Project to change paths or intentionally replace the baseline. A report you can review before sharingExport Report for Sharing opens a reduced JSON snapshot in an unsaved editor tab. No report file is created automatically. Review it, then save a The export includes totals, effective limits, outcome, versions, context and capture time. Paths, filenames, symbols, section names, addresses and input hashes are excluded. Usage and budgets can still be sensitive. Your chosen service and recipient receive what you share; follow your organization's policy. Demo reports are labeled examples. Analyze exports say budgets were not checked. A new project/profile operation clears the exportable result, including failure or cancellation. After a reload, run a fresh operation. Opened and saved reports remain static snapshots. Know what the result means
With an active project, Analyze Map identifies the current Map in Output after validating both Map/ELF pairs. Use Compare Builds for a budget verdict. Check the fit
Firmware OS, compiler name and board family alone do not establish compatibility. Overlays, overlapping allocated sections, dynamic linking, TLS, relocatable ELF objects, compressed/unsupported allocated sections and missing ELF tables are excluded. Named aliases alone do not establish multiple active banks. A separate Linux x64 CLI supports CI (glibc 2.28+; Rocky Linux 8 and Ubuntu 24.04; Node.js 22 or 24) using the same project validation. This is not a Linux VS Code extension. Multiple banks use project schema 2 with aggregate and per-bank budgets. Full reports include conservative GNU object/archive contributions and explicit unattributed bytes. Remote-SSH, Dev Containers, Codespaces/browser execution, IAR/Keil, symbol attribution and runtime peak heap/stack measurement remain unsupported. The packaged Limits: 64 MiB per ELF, 32 MiB per Map, 1 MiB per project JSON. Full ELF files are read. Structural agreement does not prove shared build provenance or an atomic snapshot: choose matching files from completed builds. WSL and recoveryInstall Microsoft's WSL extension and open a WSL-connected VS Code window. Use the remote picker and save the project beside its inputs in the same WSL filesystem. FW Mem Guard runs on the Windows UI host; no Linux engine or Python installation is needed in WSL. Input reading has a default 30-second timeout and Cancel, excluding selection, engine execution and saving. A late response cannot produce a result or save a project. Retries wait for any previous read of the same URI to settle. Reconnect and retry; if the pending-read message persists, save your work, run Developer: Reload Window, reconnect and Open Project. Setting: Commands
Help and privacyRun FW Mem Guard: Open User Guide and choose English or Support. All open locally inside VS Code, even offline. Customer ZIPs include standalone HTML guides too. Support: Copy the address into your email service. Review diagnostic text before sending it; firmware/source files are not requested automatically. If execution is blocked, give the diagnostic to IT and follow your organization's security policy. If Results screenSuccessful operations open a results panel with baseline/current/delta in bytes and KiB, aggregate/per-bank checks, conservative object/archive contributions, residual bytes, and section changes sorted from growth to shrinkage. Guided results show linker capacity separately from budget; manual-profile/demo capacity is marked unavailable. Analyze has no budget verdict. Compare again, Edit budgets (guided projects), Export report and Open output use existing commands. A new operation clears the previous result immediately. Failure, cancellation or a settings-only operation cannot retain an old PASS or export. The export remains the reviewed reduced JSON format, excluding paths and section names. Version 0.3.6 added attribution percentages and a versioned CLI JSON contract. Version 0.3.7 also updates the engine parser to recognize GNU output sections without a leading dot. The original Zephyr 3.7.0 qemu_cortex_m3 example verifies Flash 8778 -> 8778 and RAM 4312 -> 4568, including the controlled +256-byte object contribution. Other Zephyr configurations and nRF Connect SDK need separate acceptance. |

