.map文件分析
一、分析程序大小
----在.map文件的最后有这样一段代码:
点击查看代码
===========================================================================
Total RO Size (Code + RO Data) 434284 ( 424.11kB)
Total RW Size (RW Data + ZI Data) 539728 ( 527.08kB)
Total ROM Size (Code + RO Data + RW Data) 437856 ( 427.59kB)
==============================================================================
其中
Code:指代码的大小;
RO-data:指除了内联数据(inline data)之外的常量数据;
RW-data:指可读写(RW)、已初始化的变量数据;
ZI-data:指未初始化(ZI)的变量数据;
Code、RO-data:位于FLASH中;
ZI-data:位于RAM中;
RW-data:Flash和RAM各占一份
注意:RW-data已初始化的数据会存储在Flash中,上电会从FLASH搬移至RAM中。
可参考这篇博文
https://blog.csdn.net/qq_38072731/article/details/140172615
二、代码段对应
● Section:描述映像文件的代码或数据块,我们简称程序段
● RO:Read Only 的缩写,包括只读数据(RO data)和代码(RO code)两部分内容,占用 FLASH 空间
● RW:Read Write 的缩写,包含可读写数据(RW data,有初值,且不为 0),占用 FLASH (存储 初 值)和 RAM(读写操作)
● ZI:Zero initialized 的缩写,包含初始化为 0 的数据(ZI data),占用 RAM 空间。
● .text:相当于 RO code
● .constdata:相当于 RO data
● .bss:相当于 ZI data
● .data:相当于 RW data
浙公网安备 33010602011771号