器件型号: TMS320F280039C
我知道、本质上、CLA 和 CPU 对于浮点数具有不同的舍入模式、CLA 会截断该数字、并且可以进行更改以匹配 CPU 的功能。
用于更改模式的汇编指令:
__asm(“ MSETFLG RNDF32=1“);
我想知道 CLA 默认为截断而不是 CPU 舍入模式是否有具体原因。 我主要关心的是启用 RNDF32 是否对 CLA 有任何有意义的性能影响。 在我的应用中、额外的精度很有用、因此如果没有明显的缺点、我希望启用它。
该问题出现在 CLA 上执行的以下代码行中:
其中、我的 freq 等于 1000000、DEVICE_SYSCLK_FREQ 等于 C2000 ((uint32_t)(((20000000UL)* 48)/(2 * 4 * 1)))。
pwmPeriodTicks 在 CPU 中等于 120、但在 CLA 中变为 119。
我的问题是:
出于性能原因、默认的 CLA 截断行为是否有意为之?
启用 RNDF32=1 时是否会造成任何有意义的性能损失?
是否作为保持 CLA 和 C28x 结果一致的建议方法启用 RNDF32?