🚀 KeilMemTool
ARM Keil .map 内存分析工具
解析 .map 文件并可视化 Flash / RAM 使用率
适用于 STM32、GD32、NXP、Nordic 等 Cortex-M MCU
✨ 功能特性
- 🔍 自动解析 Keil
.map文件 - 📊 Flash / RAM 使用率统计
- 🧠 支持多 RAM Region
- 🎨 Unicode 进度条显示
- ⚡ 命令行快速输出
- 🧩 支持 ARMCC / ARMCLANG
- 🛠 支持自定义内存区域
🖥 运行效果
┌────────────────────────────────────────────────────────────┐
│ Keil Memory Report │
└────────────────────────────────────────────────────────────┘
FLASH
[ ▉▉▉▉______________________________________________ ] 8.5%
86 KB / 1024 KB
RAM
[ ▉▉▉▉______________________________________________ ] 8.4%
5 KB / 64 KB
RAM1
[ ▉▉▉▉▉▉▉▉▉▉▉▉▉______________________________ ] 56.2%
72 KB / 128 KB
📦 支持的内存区域
| 类型 | 说明 |
|---|---|
| FLASH | 程序存储区 |
| RAM | 主 SRAM |
| RAM1 | 扩展 SRAM |
| IRAM1 | 内部 SRAM |
| IRAM2 | 第二 SRAM |
| DTCM | Data TCM |
| ITCM | Instruction TCM |
| CCMRAM | Core Coupled RAM |
| AXI SRAM | STM32H7 AXI 内存 |
| SDRAM | 外扩 SDRAM |
📁 工程结构
KeilMemTool
│
├── include/
│ ├── MapParser.hpp
│ └── MemoryRegion.hpp
│
├── src/
│ ├── MapParser.cpp
│ ├── MemoryRegion.cpp
│ └── main.cpp
│
└── README.md
⚙️ 编译环境
| 环境 | 版本 |
|---|---|
| OS | Windows 10 / 11 |
| 编译器 | MSVC / GCC |
| 标准 | C++17 |
| IDE | Visual Studio / VSCode |
🚀 快速开始
1️⃣ 开启 Map 文件输出
在 Keil 中:
Options for Target
└── Linker
└── ☑ Map File
编译后生成:
project.map
2️⃣ 编译工具
GCC
g++ src/*.cpp -Iinclude -std=c++17 -o KeilMemTool.exe
MSVC
cl /EHsc src/*.cpp /I include
3️⃣ 运行
KeilMemTool.exe project.map
📊 输出说明
🔥 FLASH
程序代码、常量、RO 数据。
FLASH 8.5% (86 KB / 1024 KB)
🧠 RAM
全局变量、堆、栈。
RAM 8.4% (5 KB / 64 KB)
⚡ RAM1
额外 SRAM 区域。
RAM1 56.2% (72 KB / 128 KB)
常用于:
- STM32H7 AXI SRAM
- STM32F4 CCMRAM
- DTCM
- 外扩 SDRAM
🧩 支持 MCU
STM32 ・ GD32 ・ HC32 ・ NXP ・ Nordic ・ TI ・ Renesas ・ 芯驰
📈 后续计划
- GUI 图形界面
- 历史内存变化趋势
- HTML 报告导出
- VSCode 插件
- Keil 插件
- CI 自动统计
- JSON 导出
- 内存占用 Top 排名
❤️ 致谢
感谢使用 KeilMemTool。
如果这个项目对你有帮助,欢迎 ⭐ Star。
📄 License
MIT License
Made with ❤️ for Embedded Developers