文号
946080
阅读
4866
回复
2
收藏
0
本文包含AI生成内容,并经过作者严格考据审查,作者对AI生成内容的品质和可靠性负责。
芯片选型之通过.map文件估算ROM和RAM的大小
2025/08/05
原创
IP:广东

前言:评估工程的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 ]
+1
科创币
zRed洲虹
2025/08/07
资瓷 喵
1年3个月前IP:山西
946088
1楼

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

引用
评论
1年3个月前IP:广东
946092
2楼
引用HSH发表于1楼的内容
您的Keil是哪一种?我只有Keil5和4,谢谢。

Keil5 .map文件使用vscode打开

引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的