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的文件降低了优化等级,问题得到解决,运行正常且程序的总体运行时间并没有增长。
谢谢解答。