详解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...
其中RW Data + ZI Data表示总共需要占用的RAM的大小。而Code + RO Data + RW Data表示ROM需要的大小,根据这两个值,可以根据程序合理的选择相应的MCU。 3.2 各函数所需要的内存 以下是函数分配时的内存分配情况,可根据下面的map文件定位到具体的函数的内存使用情况,其中比较重要的是ZI Data,因为这些内存都是分配...
Code:编译生成的机器指令,也就是程序的执行代码,存放到ROM区。 RO-data:只读数据(Read Only Data),包含程序中所定义的全局常量、字符串、const关键字修饰的变量数据,存放到ROM区。 RW-data:已初始化的可读写数据(Read And Write Data),程序中定义并且初始化(非0值)的全局变量和静态变量,存放在RAM区。 ZI-dat...
This will download all the required data sources intosources/. Runcargo run --release --bin stm32-data-gen This generates all the intermediate JSON's inbuild/data/. Assignments of registers to peripherals is done in aperimapand fixes to registers can be done in the files located indata/reg...
驱动单元DCode 总线DCode 中的 D 表示 Data,即数据,那说明这条总线是用来取数的 。我们在写程序的时候,数据有常量和变量两种,常量就是固定不变的,用 C语言中的 const关键字修饰,是放到内部的 FLASH 当中的,变量是可变的,不管是全局变量还是局部变量都放在内部的SRAM。因为数据可以被 Dcode总线和 DMA总线访问...
TotalROSize(Code+ROData)1009(0.99kB) TotalRWSize(RWData+ZIData)96(0.09kB) TotalROMSize(Code+ROData+RWData)1009(0.99kB) === === 以上程序识识出后的信息可以看出:两个来 Prog1和Prog2的RO包含了Code和ROData识据。他识的唯一识识就是两数区 Prog2的ROData比Prog1多了1字识。识正和之前的推...
DCode 总线 DCode 中的 D 表示 Data,即数据,那说明这条总线是用来取数的。我们在写程序的时候,数据有常量和变量两种,常量就是固定不变的,用 C 语言中的 const 关键字修饰,是放到内部的 FLASH 当中的,变量是可变的,不管是全局变量还是局部变量都放在内部的SRAM。因为数据可以被 Dcode 总线和 DMA 总线访问,...
1)Code:代码段,存放程序的代码部分。 2)RO-data:只读数据段,存放定义的常量。 3)RW-data:读写数据段,存放初始化为非0值的全局变量和静态变量。 4)ZI-data:零数据段,存放未初始化及初始化为0的全局变量和静态变量。 所以在stm32中:flash的容量是前三项相加(RW-data的初始值也要存在flash里),RAM的容量是...
49、Code为程序代码部分RO-data 表示程序定义的常量(如:const temp等);RW-data 表示已初始化的全局变量ZI-data 表示未初始化的全局变量,以及初始化为0的变量Code, RO-data,RW-data...flashRW-data, ZIdata...RAM初始化时RW-data从flash拷贝到RAM 50、STM32F103ZET6有144个引脚(Z为144)...
4)ZI-data 是(Zero Initialize) 没有初始化的可读写变量的大小,ZI-data不会被算做代码里因为不会被初始化。 1.1、Flash 占用 在烧写的时候是 FLASH 中的被占用的空间为: Code+RO Data+RW Data 1.2、RAM 内存占用(不包括堆栈) 程序运行的时候,芯片内部 RAM 使用的空间为: ...