.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中;
RW-data、ZI-data:位于RAM中;
注意:RW-data已初始化的数据会存储在Flash中,上电会从FLASH搬移至RAM中。
二、代码段对应
● 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
分类:
keil工程下的各种文件分析
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通