你现在已经在 VS Code 中找到并安装了 Map View Embedded 插件。从截图看,你的 .map 文件也已经打开了。
接下来只需要通过插件打开可视化界面,就能查看 HX3506F 的 FLASH、PSRAM、SRAM 内存占用情况。
安装Map View Embedded

一、打开 MAP 可视化界面
QuickJS JavaScript Engine on a Real-Time Operating System (Apache NuttX RTOS)
方法一:右键打开(推荐)
- 在 VS Code 左侧资源管理器中找到
hx350x_sdk.map。 - 右键该文件。
- 选择
Open Map View(如果菜单中提供)。 - 等待插件解析并显示内存可视化界面。
你的 MAP 文件路径:
C:\Users\Administrator\Documents\Work\HX35XX_Project\Project_Cold\app\bin\Debug\hx350x_sdk.map
方法二:使用命令面板
- 保持
hx350x_sdk.map文件处于打开状态。 - 按
Ctrl + Shift + P。 - 输入
Map View。 - 选择类似
Open Map View或Show Map View for Current File的命令。
你截图顶部已经出现了 Show Map View for Current File,可以直接点击它。
二、查看 FLASH 和 RAM 占用
打开成功后,重点查看以下内存分类:
| 分类 | 含义 | 是否占用 FLASH | 是否占用 RAM |
|---|---|---|---|
| Code | 程序指令 | 是 | 通常否 |
| RO-Data | 只读常量 | 通常是 | 通常否 |
| RW-Data | 已初始化全局/静态变量 | 通常占用初始化镜像 | 是 |
| ZI-Data | 未初始化全局/静态变量、BSS | 否 | 是 |
在可视化界面中,通常可以点击较大的色块,逐级查看:
库文件 → .o目标文件 → Section → Symbol
这样就能定位到底是哪个模块、对象文件或变量占用了大量空间。
三、针对 HX3506F 项目的注意事项
你的工程可能涉及多种内存:
- FLASH:存储固件代码、常量和资源。
- PSRAM:存储较大的运行时缓冲区,例如 LVGL 图像缓存。
- SRAM:内部运行时数据、堆栈等。
- LRAM、URAM:如果芯片将它们划分为不同内存区域,也需要分别统计。
重要: 插件能否正确区分这些区域,取决于 .map 文件格式、链接脚本及插件解析能力。不能直接把所有 RAM 类型的数据都当成内部 SRAM。
你前面 Python 工具输出的内存占用数据大约为:
FLASH 92.77%
PSRAM 11.38%
SRAM 72.9%
URAM 62.x%
LRAM 33.1%
这说明最应该优先分析的是 FLASH 92.77%,因为剩余空间已经比较紧张。
四、如果打开后没有可视化怎么办?
你的截图中 .map 内容包含:
..\lib\libhx350x.a(hal_lcdui.o)
obj\Debug\hal\src\hal_lcdui.o
这类内容看起来属于链接器生成的库成员和符号映射。
如果插件打开后出现空白、解析失败,或者内存占用明显不正确,可能是因为 HX3506F 的工具链生成的 .map 格式与插件支持的 GCC、Keil 等格式不同。
此时可以使用你前面编写的 Python 内存统计脚本作为对照,确认插件统计结果是否准确。
你现在先做一步:
点击截图顶部的 Show Map View for Current File。
然后把打开后的界面截图发给我。我可以继续指导你:
- 如何查看 FLASH 中占用最大的前 20 个模块。
- 如何找出占用内存最多的
.o文件和静态变量。 - 如何分析 LVGL、图片资源、字体、驱动程序分别占用多少空间。
- 如何根据真实的 HX3506F 内存布局配置 FLASH、PSRAM、SRAM 的可视化统计。