在我的应用中、我正在尝试加快 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 之间的共享结构中混合整数和浮点数是否有任何限制?