zoukankan      html  css  js  c++  java
  • Keil中 Program Size: Code RO-data RW-data ZI-data

    一般 MCU 包含的存储空间有:片内 Flash 与片内 RAM,RAM 相当于内存,Flash 相当于硬盘。

    现在我们就一个STM32的工程为例子

    linking...
    Program Size: Code=11720 RO-data=1268 RW-data=108 ZI-data=1388  
    FromELF: creating hex file...
    "..objectBootLoader.axf" - 0 Error(s), 0 Warning(s).
    Build Time Elapsed:  00:00:05

    上面提到的 Program Size 包含以下几个部分:

    (1)Code:代码段,存放程序的代码部分;

    (2)RO-data:只读数据段,存放程序中定义的常量;

    (3)RW-data:读写数据段,存放初始化为非 0 值的全局变量;

    (4)ZI-data:0 数据段,存放未初始化的全局变量及初始化为 0 的变量;

    编译完工程会生成一个. map 的文件,该文件说明了各个函数占用的尺寸和地址,在文件的最后几行也说明了上面几个字段的关系:

    ==============================================================================
    
    
          Code (inc. data)   RO Data    RW Data    ZI Data      Debug   
    
         11720       1356       1268        108       1388     267457   Grand Totals
         11720       1356       1268        108       1388     267457   ELF Image Totals
         11720       1356       1268        108          0          0   ROM Totals
    
    ==============================================================================
    
        Total RO  Size (Code + RO Data)                12988 (  12.68kB)
        Total RW  Size (RW Data + ZI Data)              1496 (   1.46kB)
        Total ROM Size (Code + RO Data + RW Data)      13096 (  12.79kB)
    
    ==============================================================================

    RO Size (Code + RO Data) ,表示程序占用Flash空间的大小。

    RW  Size (RW Data + ZI Data),表示运行时占用的RAM的大小。

    ROM Size (Code + RO Data + RW Data) ,表示烧写程序占用的Flash空间的大小。

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    【扩展】

    【ARM中的RO、RW和ZI DATA说明】https://blog.csdn.net/jamestaosh/article/details/4348385 [有实例的说明]

    【KEIL MDK输出map文件分析】 https://blog.csdn.net/ropai/article/details/7493168

    【scatter file介绍】https://blog.csdn.net/zhoujiaxq/article/details/8102587

    【Keil sct分散加载文件】https://blog.csdn.net/kobesdu/article/details/38258449

     

  • 相关阅读:
    07 白话容器基础(三):深入理解容器镜像
    06 白话容器基础(二):隔离与限制 参考学习极客时间
    05 白话容器基础(一):从进程说开去 参考学习极客时间
    记录oracle 工作 20200205
    阿里云暑期算法实习生三轮技术面试经验详细分享
    微信机器人链接
    定时循环调取函数--APScheduler
    使用selenium 和图片验证码识别 对12306的模拟登录+12306查询车次
    国内免费代理收集
    caffe+水印识别部署
  • 原文地址:https://www.cnblogs.com/libra13179/p/10629365.html
Copyright © 2011-2022 走看看