我有一个工程(两个不同版本)、两者都使用相同的编译器进行编译(22.6.0.LTS);在这两个工程中、我有一行代码在这两个工程之间生成不同的结果。 此问题不是与这行代码隔离的、我们只是选择这行代码作为问题的示例。 代码行如下:
MULT = 1 -(ABS (gMotorVars.Speed_Hz)/(gUserParams.motor_baseFreq/2));
// mult 是局部变量、并且 gMotorVars 和 gUserParams 以及 mainISR 的位置在两个版本之间完全相同。
我们比较了编译器/链接器设置、甚至研究了生成的汇编器(两个版本之间的情况不同)。 我们使用了来自断点计数事件的时钟周期评估、而时钟周期为313与1378。 我们还使用了 GPIO 和示波器来评估执行时间、并且能够看到两个项目之间的执行时间是执行时间的4倍。
我们使用 Code Composer 11.2.0.00007.
我们不知道接下来在哪里查找版本差异的原因。
非常感谢您的帮助和参与。
桑迪