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

TMS320F28388D: CLA编程运行速度问题

Part Number:TMS320F28388D

i=0;
ctrlcla.Channel[i].Current_all = Result[i]*cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].K0 + cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].B0;
i=1;
ctrlcla.Channel[i].Current_all = Result[i]*cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].K0 + cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].B0;
i=2;
ctrlcla.Channel[i].Current_all = Result[i]*cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].K0 + cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].B0;
i=3;
ctrlcla.Channel[i].Current_all = Result[i]*cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].K0 + cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].B0;
i=4;
ctrlcla.Channel[i].Current_all = Result[i]*cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].K0 + cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].B0;
i=5;
ctrlcla.Channel[i].Current_all = Result[i]*cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].K0 + cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].B0;
i=6;
ctrlcla.Channel[i].Current_all = Result[i]*cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].K0 + cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].B0;
i=7;
ctrlcla.Channel[i].Current_all = Result[i]*cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].K0 + cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].B0;

for(i=0;i!=8;i++)

{

ctrlcla.Channel[i].Current_all = Result[i]*cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].K0 + cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].B0;

}

把i等于01234567带入,如第一列

ctrlcla.Channel[0].Current_all = Result[i]*cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].K0 + cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].B0;
ctrlcla.Channel[1].Current_all = Result[i]*cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].K0 + cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].B0;
ctrlcla.Channel[2].Current_all = Result[i]*cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].K0 + cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].B0;
ctrlcla.Channel[3].Current_all = Result[i]*cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].K0 + cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].B0;
ctrlcla.Channel[4].Current_all = Result[i]*cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].K0 + cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].B0;
ctrlcla.Channel[5].Current_all = Result[i]*cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].K0 + cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].B0;
ctrlcla.Channel[6].Current_all = Result[i]*cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].K0 + cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].B0;
ctrlcla.Channel[7].Current_all = Result[i]*cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].K0 + cla_calib.Calib_Cur[i].Calibration[cla_calib.Point[i]].B0;

三种实现同样功能的代码,在CLA运行时时间分别为  500ns 1us  和3us

想问CLA是否也能够像设置CPU的opt一样进行代码优化的方式,还是编程时注意什么,由于控制需要频率很高,简单的几行代码就相差几个US,太让人头疼了

Susan Yang:

TMS320C28x代码生成工具包括对编译CLA C代码的支持。由于CLA体系结构和编程环境的限制,CLA支持的C语言有一些限制。

具体可以看一下

https://www.ti.com/lit/ug/spru514v/spru514v.pdf 

第10章 CLA Compiler

另外您可以设置文件级的优化设置,右击单个文件,选择properties,而后在optimization设置优化等级

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28388D: CLA编程运行速度问题
分享到: 更多 (0)