Keil MDK 中的 Code、RO-data、RW-dat、ZI-data 分别代表什么意思

Code:通常是指编译器生成的机器指令,也就是程序的执行代码,这些内容会被存储到ROM区。

RO-data:它指程序中用到的只读数据,因而程序不能被修改的内容,这些数据被存储在ROM区。 RO-data区典型:
例1、C语言中const关键字定义的变量。
例2、C语言中定义的全局常量。
例3、C语言中定义的字符串。

RW-data:即可读写数据区域,一定是初始化为“非0值”的可读写数据,而且应用程序可以修改其内容,这些数据被存储在RAM
RW-data区典型:
例1、C语言中定义的全局变量,且初始化为“非0值”。
例2、C语言中定义的静态变量。且初始化为“非0值”。

ZI-data:可读写数据区域,一定是未初始化或初始化为“0值”的可读写数据,应用程序同样可以修改其内容,这些数据被存储在RAM
ZI-data区典型:
例1、C语言中定义的数组,只定义了数组的大小,并没有给每个成员赋非0值。

以下数据节选于程序的.map文件结尾。

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

     26260       1882        312           236             36628        656971   Grand Totals
     26260       1882        312           236             36628        656971   ELF Image Totals
     26260       1882        312           236             0                0             ROM Totals

=========================================================================

    Total RO  Size (Code + RO Data)                          26572 (  25.95kB)
    Total RW  Size (RW Data + ZI Data)                      36864 (  36.00kB)
    Total ROM Size (Code + RO Data + RW Data)      26808 (  26.18kB)

=========================================================================

总结: 在拿到一款单片机的时候,一定要明确单片机的ROM大小和RAM大小。
ROM的最小空间一定要大于: Code + RO Data + RW Data的总和;
RAM的最小空间一定要大于: RW Data + ZI Data之和

注意:
ROM就是单片机的FLASH大小
RAM就是单片机的运行内存大小
以STM32G070为例,ROM = 128kB;RAM = 36kB

  • 7
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值