name: memory-analysis description: 嵌入式内存分析、优化与泄漏检测 category: 资源优化 allowed-tools:
- Bash
- Read
- Write
- Edit
- Glob
- Grep
内存分析技能
概述
本技能为嵌入式系统提供全面的内存分析能力,包括链接器映射文件分析、栈使用量估算、堆碎片检测以及内存优化策略。
能力范围
链接器映射文件分析
- 映射文件解析与解读
- 符号大小分析
- 段大小细分
- 内存区域利用率
- 未使用符号检测
- 交叉引用分析
栈分析
- 静态栈使用量分析
- 调用图生成
- 最坏情况栈深度计算
- 单函数栈使用量
- 中断栈分析
- 栈溢出检测策略
堆分析
- 堆碎片分析
- 分配模式分析
- 内存池大小调整
- 泄漏检测策略
- 峰值使用量跟踪
- 块大小分布
内存优化
- 段放置优化
- Flash与RAM权衡
- 常量正确性强制
- 字符串池策略
- 数据结构打包
- 对齐优化
内存保护
- MPU区域配置
- 栈保护实现
- 缓冲区溢出保护
- 内存隔离策略
工具集成
- GCC映射文件分析
- ARM编译器映射文件
- Puncover集成
- 静态分析集成
- objdump/readelf使用
目标流程
memory-architecture-planning.js- 内存布局设计code-size-optimization.js- 大小缩减策略execution-speed-profiling.js- 内存访问优化bootloader-implementation.js- 多镜像内存布局
依赖项
- 链接器映射文件解析器
- 栈分析工具(Puncover、GCC栈分析)
- objdump、readelf、nm实用程序
使用场景
本技能在以下任务需求时被调用:
- 内存使用优化
- 栈大小确定
- 堆配置设计
- 内存泄漏调查
- 代码大小缩减
分析输出
映射文件摘要
段 大小 已用 空闲 使用率
.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%
栈分析
函数 栈大小 深度 总计
main 64 1 64
process_data 128 2 192
parse_message 256 3 448
handle_packet 96 4 544
配置
memory_analysis:
map_file: build/firmware.map
stack_analysis: enabled
heap_tracking: enabled
warning_threshold: 85 # 百分比
tools:
- puncover
- gcc-stack-analyzer