项目场景:
开发工具:keil5
问题描述
1.使用编译器如下: Use default complier version5
2.勾选优化选项 Optimize for Time
出现如下问题:
在一个30ms的任务中运行如下代码:
正常情况下,是每30ms运行一次,结果调试发现,介乎1~2S才运行一次。
原因分析:
keil的配置问题
解决方案:
解决方案有两种
1.去掉keil中的Optimize for Time
2.更换编译器为V5.06 update 7 (build 960)
总结:
万万没想到会出现这种问题,期间尝试了修改任务栈大大小,也修改了 .s文件中的stack和heap的大小。
为了找出问题,将函数一个个屏蔽,最终定位出问题。
优化选项和编译器还是有很大关系,大家要注意一下。
最终的方案,选择更换编译器为V5.06 upadte 7(build 960)