DSP:TI28035;IDE:CCS12.0.4
问题:CCS程序编译通过,然后加载程序,发现加载是可以正常加载,但是运行图标是灰色的(如图)
解决方法:
右击工程——进入properties(或者按快捷键ALT+ENTER),按照下图所示选择--opt_level=4 or -O 4-Performs link-time optimization.

重新编译下载运行,可以发现resume图标变绿了
原因:
链接时优化( --opt_level=4 选项)
链接时优化是一种优化模式,让编译器对整个程序具有可见性。优化发生在链接时,而不是像其他优化级别那样
发生在编译时。
应使用 --opt_level=4 选项调用链接时优化。此选项必须放在命令行上的 --run_linker (-z) 选项之前,因为编译器
和链接器都会参与链接时优化。在编译时,编译器将正在编译的文件的中间表示形式嵌入到生成的目标文件中。
在链接时,从包含此表示形式的每个目标文件中提取此表示形式,并用于优化整个程序。
如果使用 --opt_level=4 (-O4),则不能同时使用 --program_level_compile 选项,因为链接时优化提供了与程序级
优化相同的优化机会( 节 3.4)。链接时优化具有以下优点:
• 每个源文件都可以单独编译。程序级编译的一个问题是其要求所有源文件都要一次性传递给编译器。这通常需
要对客户的构建过程进行重大修改。使用链接时优化,所有文件都可以单独编译。
• 自动处理对程序集的 C/C++ 符号的引用。在进行程序级编译时,编译器不知道符号是否被外部引用。当在最后
一个链接中执行链接时优化时,链接器可以确定哪些符号被外部引用,并在优化过程中防止消除这些符号。
• 第三方目标文件可以参与优化。如果第三方供应商提供了使用 --opt_level=4 选项编译的目标文件,这些文件将
与用户生成的文件一起参与优化。这包括作为 TI 运行时支持的一部分提供的目标文件。未使用 –opt_level=4
编译的目标文件仍可在执行链接时优化的链接中使用。未使用 –opt_level=4 进行编译的那些文件则不参与优
化。
• 可以使用不同的选项集编译源文件。对于程序级编译,必须使用相同的选项集编译所有源文件。借助链接时优
化,可以使用不同的选项来编译文件。如果编译器确定两个选项不兼容,就会发出错误。
这只是针对这种问题的一个解决方法,是我在确认代码没问题后才选择优化,具体会带来啥BUG需要参考TI文档,还有和这个问题现象一样但是按照他的解决方案并不能解决我的问题,希望有类似问题可以参考并给出不同的解决方案!根据查阅TI官方资料,虽然自己的代码没有问题,但是在CCS编译过程中,编译优化等级低可能会使得部分代码运行出错,导致堆栈错误,具体原因也没太搞懂,有清楚的大佬麻烦评论区解释一下,TI官方的编译优化文档也附上!
TI官方文档链接: TMS320C28x Optimizing C/C++ Compiler v22.6.0.LTS User's Guide (Rev. Y)
ti.com/lit/ug/spru513y/spru513y.pdf?ts=1689817724135
参考解决方案:http://t.csdn.cn/a9nvz