主题中讨论的其他器件: C2000WARE
您好、TI、
我对 CLA 与 CPU 计算时间有一个(理解)问题。
我们使用 TMS320F28069。 为了进行测试和调试、我将绝对(!) 相同的代码。 第一个在主 CPU 中、第二个在 CLA 任务中。 我希望计算时间相同。
但我的测量显示 CLA 的计算时间要快得多。
差异是3µs μ A (CLA)与24µs μ A (CPU)!
来测量我切换 GPIO 的时间。
CLA 任务也由一个 GPIO 测量。 由 Sotwaretrigger (IACK)启动、由 CLA1_INT2_ISR 例程停止。 下面的代码全极。
所有需要的变量都位于 CLA1DataRam 区域中。 计算正确且有效(在 CLA 和 CPU 中)。
void main( void ){ … 初始化等 … EALLOW; GpioDataRegs.GPASET.bit.GPIO13 = 1;//开始测量时间 EDIS; _asm (" IACK #0x0002");//start CLA-Task2 } // INT11.2 __interrupt void CLA1_INT2_ISR (void)// CLA { EALLOW; GpioDataRegs.GPACLEAR.bit.GPIO13 = 1;//停止测量时间 EDIS; PieCtrlRegs.PIEACX.ALL = PIEACK_group11; }
此代码需要计算的主要时间。 有一些分部。 但为什么 CLA 中的这种速度要快得多?
Δ_Z_o =((Ch)*(P_Z_o -(Δ_Z_o_n1 / RJC)* deltat)+Δ_Z_o_n1;
Δ_Z_o_n1=Δ_ZK_o;
此公式被调用6次(也与其他变量一同调用)。
编译器优化不会影响速度。
您是否对如何实现这一目标有一些想法?
谢谢你。
此致
Markus