目前我们在使用CCS(12.5.0)进行编译时,不是用代码优化,程序运行正常。后来由于程序flash空间不够,因此开启了代码优化功能select optimization prardigm/level(-O) = 2,发现程序跑飞。开启仿真发现SRAM数据,Stack内部数据全部错误。
刚开始怀疑是Stack size大小不够(256字节),所以后来加大Stack size为512,程序依旧跑飞。继续加大Stack size为1024字节,程序运行正常,但是在程序运行正常情况下,我们测试了实际使用Stack size只有200字节左右,按理来说Stack size为512字节时完全够用,所以比较奇怪为什么开启代码优化后程序会跑飞,好像也并非与Stack size太小的原因。