Code:编译生成的机器指令,也就是程序的执行代码,存放到ROM区。 RO-data:只读数据(Read Only Data),包含程序中所定义的全局常量、字符串、const关键字修饰的变量数据,存放到ROM区。 RW-data:已初始化的可读写数据(Read And Write Data),程序中定义并且初始化(非0值)的全局变量和静态变量,存放在RAM区。 ZI-dat...
详解STM32编译后Code,RO-data,RW-data,ZI-data ARM中的RO、RW和ZI DATA 要了解RO,RW和ZI需要首先了解以下知识: ARM程序的组成 此处所说的“ARM程序”是指在ARM系统中正在执行的程序,而非保存在ROM中的bin映像(image)文件,这一点清注意区别。 一个ARM程序包含3部分:RO,RW和ZI RO是程序中的指令和常量 RW...
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) === Prog4编译出来后的信息如下: === Code RO Data
1、Code 即代码域,它指的是编译器生成的机器指令,这些内容被存储到ROM区。 2、RO-data Read Only data,即只读数据域,它指程序中用到的只读数据,这些数据被存储在ROM区,因而程序不能修改其内容。 例如: C语言中const关键字定义的变量就是典型的RO-data。 3、RW-data Read Write data,即可读写数据域,它指...
rwdatarodatazidata详解编译code ARM中的RO、RW和ZIDATA要了解RO,RW和ZI需要首先了解以下知识:ARM程序的识成此识所识的“ARM程序”是指在ARM系识中正在识行的程序,而非保存在ROM中的bin映像(image)文件,识一点注意识。清区一个ARM程序包含3部分:RO,RW和ZIRO是程序中的指令和常量RW是程序中的已初始化识量ZI...
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不会被算做代码里因为不会被初始化。
Code就是代码,函数。 RO Data,就是只读变量,例如用const修饰的数组。 RW Data,就是读写变量,例如全局变量跟static修饰的局部变量。 ZI Data,就是系统自动初始化为0的读写变量,大部分是数组,放在bss段。 RO Size等于代码加只读变量。 RW...
如上图,存在Code、RO-data、RW-data、ZI-data四个代码段大小。 其中Code就是代码占用大小,RO-data是只读常量、RW-data是已初始化的可读可写变量,ZI-data是未初始化的可读可写变量。 有些时候,我们需要知道RAM和ROM的使用情况如何,那么我们就可以使用下面的公式计算。
Flash 存储 code和RO-data Sram 存储 RW-data 和ZI-data 在datasheet中一样可以找到sram的起始地址,为0x20000000,结束地址为0x2000ffff,我们自己添加段不必像IDA自动分析的那样详细,一个sram的段即可。 也可以在IDA启动时设置好固件加载地址和sram的开始以及结束地址。
1) Code:代码段,存放程序的代码部分; 2) RO-data:只读数据段,存放程序中定义的常量; 3) RW-data:读写数据段,存放初始化为非 0 值的全局变量; 4) ZI-data: 0 数据段,存放未初始化的全局变量及初始化为 0 的变量; 编译完工程会生成一个. map 的文件,该文件说明了各个函数占用的尺寸和地址,在文件的...