MAP 文件管理

MAP 文件管理功能帮助您添加和管理链接器生成的 MAP 文件,在无法获得 ELF 文件(或 ELF 无调试信息)时,仍能建立变量名→地址映射,参与统一的变量观测与地址解析链路。

支持的 MAP 格式

系统按文件内容特征自动识别以下三种主流格式,无需手动指定:

格式 工具链
GCC GNU ld / arm-none-eabi-gcc(开源工具链)
ARMCC ARM armlink / armclang / Keil MDK
IAR IAR ilink(IAR Embedded Workbench)

功能入口

  • 添加 MAP 文件:资源管理器「MAP文件」根节点 → 右键 →「添加MAP文件...」
  • 加载:右键 MAP 文件节点 →「加载」
  • 关闭:右键已加载的 MAP 文件节点 →「关闭」
  • 移除:右键 MAP 文件节点 →「移除」

使用步骤

1. 添加 MAP 文件

  1. 在资源管理器中右键「MAP文件」根节点
  2. 选择「添加MAP文件...」
  3. 在文件选择对话框中选择目标 MAP 文件(.map)
  4. MAP 文件节点添加到「MAP文件」节点下,初始为未加载状态(灰色图标)

2. 加载 MAP 文件

  1. 右键 MAP 文件节点,选择「加载」
  2. 系统自动识别文件格式(GCC / ARMCC / IAR)
  3. 解析符号表,提取数据符号(全局变量名→地址映射)
  4. 变量注册到全局变量管理器,节点下显示变量子节点
  5. 节点状态变为已加载

3. 使用 MAP 变量

  • MAP 变量可像 ELF 变量一样添加到工程,参与 Watch / Scope / DAQ 等观测功能
  • 工程重载后,已保存的 MAP 变量自动恢复,不会重复注册

4. 关闭与移除

  • 关闭:清空变量子节点,节点恢复未加载状态
  • 移除:删除 MAP 文件节点本身(不删除物理文件)

MAP 与 ELF 的对比

特性 ELF 文件 MAP 文件
变量地址 ✅ 准确 ✅ 准确
变量大小 / 所在段 ✅ 包含 ✅ 包含
类型信息 ✅ 完整 ❌ 不包含
结构体 / 数组展开 ✅ 支持 ❌ 不支持
指针路径解析 ✅ 支持 ❌ 不支持

选型建议:优先使用 ELF 文件;仅当只有 map 产物(或 ELF 无调试信息)时使用 MAP 文件。

注意事项

  • 仅全局变量:MAP 文件仅提供全局变量的名称、地址、大小信息,无类型信息
  • 不支持结构体展开:MAP 变量不支持结构体 / 数组展开与指针路径解析,如需此类能力请使用 ELF 文件
  • 类型需手动指定:MAP 变量如需使用 IQ 格式等类型相关功能,需先为变量手动指定数据类型(参见 IQ格式)
  • 格式限制:仅支持 GCC / ARMCC / IAR 三种格式,其他链接器产物不支持
  • 工作区持久化:添加过的 MAP 文件随工作区保存,下次打开自动恢复

相关文档