.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

posted @ 2023-05-04 21:05  Charles_hui  阅读(537)  评论(0)    收藏  举报