有关uV4的优化级别最高影响代码执行问题?

2019-07-21 00:43发布

把uV的optimization选项设为如图所示



运行如下程序:


单步执行时,其执行顺序初始化完毕后,先跳到j=1,然后跳到h=shuzhu1,(此时j还是等于0),在然后跳到for(i=0;i<1248;i++),再然后跳到j=1;反正就是程序感觉在乱跑。如果把for循环去掉就正常了。
在变量名前面加volatile也试过了,还是不行。
如果把优化级别调成0,不把for循坏去掉程序正常运行,如果把for循坏去掉,程序在进入for循环时会先跳转到m=1,然后再跳转到j=0,然后顺序向下执行。
由于我需要for循环程序执行的速率最快(做AD采样需要),只能用最高优化级别。
哪位知道这个问题出在哪里?谢谢了

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
正点原子
1楼-- · 2019-07-21 02:50
-O3优化,得到的调试性最差。
不建议用。

你要验证,那就直接验证结果吧。
不要用仿真调试,直接验证结果,比如通过printf输出。
红木甲板
2楼-- · 2019-07-21 03:19
改了优化级别后重新编译下载,再debug
等待烟花美
3楼-- · 2019-07-21 06:23
 精彩回答 2  元偷偷看……
等待烟花美
4楼-- · 2019-07-21 07:17
回复【4楼】正点原子:
---------------------------------
好的,谢谢原子哥

一周热门 更多>