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

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中使用较低的优化等级,甚至不优化以提升运行可靠性?

Susan Yang:

我这边使用28379D的launchpad内的CLA例程无法复现您的错误。

能否给出您的测试程序,我来用开发板跑一下试试

,

user5229665:

你好。测试程序在公司加密电脑中,暂时无法拷贝。

在论坛中搜到了您以前给别人解答的帖子,里面讲到可以对具体某一个.c文件进行优化等级设置的方法。

我只对我.cla的文件降低了优化等级,问题得到解决,运行正常且程序的总体运行时间并没有增长。

谢谢解答。

赞(1)
未经允许不得转载:TI中文支持网 » TMS320F28377S: 优化等级过高导致CLA运行崩溃的问题
分享到: 更多 (0)