Memory Analysis Skill
Overview
This skill provides comprehensive memory analysis capabilities for embedded systems, including linker map analysis, stack usage estimation, heap fragmentation detection, and memory optimization strategies.
Capabilities
Linker Map Analysis
- Map file parsing and interpretation
- Symbol size analysis
- Section size breakdown
- Memory region utilization
- Unused symbol detection
- Cross-reference analysis
Stack Analysis
- Static stack usage analysis
- Call graph generation
- Worst-case stack depth calculation
- Per-function stack usage
- Interrupt stack analysis
- Stack overflow detection strategies
Heap Analysis
- Heap fragmentation analysis
- Allocation pattern analysis
- Memory pool sizing
- Leak detection strategies
- Peak usage tracking
- Block size distribution
Memory Optimization
- Section placement optimization
- Flash vs RAM trade-offs
- Const correctness enforcement
- String pooling strategies
- Data structure packing
- Alignment optimization
Memory Protection
- MPU region configuration
- Stack guard implementation
- Buffer overflow protection
- Memory isolation strategies
Tooling Integration
- GCC map file analysis
- ARM Compiler map files
- Puncover integration
- Static analysis integration
- objdump/readelf usage
Target Processes
memory-architecture-planning.js- Memory layout designcode-size-optimization.js- Size reduction strategiesexecution-speed-profiling.js- Memory access optimizationbootloader-implementation.js- Multi-image memory layout
Dependencies
- Linker map file parsers
- Stack analysis tools (Puncover, GCC stack analysis)
- objdump, readelf, nm utilities
Usage Context
This skill is invoked when tasks require:
- Memory usage optimization
- Stack size determination
- Heap configuration design
- Memory leak investigation
- Code size reduction
Analysis Outputs
Map File Summary
Section Size Used Free Usage
.text 128 KB 98.5 KB 29.5 KB 76.9%
.rodata 32 KB 24.2 KB 7.8 KB 75.6%
.data 8 KB 2.1 KB 5.9 KB 26.2%
.bss 16 KB 12.4 KB 3.6 KB 77.5%
Stack Analysis
Function Stack Depth Total
main 64 1 64
process_data 128 2 192
parse_message 256 3 448
handle_packet 96 4 544
Configuration
memory_analysis:
map_file: build/firmware.map
stack_analysis: enabled
heap_tracking: enabled
warning_threshold: 85 # percent
tools:
- puncover
- gcc-stack-analyzer