Program size: Code, RO-data , RW-data, ZI-data
Keil 编译内存信息:Program size: Code, RO-data , RW-data, ZI-data
1、Code 是代码占用的空间。
2、RO-data是 Read Only 只读常量的大小,如const型
3、RW-data是(Read Write) RW是可读可写变量,就是初始化时候就已经赋值了的,RW + ZI就是你的程序总共使用的RAM字节数。
4、ZI-data是(Zero Initialize) 没有初始化的可读写变量的大小,就是程序中用到的变量并且被系统初始化为0的变量的字节数,keil编译器默认是把你没有初始化的变量都赋值一个0,这些变量在程序运行时是保存在RAM中的。
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...
"..\object\BootLoader.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 Totals11720 1356 1268 108 1388 267457 ELF Image Totals11720 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空间的大小。
Program size: Code, RO-data , RW-data, ZI-data相关推荐
- ARM编译中的RO、RW和ZI DATA区段
ARM编译中的RO.RW和ZI DATA区段 ARM编译中的RO.RW和ZI DATA区段 ARM程序(指在ARM系统中正在执行的程序,而非保存在ROM中的bin文件)的组成 一个ARM程序包含3部分 ...
- ARM中的RO、RW和ZI DATA
一直以来对于ARM体系中所描述的RO,RW和ZI数据存在似是而非的理解,这段时间对其仔细了解了一番,发现了一些规律,理解了一些以前书本上有的但是不理解的东西,我想应该有不少人也有和我同样的困惑,因此将 ...
- stm32 ARM中的RO、RW和ZI DATA
一直以来对于ARM体系中所描述的RO,RW和ZI数据存在似是而非的理解,这段时间对其仔细了解了一番,发现了一些规律,理解了一些以前书本上有的但是不理解的东西,我想应该有不少人也有和我同样的困惑,因此将 ...
- KEIL 中的RO、RW和ZI DATA所代表的意思
RO段.RW段和ZI段 要了解RO,RW和ZI需要首先了解以下知识: ARM程序的组成 此处所说的"ARM程序"是指在ARM系统中正在执行的程序,而非保存在 ...
- KEIL MDK中的RO、RW和ZI
KEIL MDK中的RO.RW和ZI DATA理解及KEIL中ROM和RAM使用大小计算 (2013-12-25 09:33:06) 转载▼ 标签: it 分类: 嵌入式相关 本文来源与网络 http ...
- 关于RO、RW、ZI的说明
参考文章: ARM中RO.RW和ZI DATA说明 http://mcuos.com/thread-2843-1-1.html STM32后生成编译文件大小探索 http://www.cnblogs. ...
- 了解RO、RW、ZI和.text .bss .data
了解RO,RW和ZI 1.RO段包括只读代码段(code段/.text段)和常量段(RO Data段/.constdata段). 2.RW段(.data段)指已被初始化成非0值的变量段. 3. ...
- Program Size: Code=x RO-data=x RW-data=x ZI-data=x 的含义
Program Size: Code=x RO-data=x RW-data=x ZI-data=x 的含义 Code(代码): 程序所占用的FLASH大小,存储在FLASH. RO-data(只读的 ...
- Keil编译产生的RO,RW和ZI是什么
转载自: http://sdjntl.spaces.eepw.com.cn/articles/article/item/80656 要了解RO,RW和ZI需要首先了解以下知识: 1.ARM程序的组成: ...
- RO、RW和ZI段详解
要了解RO,RW和ZI需要首先了解以下知识: (1) ARM程序的组成 此处所说的"ARM程序"是指在ARM系统中正在执行的程序,而非保存在ROM中的bin映像(image)文件, ...
最新文章
- 本地配yum(没有网络)
- [Cubieboard] 安装 Lubuntu server for SDCard
- iOS -OC调用js页面
- linux awk详解
- DTStructure分治法与最大子列和问题
- 【linux】查看字体
- 使用 csv 导入的方式在 SAP S/4HANA 里创建 employee 数据
- Java学习笔记(4)——枚举类型
- emlog_toolkit.php,emlog 4.0版本IIS6下伪静态划定规矩
- ajax java base64 图片储存
- ES中------拼音搜索
- win7打印机找不到USB001接口的解决方法
- 【实验】阿里云大数据助理工程师认证(ACA)- ACA认证配套实验-03-MaxCompute内置函数
- 为什么不敢和别人竞争_三千亿碧桂园的残酷竞争:别人能,你为什么不能?
- Fabric 1.0源代码分析(23)LevelDB(KV数据库)
- Cesium本地加载地形(dem高程)数据
- 一个老迅雷人眼中的“迅雷恩怨”门: 无论对错, 至少良知不可逝
- 浅析EtherCAT总线
- ko文件 、insmod命令
- 【xlwings api语言参考】Worksheets.Add 方法