This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28335: CCS6.1.3选择O3优化等级编译,for循环语句被中断打断后偶尔执行错误

Part Number: TMS320F28335


你好!最近遇到一个问题,同一个工程文件,用ccs6.1.3选择O3优化等级编译与用ccs3.3选择O3优化等级编译,之后烧写到板子上运行结果不一样。具体表现是:使用一个for循环语句对一个16位的变量按从低到高的位进行赋值操作,用ccs6.1.3选择O3优化等级编译的执行结果是有时会出错,即某些高位赋值未执行。我分析认为应该是for循环执行到中途时被中断打断后,之后回来未继续执行for语句而是直接执行之后的语句了。而用ccs3.3选择O3优化等级编译,或者用ccs6.1.3选择O1优化等级编译则未出现该问题。请问这个是什么原因?有什么好的解决方案吗?是两个编译器对堆栈的保护要求不一样吗?