依据keil编译结果判断所用内存大小以此判断宕机是否由内存耗尽导致
Program Size: Code=39696 RO-data=2368 RW-data=360 ZI-data=15432
c8t6的内存大小是20KB,flash大小是60KB
代码也就是机器指令是Code占用39696B,存放到片上flash中
RO-data只读数据段,存放常量以及printf("hex data")字符等存放在flash中
RW-data读写数据段包括已初始化的全局变量以及静态变量存放到RAM中,也存放到flash中
ZI-data (Zero-Initialized data,零初始化数据段)未初始化或者初始化为0的全局变量和静态变量,局部变量以及堆和栈等都存放到ZI-data数据段,这个数据段存放到RAM中
所以烧录到flash的大小为Code + RO-data + RW-data = 42424 B = 41KB
RAM占用大小为ZI-data = 15432 B = 15KB
上面的这个15KB大小是静态存储占用大小,但是在程序运行的时候,大小并不十分确定
所以RAM占用大小不能超过80%,留出20%的空白空间防止
浙公网安备 33010602011771号