当编译一个ARM程序后,会出现Code=… RO-data= … RW-data=… ZI-data=… 的提示报告,如:
Program Size: Code=976 RO-data=344 RW-data=4 ZI-data=612
那么这些数据的含义究竟是什么呢?
CODE:代码区占用大小,即程序指令的大小;
RO:只读变量占用大小,用于保存常量和查询表的大小;
RW:读写变量占用大小,是已初始化为非0的变量的大小;
ZI:全零变量占用大小,是初始化为0的变量,或者未初始化的变量(编译器自动将这些变量清0)
实际使用的ROM和RAM大小是:
ROM = CODE + RO + RW
RAM = RW + ZI
这里可能会有一个疑问,就是RW为什么也会占用ROM空间?这是因为数据不会凭空产生,对于有明确初始值的变量,需要事先存储该变量的初始值,在程序启动的最开始阶段,这些变量被初始化并移至RAM区。
>> 本文章版权归作者所有,如需转载请联系作者授权许可。
>> 原文来自: 云飞机器人实验室
>> 原文地址: ARM | 编译器CODE、RO、RW、ZI的含义
>> 关于我们: 关于云飞实验室
>> 支持我们: 帮助我们可持续发展