STM32程序占用的内存容量计算

MKD编译完成后查看以下数据的大小:

Code:表示程序所占用 FLASH 的大小( FLASH)。
RO-data:即 Read Only-data, 表示程序定义的常量,如 const 类型( FLASH)。
RW-data:即 Read Write-data, 表示已被初始化的全局变量( SRAM)
ZI-data:即 Zero Init-data, 表示未被初始化的全局变量(SRAM)
 

占用的Flash=Code + RO Data + RW Data;

运行消耗的最大RAM= RW-data+ZI-data;

可以计算出占用的FLASH = 23204+1428+380=24.42kB,占用的RAM=380+1836=2.16kB 

STM32F103芯片的内存资源如下:

从这个表里可以看到ROM SIZE里包含了Code RO-data RW-data,但是没有zi-data。是因为zi-data的值没有在程序里进行初始化,所以上电运行后会直接被赋值为0,所以这个值也就没有必要保存的ROM空间里了。 

程序空间大小计算:

7828byte=0x1E94byte;

那么数据存储从0x800 0000+0x1E94=0x800 1E94开始都是安全的。