# map_view **Repository Path**: xgsofts/map_view ## Basic Information - **Project Name**: map_view - **Description**: 用于解析 keil 项目的map 文件,分析变量,函数,flash 及 ram 空间 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-23 - **Last Updated**: 2026-02-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # map_view 用于解析 Keil 项目的 `.map` 文件,分析变量、函数以及 Flash/RAM 空间占用,并以图表与表格方式展示结果。支持 Keil ARM Compiler 6(armlink)输出的 MAP 文件,兼容常见 GCC/Clang MAP 结构的基础解析。 ## 项目概括 - 可视化:饼图展示文件级 Flash/RAM 占用,柱状图展示 Section 分布 - 明细列表:函数 Top N、变量 Top N - 自动刷新:选择目录后,监听最新 `.map` 文件变化并自动刷新(Electron 模式) - 轻量依赖:前端原生 HTML/CSS/JS + ECharts;桌面端使用 Electron ## 安装与启动 - 安装依赖(建议使用国内镜像): ``` ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ npm install --registry=https://registry.npmmirror.com ``` - 启动 Electron 应用: ``` npm start ``` - 构建(可选): ``` npm run pack # 生成目录包 npm run build # 生成安装包(windows: portable) ``` ## 使用说明 ### Electron 应用 - 打开应用后点击“选择 MAP 目录”,选择包含 `.map` 的输出目录(例如工程的 build 输出目录或项目根目录) - 应用会自动解析该目录中最新修改的 `.map` 并渲染图表与表格 - 点击“手动刷新”可立即重新解析并更新数据 ### 浏览器预览(备用) - 在无法安装 Electron 时,可通过本地静态服务预览 ``` python3 -m http.server 8000 # 打开 http://localhost:8000/src/renderer/index.html ``` - 页面会从项目根目录加载 `qbms.map` 并进行解析与展示 ### 命令行解析 - 在终端输出解析结果(JSON): ``` node cli/parse-map.js # 示例 node cli/parse-map.js qbms.map > result.json ``` - 当传入目录路径时,工具会自动解析目录中最新修改的 `.map` 文件 - 输出包含:`flashTotal`、`ramTotal`、`sections`、`files`、`functions`、`variables` ## 解析规则概述 - Keil ARM(armlink):解析 “Global Symbols” 区块的 `Symbol Name / Value / Type / Size / Object(Section)`,并结合地址判断 Flash/RAM,按文件与 Section 聚合 - GCC/Clang:识别 `.text/.data/.bss/.rodata` 等常见段落与符号行,进行统计 ## 目录结构(关键文件) - 主进程入口:electron-main.js - 预加载桥接:preload.js - 渲染页面:src/renderer/index.html、src/renderer/renderer.js、src/renderer/style.css - 解析逻辑:src/parser/mapParser.js - 命令行工具:cli/parse-map.js - 示例 MAP:qbms.map ## 贡献 - Fork 仓库并新建特性分支(如 `feat_xxx`) - 提交代码并发起 Pull Request