Code:程序代码,存储在rom中; RO-data:只读数据,存储在rom中; RW-data:可读可写数据,既存储在ram中,也存储在rom中(RW-data已初始化的数据会存储在rom中,上电会从rom搬移至ram中); ZI-data:Zero Initialize,未初始化的数据,上电后在ram中划分一个区域统一存储,MDK会给默认赋值为0。 2、Code、RO-data、RW...
(4) 使用 armlink 链接对象文件,根据程序的调用把各个.o 文件的内容链接起来,最后生成程序的 axf 映像文件,并附带程序各个域大小的说明,包括 Code、RO-data、RW-data及 ZI-data 的大小。 (5) 使用 fromelf 生成下载格式文件,它根据 axf 映像文件转化成 hex 文件,并列出编译过程出现的错误(Er...
5.Total ROM Size (Code + RO Data + RW Data)这样所写的程序占用的ROM的字节总数,也就是说程序所下载到ROM flash 中的大小。为什么Rom中还要存RW,因为掉电后RAM中所有数据都丢失了,每次上电RAM中的数据是被重新赋值的,每次这些固定的值就是存储在Rom中的,为什么不包含ZI段呢,是因为ZI数据都是0,没必要包...
ZI-data:可读写数据区域,一定是未初始化或初始化为“0值”的可读写数据,应用程序同样可以修改其内容,这些数据被存储在RAM区ZI-data区典型:例1、C语言中定义的数组,只定义了数组的大小,并没有给每个成员赋非0值。 以下数据节选于程序的.map文件结尾。 Code (inc. data) RO Data RW Data ZI Data Debug 26...
image文件包含了Code, RO-data, RW-data数据。 之所以image文件不包含ZI-data,是因为ZI-data都是0,没必要包含,只要程序运行之前将ZI数据所在的区域一律清零即可,包含进去浪费存储空间。 Q:为什么image中必须包含Code, RO-data, RW-data? A:因为Code+RO-data中的指令和常量以及RW-data中初始化过的变量是不能像...
Keil MDK 中的 Code、RO-data、RW-dat、ZI-data 分别代表什么意思,程序员大本营,技术文章内容聚合第一站。
RO-data (read only):只读常量,(const型) RW-data (read/write):可读写变量 ZI-data (zero initialize) :没有初始化的变量,不算作代码 image.png 运行时固件占用ROM 大小为 code + RW-data +ROdata =35.03KB 占用的RAM 大小为 RW-data +ZI-data = 63.82KB ...
ZI-data是(Zero Initialize) 没有初始化的可读写变量的大小。ZI-data不会被算做代码里因为不会被初始化; 简单的说就是在烧写的时候是FLASH中的被占用的空间为:Code + RO Data + RW Data 程序运行的时候,芯片内部RAM使用的空间为: RW Data + ZI Data ...
Total RO Size(Code + RO Data) 1008 ( 0.98kB) Total RW Size(RW Data + ZI Data) 96 ( 0.09kB) Total ROM Size(Code + RO Data + RW Data) 1008 ( 0.98kB) === === Prog2编译出来后的信息如下: === === Code RO
RW-data, ZIdata...RAM 三详细分析 初始化时RW-data从flash拷贝到RAM ⽣成的map⽂件位于list⽂件夹下 (KEIL)Total RO Size (Code + RO Data) 18568 ( 18.13kB)Total RW Size (RW Data + ZI Data) 4212 ( 4.11kB)Total ROM Size (Code + RO Data + RW Data) 18828 ( ...