依据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%的空白空间防止

posted @ 2026-04-15 18:49  太菜不摆  阅读(23)  评论(0)    收藏  举报