# KeilMemTool
**Repository Path**: liqingds/KeilMemTool
## Basic Information
- **Project Name**: KeilMemTool
- **Description**: KeilMemTool 是一个开源的 ARM Keil .map 文件内存分析工具,专为嵌入式开发者设计,能快速解析 Keil μVision 生成的 .map 文件并可视化显示 Flash 和 RAM 的使用情况。
- **Primary Language**: C++
- **License**: AGPL-3.0
- **Default Branch**: master
- **Homepage**: https://gitee.com/liqingds/KeilMemTool
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2026-05-16
- **Last Updated**: 2026-05-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 🚀 KeilMemTool
---
# ✨ 功能特性
* 🔍 自动解析 Keil `.map` 文件
* 📊 Flash / RAM 使用率统计
* 🧠 支持多 RAM Region
* 🎨 Unicode 进度条显示
* ⚡ 命令行快速输出
* 🧩 支持 ARMCC / ARMCLANG
* 🛠 支持自定义内存区域
---
# 🖥 运行效果
```txt id="z8j1rx"
┌────────────────────────────────────────────────────────────┐
│ Keil Memory Report │
└────────────────────────────────────────────────────────────┘
FLASH
[ ▉▉▉▉______________________________________________ ] 8.5%
86 KB / 1024 KB
RAM
[ ▉▉▉▉______________________________________________ ] 8.4%
5 KB / 64 KB
RAM1
[ ▉▉▉▉▉▉▉▉▉▉▉▉▉______________________________ ] 56.2%
72 KB / 128 KB
```
**keil运行效果**
E:\STM32F407_Creat\ARMageddon407\Projects\MDK-ARM\output\atk_f407.map
========== MEMORY USAGE ==========
FLASH
FLASH [ ▇▇▇▇▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂ ] 8.5% (86 KB / 1024 KB)
RAM
RAM [ ▇▇▇▇▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂ ] 8.4% (5 KB / 64 KB)
RAM1
RAM1 [ ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂ ] 56.2% (72 KB / 128 KB)
CSV Export:
---
# 📦 支持的内存区域
| 类型 | 说明 |
| -------- | ---------------- |
| 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 |
---
# 📁 工程结构
```txt id="s9icj5"
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 中:
```txt id="4bvh5e"
Options for Target
└── Linker
└── ☑ Map File
```
编译后生成:
```txt id="l7h5mi"
project.map
```
---
## 2️⃣ 编译工具
### GCC
```bash id="7aj7lx"
g++ src/*.cpp -Iinclude -std=c++17 -o KeilMemTool.exe
```
### MSVC
```bash id="94f5pg"
cl /EHsc src/*.cpp /I include
```
---
## 3️⃣ 运行
```bash id="8tlt0m"
KeilMemTool.exe project.map
```
---
# 📊 输出说明
---
## 🔥 FLASH
程序代码、常量、RO 数据。
```txt id="4o5dn0"
FLASH 8.5% (86 KB / 1024 KB)
```
---
## 🧠 RAM
全局变量、堆、栈。
```txt id="1t1h2y"
RAM 8.4% (5 KB / 64 KB)
```
---
## ⚡ RAM1
额外 SRAM 区域。
```txt id="a2f30q"
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