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.

TMS320F28377S: 优化等级过高导致CLA运行崩溃的问题

Part Number: TMS320F28377S


伺服控制,我把电流环算法放在了CLA中,其余的位置,速度和通信等程序全都在CPU中

CCS属性中的优化等级: Optimization Level(-opt_level,O)选择  2-Global Optimizations ,Speed vs.size trade-off 选择 3

程序一直正常运行,但有一天,当我在CLA中加入了一句无足轻重的语句之后,比如:

long  china,  注意,我只是定义了一个根本没有用到的变量,或者 我在原先正确的程序中更换了某两句话的前后顺序(逻辑上这两句话谁先谁后都行)

CLA运行一段时间就会崩溃,系统提示电流控制错误。

不是不能运行,是1-5min内必然报错

针对以上现象,我做了下面的尝试:

(1)检查CMD空间,对照map文件也检查了,也试过直接使用官方cmd文件,没有效果

(2)CPU和CLA之间的互传空间都充足

(3)使用最新CCS10.4与最新编译器版本20.2.5 

都无果。

直到最后我想起来优化等级的事情,我把 Optimization Level(-opt_level,O)选择  0,其他什么都没有动,就正常了!

我想问:

(1)这种情况如何解释?

(2)这个现象就比较烦人,优化程序开高后,也不是不能运行,是一段时间就报错。而且你不知道在CLA中哪里加了一句话,多了一个空格,就会引爆这颗定时炸弹。

(3)我把优化等级降下来后,实测程序一遍运行下来耗时将增加8us,这是我不希望的。我想咨询一下,有没有一种操作可以把主CPU和CLA中的优化等级分开,分别设置?

         在CPU中我使用较高的优化等级以提升程序速度,在CLA中使用较低的优化等级,甚至不优化以提升运行可靠性?