
Program Size: Code12976 RO-data252 RW-data4 ZI-data1004这是 ARM 单片机Keil标准内存统计对应 Flash、RAM 两大块存储。1. 各字段对应存储段Code 12976只读程序代码段.text存放所有函数指令、if/for/while 逻辑、中断服务函数存储位置FlashROM掉电不丢失单位字节这里占用 12976 字节 FlashRO-data 252只读常量数据段.rodataRO Read Only 存放const全局 / 静态常量字符串字面量你代码里LOG(val %d\n)这类字符串只读数组常量存储位置Flash只读运行中不可修改RW-data 4已初始化全局 / 静态变量.dataRW Read Write 存放全局 /static 局部、初始值≠0的变量 例c运行int g_a 100; static int s_b 5;编译时初始值存在 Flash上电启动时拷贝到 RAM 中运行占用Flash 存初始值 4 字节RAM 占用 4 字节。ZI-data 1004零初始化数据段.bssZI Zero Initialized 存放两类全局 /static 局部变量未初始化 或 初始值 0全局大数组、静态缓冲区 上电后启动代码自动全部清 0Flash 不占用空间只占用 RAM 1004 字节2. RAM 总占用计算公式运行时芯片 RAM 总开销 RW-data ZI-data 这里4 1004 1008 字节 RAM3. Flash 总占用计算公式固件烧录 Flash 总大小 Code RO-data RW-data 12976 252 4 13232 字节 Flash4. 补充区分函数内普通局部变量unsigned int val100;栈 Stack不计入 Code/RO/RW/ZI栈是运行时动态分配编译统计不体现static unsigned int val100;计入 RW-datastatic unsigned int val;计入 ZI-dataconst char str[]abc;计入 RO-data。5. 总结Flash 固件大小13232 字节全局静态变量占用 RAM1008 字节代码 常量字符串12976252 字节存在 FlashRW4只有 4 字节带初始值的全局静态变量ZI1004大量未初始化全局 / 静态数组、变量