打印

你知道你的程序占了多大内存么?

[复制链接]
1482|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
在开发的过程中,如果遇到内存即将不足的时候,都会很关注这个代码到底占用了多少空间,经常有一个误区,hex 文件就是程序的大小(事实上并不是的)
现在用keil 来查看,计算这个代码占用的空间
在编译完成之后,总可以看到以下的信息提示:
下面解释下他们的含义:
Program Size: Code=x RO-data=x RW-data=x ZI-data=x 的含义
Code(代码): 程序所占用的FLASH大小,存储在FLASH.
RO-data(只读的数据): Read-only-data,程序定义的常量,如const型,存储在FLASH中。
RW-data(有初始值要求的、可读可写的数据):
Read-write-data,已经被初始化的变量,存储在FLASH中。初始化时RW-data从flash拷贝到SRAM。
ZI-data:Zero-Init-data,未被初始化的可读写变量,存储在SRAM中。ZI-data不会被算做代码里因为不会被初始化。
ROM(Flash) size = Code + RO-data + RW-data;
RAM size = RW-data + ZI-data
简单的说就是在烧写的时候是FLASH中的被占用的空间为:Code+RO Data+RW Data
程序运行的时候,芯片内部RAM使用的空间为: RW Data + ZI Data。

以上论述只代表个人观点,仅供参考学习。如有雷同,纯属巧合,可联系后台删除。万分感谢您的关注与支持!

使用特权

评论回复

相关帖子

沙发
lvface123654| | 2019-4-5 13:16 | 只看该作者
受教了

使用特权

评论回复
板凳
mmm8410269| | 2019-4-8 17:25 | 只看该作者
感谢分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:GigaDevice
简介:兆易创新科技集团股份有限公司 (股票代码603986) 是全球领先的Fabless芯片供应商,公司成立于2005年4月,总部设于中国北京

17

主题

55

帖子

3

粉丝