ROM,RAM和FLASH 的区别以及Code=x RO-data=x RW-data=x ZI-data=对应关系与含义

ROM,RAM和FLASH 的区别以及Code=x RO-data=x RW-data=x ZI-data=对应关系与含义

ROM,RAM和FLASH 属性

ROM:ReadOnlyMemory只读存储器,只是应用时作为只读,前期先写入常量数据等
读写速度最慢,掉电不丢失,因价格便宜,作为小规模的常量数据载体

RAM:RandomAccessMemory随机存储器,
读写速度最快,掉电易丢失,因运行速率最快,作为运行内存载体

FLASH :闪存
读写速度居中,掉电不丢失,升级版ROM,作为大规模的读写数据载体

Code=x RO-data=x RW-data=x ZI-data=x 的含义

在这里插入图片描述
Code(代码): 程序大小,还包括了inline data(内联数据),存储在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不会被算做代码里因为不会被初始化。

个人猜想
code是代码大小,前期写入到flash中,后期只要读取加载到ram中运行

RO-data是常量只读数据,一直写入到rom中

RW-data是已初始化读写数据,前期写入到flash中,后期读取加载到ram中

ZI-data是未初始化读写数据,根据code中的定义(即内联数据)预留ram分区中的大小来给变量数据读写,上电默认初始化为0

总结
所以RO SIZE=CODE(程序每次运行读取加载到ram)+RO DATA

RW Size=RW-data(动态读写,已初始化)+ZI-data(动态读写,未初始化)

ROM Size=Code + RO Data + RW Data(与猜想不同,估计:前期都是用rom存储器,只是后来用flash取代了,所以rom=flash size(升级版rom)+RO-data)

疑点:虽然ROM Size=Code + RO Data + RW Data,但RW Data只用了336的大小,实际RW Data总大小为908

参考链接

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值