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...
解释ro-data、rw-data、zi-data的基本概念 ro-data(Read-Only Data):只读数据段,存储程序中所有常量数据,如字符串常量、常量值等。这些数据在程序运行期间不会被修改,因此被放置在只读存储器(ROM)中,以防止程序意外或恶意地修改它们。 rw-data(Read-Write Data):读写数据段,存储程序中需要被初始化的全局变量和...
KEIL编译器区分RW-data和ZI-data 和ZI-data它们仅仅是初始值不一样而已,为什么编译器非要把它们区分开?这就涉及到程序的存储状态了,应用程序具有静止状态和运行状态。静止态的程序被存储在非易失存储器中,如STM32的内部FLASH...RW-data的区别是程序刚运行时这些数据初始值全都为0,而后续运行过程与RW-data的性质...
3、RW-data是(Read Write) RW是可读可写变量,就是初始化时候就已经赋值了的,RW + ZI就是你的程序总共使用的RAM字节数。(已经初始化的全局变量) 4、ZI-data是(Zero Initialize) 没有初始化的可读写变量的大小,就是程序中用到的变量并且被系统初始化为0的变量的字节数,keil编译器默认是把你没有初始化的变量...
Keil MDK 中的 Code、RO-data、RW-dat、ZI-data 分别代表什么意思,程序员大本营,技术文章内容聚合第一站。
RW-data是(Read Write) 初始化了的可读写变量的大小; ZI-data是(Zero Initialize) 没有初始化的可读写变量的大小。ZI-data不会被算做代码里因为不会被初始化; 简单的说就是在烧写的时候是FLASH中的被占用的空间为:Code +RO Data +RW Data 程序运行的时候,芯片内部RAM使用的空间为:RW Data +ZI Data ...
谈谈Keil-MDK编译输出的:Code-data,RO-data,RW-data,ZI-dataCode-data,RO-data,RW-data,ZI-data 程序运行时加载过程 一、编译过程 (1) 编译,MDK 软件使用的编译器是 armcc 和 armasm,它们根据每个 c/c++和汇编源文件编译成对应的以“.o”为后缀名的对象文件(Object Code,也称目标...
RW-data是(Read Write) 初始化了的可读写变量的大小; ZI-data是(Zero Initialize) 没有初始化的可读写变量的大小。ZI-data不会被算做代码里因为不会被初始化; 简单的说就是在烧写的时候是FLASH中的被占用的空间为:Code + RO Data + RW Data
Code=86496 RO-data=9064 RW-data=1452 ZI-data=16116 1)Code 是代码占用的空间; 2)RO-data 是 Read Only 只读常量的大小,如const型; 3)RW-data 是(Read Write)初始化了的可读写变量的大小; 4)ZI-data 是(Zero Initialize) 没有初始化的可读写变量的大小,ZI-data不会被算做代码里因为不会被初始化。
RW-data区典型:例1、C语言中定义的全局变量,且初始化为“非0值”。例2、C语言中定义的静态变量。且初始化为“非0值”。 ZI-data:可读写数据区域,一定是未初始化或初始化为“0值”的可读写数据,应用程序同样可以修改其内容,这些数据被存储在RAM区ZI-data区典型:例1、C语言中定义的数组,只定义了数组的大小...