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

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

linking...
Program Size: Code= RO-data= RW-data= ZI-data=
FromELF: creating hex file...
"..\object\BootLoader.axf" - Error(s), Warning(s).
Build Time Elapsed: ::

上面提到的 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   

                                          Grand Totals
ELF Image Totals
ROM Totals ============================================================================== Total RO Size (Code + RO Data) ( .68kB)
Total RW Size (RW Data + ZI Data) ( .46kB)
Total ROM Size (Code + RO Data + RW Data) ( .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

Keil中 Program Size: Code RO-data RW-data ZI-data的更多相关文章

  1. Keil 中 Program Size: Code RO-data RW-data ZI-data 所代表的意思

    在Keil中编译工程成功后,在下面的Bulid Ouput窗口中会输出下面这样一段信息: Program Size: Code=6320 RO-data=4864 RW-data=44 ZI-data ...

  2. stm32 ARM中的RO、RW和ZI DATA

    一直以来对于ARM体系中所描述的RO,RW和ZI数据存在似是而非的理解,这段时间对其仔细了解了一番,发现了一些规律,理解了一些以前书本上有的但是不理解的东西,我想应该有不少人也有和我同样的困惑,因此将 ...

  3. ARM MDK 编译产生:RO、RW和ZI DATA说明

    1.比如编译一个工程文件,产生如下提示信息: Program Size: Code=18938 RO-data=622 RW-data=124 ZI-data=7724 RO段.RW段和ZI段 要了解 ...

  4. keil编译后Program Size: Code=46284 RO-data=988 RW-data=580 ZI-data=1094588

    Program Size: Code=46284 RO-data=988 RW-data=580 ZI-data=1094588 Code      :   程序中代码所占字节大小 RO-data : ...

  5. Keil编译后的Code,RO,RW,ZI分别表示什么以及和芯片Flash、SRAM的对应关系

    在使用keil开发STM32应用程序时,点击Build后在Build Output窗口中经常会有如下信息:<ignore_js_op> 以前一直好奇这几个参数和实际使用的STM32芯片中F ...

  6. RW RO ZI ROM keil中的含义

    编译的一个ARM的程序,会得到这样的信息: ============================================================================== ...

  7. keil Bulid Ouput窗口中PROGRAM SIZE项的具体含义

    在Keil中编译工程成功后,在下面的Bulid Ouput窗口中会输出下面这样一段信息:   Program Size: Code=6320  RO-data=4864  RW-data=44  ZI ...

  8. KEIL的ARM编译器对RW和ZI段的一个处理

    按照C编译器编译的结果,一般会产生RO段,RW段,ZI段.RO是程序中的指令和常量,RW是程序中的已初始化全局变量,ZI是程序中的未初始化或初始化为零的全局变量. 那么如下的代码 int aaa; i ...

  9. Program Size

    在Keil中编译工程成功后,在下面的Bulid Ouput窗口中会输出下面这样一段信息: Program Size: Code=6320  RO-data=4864  RW-data=44  ZI-d ...

随机推荐

  1. thinkphp获取后台所有控制器和action

    <?phpnamespace Admin\Controller;use Think\Controller;class AuthorController extends PublicControl ...

  2. L2-014. 列车调度(set)*

    L2-014. 列车调度 参考博客 #include <iostream> #include <cstdio> #include <set> #include &l ...

  3. 使用元类 编写ORM

    元类 一句话: 元类定制类的创建行为 知识点 1.类的创建: python这种动态语言,函数和类的定义,不是编译时定义的,而是运行时动态创建的. Python解释器遇到class定义时,仅仅是扫描一下 ...

  4. 关于css样式错乱

    在浏览器中的console中执行以下代码会有惊喜哦: [].forEach.call($$("*"), function(a) { a.style.outline = " ...

  5. 百战程序员-xml

    1.用自己的语言说出,为什么需要XML? XML 是一种元标注语言,该语言提供一种描述结构数据的格式.这有助于更精确地声明内容,方便跨越多种平台的更有意义的搜索结果.此外,XML 将起用新一代的基于 ...

  6. Gym101889E. Enigma(bfs+数位)

    比赛链接:传送门 题目大意: 求一个十进制大数S(有部分数位为"?")能被N整除时的最小值,如果没有办法被N整除,输出"*". 思路: 一个数位上的数值增加1后 ...

  7. Semantic Compositionality through Recursive Matrix-Vector Spaces-paper

    Semantic Compositionality through Recursive Matrix-Vector Spaces 作者信息:Richard Socher Brody Huval Chr ...

  8. springMvc---跨服务器文件上传(实测总结)

    序言: 该案例是采用springMvc实现跨服务器图片上传功能,其中用到的主要类和工具有:CommonsMultipartResolver.jquery.form.js.如果要实现多个文件上传,只需要 ...

  9. cookie和session的关联关系

  10. HAproxy增加日志记录功能和自定义日志输出内容、格式

    http://blog.51cto.com/eric1/1854574 一.增加haproxy日志记录功能   1.1 由于数据分析的需要,我们必须打开haproxy日志,记录相关信息. 在配置前,我 ...