TI中文支持网
TI专业的中文技术问题搜集分享网站

CCSv5的优化等级问题

在选择优化等级为-2 -3 -4时,将断点设在赋值语句的下一句之前,发现赋值操作没有执行。请问这是什么原因?此外,选择高的优化等级对于for循环的操作速率会有提升吗?

user3832255:

如果某个变量只是定义了,没有具体操作(只有赋值语句不算)会被编译器优化掉。很多编译器都会这么做。

选择高优化等级不会提升for这种常见的操作。当然,你可以选择不同优化等级,看生成的汇编代码比较。

在选择优化等级为-2 -3 -4时,将断点设在赋值语句的下一句之前,发现赋值操作没有执行。请问这是什么原因?此外,选择高的优化等级对于for循环的操作速率会有提升吗?

BIN YAO1:

回复 user3832255:

我定义了两个变量,一个表示本次中断接收数据,一个表示上次中断接收数据,并且将这两个变量做差。这样的操作应该不会被优化掉吧?不管我定义这两个变量为局部变量还是全局变量,都不会执行赋值操作。而且当优化等级为-4时,出现无法查看变量数值的情况,请问这个现象正常吗?

在选择优化等级为-2 -3 -4时,将断点设在赋值语句的下一句之前,发现赋值操作没有执行。请问这是什么原因?此外,选择高的优化等级对于for循环的操作速率会有提升吗?

Hardy Hu:

你好!

如果这个赋值语句是给后面未使用的变量进行,或者没有将该变量定义为volatile类型,都会出现这种情况。

简单的办法就是将优化等级设置为off,这样是不优化,程序是都能执行的。

CCS优化选项和优化的详解请详见TMS320C28x Optimizing C&C++ Compiler V6.1 User's Guide,chapter 3 Optimizing Your Code。

赞(0)
未经允许不得转载:TI中文支持网 » CCSv5的优化等级问题
分享到: 更多 (0)