KEIL代码执行异常

时间:2024-03-24 22:05:53

   使用keil过程中,发现有些代码执行不到,或者参数异常。想到各种问题都解决不了,很郁闷。就比如我的两次经历

1.静态参数赋值不成功,在一个函数里设置一个静态参数,并赋值为0,程序运行以后发现这个参数使用时值变了不是0,找了好久都没找到问题,最后不得已换成了全局变量。

2.参数判断不对,下图是我的代码,BootRam_Flash_Str.state 这个参数在串口中断中赋值成0,并且我再窗口中断中打印数据参数已经为0了,但是程序还是一直死在这个while中,不往下运行。但是我在while中加个打印这个参数,程序就正常。最终我在while中加一条BootRam_Flash_Str.state = BootRam_Flash_Str.state;  然后发现这个地方不能打断点,突然想到keil具有代码优化的功能,我就怀疑代码优化导致的。

KEIL代码执行异常

3.问题解决

(1)当前优化等级默认是1

KEIL代码执行异常

(2)修改成

KEIL代码执行异常

最终发现这个问题的确解决了。

大家如果对优化等级有疑问的话可以去网上看看其他网友写的资料,我这就不多描述了。如果为了代码执行正常,建议大家不要代码优化了,但是这样会耗费一些ram

相关文章