串口中断出现错误

2019-07-21 19:45发布

在以前别人做的DSP程序上扩展功能,主要是串口中断和定时器中断,中断设置确定没有问题,由于功能需要,主程序中switch语句和if语句较多,功能没有全部实现时,使用编译器的1级优化,勾选优化代码大小,程序正常运行,但是使用更高级别的优化时,串口中断就出现错误
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
jiaxw
1楼-- · 2019-07-22 13:18
这是因为代码优化会打乱指令执行顺序, 优化存储器访问等.
jiajs
2楼-- · 2019-07-22 17:55
啥意思?
spark周
3楼-- · 2019-07-22 20:49
比如使用 volitale 强制不要优化
午夜粪车
4楼-- · 2019-07-23 00:57
O3是最大的优化级别,特别对循环试图进行软件流水。优化后一些不常用的中间变量将被释放掉,优化前中间变量被定义在L2缓存里,优化后直接分配在了CPU内部寄存器里,所以这些变量将不能被看到。
zhanghqi
5楼-- · 2019-07-23 03:39
 精彩回答 2  元偷偷看……
wyjie
6楼-- · 2019-07-23 07:52
很正常,采用O3优化后,少些代码会不正常,我也遇见过好几次,把C代码的方法改一下,再采用FULLL-DEBUG模式回过去看看(MIX模式)汇编确认一下。

一周热门 更多>