Quick Navigation
Why EM Map View
Embedded .map files are dense, valuable, and easy to ignore until Flash or RAM is already in trouble. EM Map View turns Keil MDK/armlink output into a VS Code-native analysis workspace:
- See Flash and RAM usage at a glance.
- Find the modules and objects taking the most space.
- Browse symbols without leaving the editor.
- Reverse lookup single or batch addresses from logs, crash dumps, or debugger output.
- Keep official, computed, derived, and inferred values clearly labeled.
Highlights
| Area |
What You Get |
| Memory layout |
Canvas-based Flash/RAM usage charts with Code, RO, RW, ZI, and free-space breakdowns |
| Module analysis |
Top N module/object contribution chart for quick size triage |
| Symbol browser |
Searchable and filterable TreeView for modules, regions, and symbols |
| Address lookup |
Single and batch reverse lookup with exact, range, and approximate matches |
| Provenance badges |
Official, Computed, Derived, Inferred, and N/A labels keep data trust visible |
| Threshold warnings |
Configurable warning and critical memory usage indicators |
| VS Code workflow |
Explorer TreeView, command palette entries, context menu support, and non-blocking file I/O |
Quick Start
- Open a Keil MDK/armlink
.map file in VS Code.
- EM Map View activates automatically.
- Check the
MAP Analysis TreeView in the Explorer sidebar.
- Use the webview panel to inspect memory layout, module sizes, and address lookup results.
- Click a module in the chart to highlight its matching TreeView node.
Tip: You can also run EM Map View: Open MAP File from the command palette or from a .map file context menu.
Commands
| Command |
Description |
EM Map View: Open MAP File |
Open a file picker and analyze a .map file |
EM Map View: Analyze Current File |
Analyze the active .map editor |
EM Map View: Lookup Address |
Reverse lookup an address from the current analysis |
Configuration
| Setting |
Default |
Description |
emMapView.warningThreshold |
80 |
Memory usage warning threshold in percent |
emMapView.criticalThreshold |
95 |
Memory usage critical threshold in percent |
emMapView.topModulesCount |
20 |
Number of modules shown in the top-module chart |
Data Source Labels
EM Map View keeps parsed values useful without pretending all values are equally authoritative.
| Label |
Meaning |
Official |
Parsed directly from Keil MAP sections, such as Grand Totals or regions |
Computed |
Calculated from official values, such as Flash Used or RAM Used |
Derived |
Aggregated from related MAP rows, such as Memory Map object contributions |
Inferred |
Estimated from available usage data because capacity or region details were missing |
N/A |
Not available from the current MAP file |
When Image Component Sizes is missing, module bars may still be shown as Derived from Memory Map of the image object rows. This keeps useful analysis visible while avoiding confusion with official Keil component-size data.
| Format |
Status |
| Keil MDK/armlink |
Full support |
| GCC/ARM LD |
Detected and reported as unsupported |
| IAR |
Detected and reported as unsupported |
Note: The .map extension is also used by JavaScript source maps. If you open a JS source map file, the extension will detect it as an unrecognized format and show a warning. Only Keil MDK/armlink .map files are fully supported.
Development
# Install extension dependencies
npm install
# Install webview dependencies
cd webview && npm install && cd ..
# Build extension and webview
npm run build
# Run tests
npm test
# Type check
npm run lint
# Package VSIX
npm run package
Launch the extension development host from VS Code with F5.
Roadmap
- GCC/ARM LD parser support
- IAR parser support
- More export and reporting options for firmware size review
License
MIT
| |