厦门浪子 发表于 2017-9-28 21:43:27

keil生成map文件不明白的地方,求解

在map文件中:
image component sizes


      Code (inc. data)   RO Data    RW Data    ZI Data      Debug   Object Name

         0          0          0          0          0       1184   ac97c.o
       532         48         12          0          0       1910   adc.o

里面“Debug”是什么意思,还占空间?

xmshao 发表于 2017-9-28 23:52:59

调试信息的字节数,不占ROM空间。

厦门浪子 发表于 2017-9-29 18:08:17

xmshao 发表于 2017-9-28 23:52
调试信息的字节数,不占ROM空间。

占用RAM空间?那不是会内存溢出?

Angel_YY 发表于 2018-2-13 11:39:49

这个信息不占用ROM,也不占用RAM,这个信息不是要下载到MCU中的,是给PC机上的调试器试用的。在用调试器调试MCU中的代码时,调试器中显示的一些字符串以及表格信息,都包含在这里面,以便提供给调试人员直观的代码信息,包括断点信息,行信息等等。

toofree 发表于 2018-2-13 23:59:56

本帖最后由 toofree 于 2018-2-14 00:01 编辑

Image component sizes:存储组成大小,其实主要就是对模块进行汇总存储大小信息。
编译工程后,在编译窗口一般会看到类似如下一段信息:
Program Size: Code=908 RO-data=320 RW-data=0 ZI-data=1024

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中。

关系如下:
ROSize = Code + RO Data
RWSize = RW Data + ZI Data
ROM Size = Code + RO Data + RW Data

Debug占用多少不需要关心,只要关注RAM和Flash就可以了
页: [1]
查看完整版本: keil生成map文件不明白的地方,求解