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.

TMS320F28388D: 28388D CLA读取变量速度的问题

Part Number: TMS320F28388D

你好,我在使用CLA中遇到了下列问题:

定义了两组变量,一组是从CLA向CPU传输结算结果,另外一组是从CPU向CLA传输数据,在CLA中进行计算

//CPU向CLA传输的数据

#pragma DATA_SECTION(CpuInPara,"CpuToCla1MsgRAM")
Cpu2_to_Cla_Calculate CpuInPara;

//CLA向CPU传输的数据

#pragma DATA_SECTION(ClaOutPara,"Cla1ToCpuMsgRAM");
CLA_to_CPU2_Calculate ClaOutPara;

在CLA中进行读取及计算、赋值,同时在CLA中定义了一个GPIO,通过高低电平来测量计算时间

//

GPIO_HIGH;

ClaOutPara.Reslut = CpuInPara.Para*0.005;

ClaOutPara.Reslut1 = CpuInPara.Para1*0.005;

GPIO_LOW;

通过对电平的测量,发现在CLA中的赋值操作时间远大于在CPU中做同样操作的时间,如上述操作,实测整个结果需要接近20us,而在CPU中只需要不到1us,这是什么原因,是变量定义有问题还是CLA需要什么的设置才能让这个操作时间变快?

  • 你的意思是

    GPIO_HIGH;

    ClaOutPara.Reslut = CpuInPara.Para*0.005;

    ClaOutPara.Reslut1 = CpuInPara.Para1*0.005;

    GPIO_LOW;

    就执行这四句话就有20us吗?

    我们之前也测试过cla中的时间,若是的话肯定是不正常的

    (1)能不能测试下,在cla中定义两个浮点变量,不用和cpu互传的变量,计算两次乘法,看一看时间。

    (2)仍然是你原先的情况(即用cpu互传的变量),对于.cla文件可单独点击其文件属性,设置优化等级,可以加大优化等级后再测试时间。不过即使是优化等级没开,也不应该20us这么离谱

     (3)可没可能是GPIO翻转语句占用的时间多?鉴于双核芯片程序初始化时会设置各外设权限,一般是cpu1,你是用的cpu1.cla吗?其实你可以用cpu计数器或者pwm计算器测试时间,来验证(3)处的怀疑。