秋名山最速传说
除了该搞的啥都搞 邮箱:li_yi_liang@qq.com Github:https://github.com/qqzlqqzlqqzl
文号946080
5032
2
收藏

芯片选型之通过.map文件估算ROM和RAM的大小

前言:评估工程的ROM和RAM占用是选型MCU的重要因素。本文将介绍在选型MCU时如何评估最终的项目工程大致占用的ROM和RAM大小。


正文:

1、在Keil编译时,工程编译完成会有如下的提示。

image.png

计算公式:

Flash 区域大小 = Code 大小 + RO-data 大小

RAM 区域大小 = RW-data 大小 + ZI-data 大小

可得:

Flash 区域大小 = 9096 + 572 = 9668 字节(9.47 KB)

RAM 区域大小 = 64 + 2184 = 2248 字节(2.2 KB)

但这个数据只是整个工程文件的Flash和RAM占用,我们希望具体到各个库编译的资源占用情况,.map文件就可以告诉我们这些信息。


2、打开任意一个Keil工程的 工程名称.map 文件,包含如下的内容。

image.png

所需的各个库的ROM和RAM占用情况在Image component sizes这部分

image.png

具体的含义问了下GPT

image.png


3、总体来说,可以通过查看 .map 文件中各 .o 文件对应的 ROM 和 RAM 资源占用,来估算应当选用多大容量的 ROM 和 RAM。例如,在使用 MPU6050 芯片的官方库进行开发时,由于不清楚该库对 ROM 和 RAM 的占用情况,难以选择恰到好处(指尽可能压缩芯片的容量以节省成本)的芯片型号。估算 MPU6050 库的资源占用只需编译官方例程或移植好的工程,并查看生成的 .map 文件,即可了解所需的 ROM 和 RAM 资源,具体操作步骤此处不再赘述。

注意,如果使用RTOS还应考虑堆栈大小(如果资源受限不建议使用RTOS)。另外HAL库(资源受限考虑标准库或是LL库)编译也需要ROM和RAM,这部分的资源占用也应一并考虑。


结束语:喵


参考文章:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

[修改于 1年3个月前 - 2025/08/06 11:10:22]

2
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{ notice.noticeContent }}
~~空空如也
HSH
1年3个月前 IP:山西
946088

您的Keil是哪一种?我只有Keil5和4,谢谢。

全桥整流作者
1年3个月前 IP:广东
946092
引用HSH发表于0楼的内容
您的Keil是哪一种?我只有Keil5和4,谢谢。

Keil5 .map文件使用vscode打开

主体信息
主体类型:个人
所属领域:无
认证方式:身份证号
IP归属地:广东
 内容统计
2026年09月
1 篇
2026年06月
1 篇
2026年02月
1 篇
2025年
7 篇
2024年
20 篇
ID: {{ user.uid }}
投诉或举报
加载中...
{{ tip }}
请选择违规类型:
{{ reason.type }}

空空如也

加载中...
回复
设为精选取消精选
评学术分
鼓励
编辑
查看历史
通过审核
移动文章
加入收藏取消收藏
退修或删除
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{ format('YYYY/MM/DD HH:mm:ss', toc) }}
回复
加入收藏取消收藏