我使用的芯片为F28377s,开发环境CCS6.1.3, 编译器TI v15.12.1.LTS 。编译代码时Optimization level 设置为2 时,部分代码没有实现期望的逻辑。Optimization level 设置为off代码就能实现期望的逻辑。为了寻找原因,我进行单步调试,发现代码不是按照顺序执行的。这里原因是什么呢?
我也尝试了controlSUITE中的例程,发现将Optimization level设置为2时,代码也不是按照顺序执行的。是因为Optimization level 本身就会改变程序的时序呢,还是因为工程哪里设置不对呢?
我的代码中有很多inline函数,也希望能够使用Optimization level 2。
请大牛们多多指点!
HG:
建议你看一下gnu c标准规范里面的o2优化定义,
o2的优化级别略高,会对汇编指令进行一种重新生成,
这情况下的汇编内联代码一定要注意,同时C代码中的全局变量使用也需要注意。