0. 数据类型说明
主要包括4类:
- Code (inc. data) ,属于RO,也就是写的函数代码(包括代码中的变量)
- RO Data , 属于RO,使用const修饰的变量。
- RW Data, 属于RW,变量。
- ZI Data, 属于RW,没有初始化的变量。
1. mdk 设置Scatter 文件
默认情况下,片内会有两大存储块IROM(只读存储器RO,用来存常量、代码等),IRAM(读写存储器RW,用来存变量,包括被默认初始化为0的变量),如下图 "Target"选项卡。
来看“Linker”选项卡,下面介绍操作:
1. 默认的选项是使用的“Target”的内存分区,需要把这个勾去掉。
2. 去掉勾后会出现一个“.sct"文件,点击Edit就可以修改了,对文件做了注释说明如下:
LR_IROM1 0x08000000 0x00080000 { ; load region size_region, 装载区域 ; LR_IROM1, 这是一个名字,随便起。可以理解为一块存储器的名字。 ; 0x08000000,这是起始地址。 ; 0x00080000,代表size,也就是存储器的最大空间。 ER_IROM1 0x08000000 0x00080000 { ; load address = execution address, 执行区域 *.o (RESET, +First) ;<