主题中讨论的其他器件: C2000WARE
tms320f2800137是否支持 FASTINTDIV?可以查看哪个数据表?
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.
tms320f2800137是否支持 FASTINTDIV?可以查看哪个数据表?
您好、Youjun:
我们未在数据表中明确记录任何器件的 FASTINTDIV、但 F280013x 似乎确实支持 FASTINTDIV (您应该能够使用"工程属性"中的-idiv_support 编译器选项来启用它)。 FASTINTDIV 仅 在 FPU32或 FPU64可用时才可用(此器件就是这种情况、您只需将--fpu_support 配置为 fpu32并将--abi=eabi)。
此致、
阿米尔·奥马尔
是否有两个关键的术语效果?
否、modulo 采用 a 和 b 的取模、其中两个变量都是16位整数。 示例的第一行是正态除法、第二行是模数。
并在 c2000ware5.0中测试 f280013x 中的 fastintdiv_example,仿真结果:passcount = 0且 Success =0;
您是否确保 已正确配置 idiv_support? 如果您手动单步执行代码、您能看到 具体的错误结果吗? 您能否逐步介绍汇编代码、以确保寄存器按预期更改?
根据示例中的一些测试、似乎每当使用变量进行除法运算时、除法/模数运算就不能正确执行。 出于某种原因、反汇编过程显示有一个 很小的数字乘以除数:
我使用的代码是:
int16_t a = -512; int16_t b = 20; int32_t res = 0; res = a / b; res = -512 / 20;
由于某种原因、使用字面值是可行的、但使用变量会 使编译器输出使除法0的结果的代码、这就是所有测试都失败的原因。 我不确定这是为什么发生的、我会将此问题转发给编译器专家、因为这看起来与此特定 C2000Ware 示例并无关。