ROM 占用空间大小究竟是(Code + RO Data)还是 (Code + RO Data + RW Data)?
KDE 在编译最后生成一个工程名.map文件最后几行如下:
Total RO Size (Code + RO Data) 113312 ( 110.66kB)
Total RW Size (RW Data + ZI Data) 61520 ( 60.08kB)
Total ROM Size (Code + RO Data + RW Data) 113812 ( 111.14kB)
这边代表的是代码生成后 ROM 大小有 111.14kB 大吗?RW Data 不是应该放在 RAM 中的吗?怎么 ROM也会计算这个?另外上面有一行:
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x0001c0c8, Max: 0x00080000, ABSOLUTE, COMPRESSED[0x0001bc94])
Execution Region ER_IROM1 (Base: 0x08000000, Size: 0x0001baa0, Max: 0x00080000, ABSOLUTE)
这边的Size: 0x0001baa0 = 113312 并不是113812哇,这又怎么理解?!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
不好意思最近一直没上论坛,刚看到你的回复,之前整理总结了下:
Code是代码占用的空间;RO-data(Read Only) 是只读常量的大小,如const型;RW-data(Read Write)是初始化了的可读写变量的大小,ZI-data(Zero Initialize)是没有初始化的可读写变量的大小。ZI-data不会被算做代码里因为不会被初始化。Total ROM Size :Code + RO Data + RW Data(ROM Size并不等于Code + RO Data,初始化不为零的 RW Data 数据本身也会占用相同大小的 ROM 和 RAM 存储单元,变量在 RAM 中,而变量的初始值存在 ROM 中) ,Total RW Size:RW Data + ZI Data 。这边在考虑芯片的 ROM 和 RAM 选型时,注意: ROM > Code + RO Data + RW Data , 而 RAM > RW-data+ZI-data,具体我们可以查看 KDE 编译后生成的 .map文件。
http://noparkinghere.site/posts/ ... BC%98%E5%8C%96.html
一周热门 更多>