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.
在我的应用中、我正在尝试加快 CPU1 CLA 中的代码执行速度。
在 cla_iir2p2z_cpu01示例之后、我最初将所有变量都设置为 float 值。
但是、有些标志变量不需要为32位宽浮点值。
我已将这些内容更改为"unsigned int"、程序停止工作。
这是共享结构中的简单更改。
===
typedef 结构{
float CLA_sin θ;
float cpu2cla_d;
// unsigned int cpu2cla_SP; <--不起作用
// unsigned int cpu2cla_sn; <--不起作用
float cpu2cla_SP; <--正常工作
float cpu2cla_sn; <--正常工作
} CPU2CLA;
extern CPU2CLA cpu2cla; //在共享头文件中
===
在 CPU1 .c 文件中:
#pragma DATA_SECTION (cpu2cla、"CpuToCla1MsgRAM")
CPU2CLA cpu2cla;
===
然后将 SP 和 SN 标志复制到一个内部结构中:
===
在 cla1.cla 文件中:
conv_sim.d = cpu2cla.cpu2cla_d;//输入
conv_sim.sn = cpu2cla.cpu2cla_SN;//输入 .... 在两个浮点值时有效、但在两个无符号整型值均无效时无效
conv_sim.SP = cpu2cla.cpu2cla_SP;//输入.... 在两个浮点值时有效、但在两个无符号整型值均无效时无效
(笑声)
在共享头文件中:
浮点 TSW;
浮点 TS_STEP_TO_TSW_Ratio;
float theta_increment;
// unsigned int SN; <--不起作用
// unsigned int SP; <--不起作用
float SN; <--正常工作
float SP; <--正常工作
} CONV_SIM;
===
在.c 文件中:
#pragma DATA_SECTION (conv_sim、"CLADataLS0")
conv_sim conv_sim;
===
CPU1将正确的值写入 cpu2cla.cpu2cla_SN 和 cpu2cla.cpu2cla_SP、但这些值不会反映在仅 CLA 的结构 CONV_SIM 中
在 CPU1和 CLA 之间的共享结构中混合整数和浮点数是否有任何限制?
您好、Tomas、
我不是 TI 员工、但我在 TMS320F28377D 方面做了很多工作。
CLA 不支持16位整数、因此只需使用32位整数(在此处理器上键入 uint32_t、这是一个无符号长整型)
希望它能帮助你! ;)
Arthur
尊敬的 Arthur:
是的、这就是它的表现!
TRM 指出:"控制律加速器(CLA) 1类是独立的、完全可编程的32位浮点
为 C28x 系列带来并发控制环路执行的数学处理器。"
当然、我认为如果协处理器支持32位宽的数字、它肯定也支持16位宽的数字。
谢谢、问题已解决。
是的、我知道、在 TRM 中获取所需信息通常很困难。 ;)