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

Guru**** 657500 points
Other Parts Discussed in Thread: TMS320F2800137, C2000WARE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1296563/tms320f2800137-fastintdiv

器件型号:TMS320F2800137
主题中讨论的其他器件: C2000WARE

tms320f2800137是否支持 FASTINTDIV?可以查看哪个数据表?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Youjun:

    我们未在数据表中明确记录任何器件的 FASTINTDIV、但 F280013x 似乎确实支持 FASTINTDIV (您应该能够使用"工程属性"中的-idiv_support 编译器选项来启用它)。 FASTINTDIV 仅 在 FPU32或 FPU64可用时才可用(此器件就是这种情况、您只需将--fpu_support 配置为 fpu32并将--abi=eabi)。

    此致、

    阿米尔·奥马尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    FASTINTDIV 必须使用 stdlib.h?例如

    c = a/b;

    c = modulo div i16 byi16 (a、b)

    有两个数学的词效应吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我在 c2000ware5.0中测试 f280013x 中的 fastintdiv_example、仿真结果:passcount = 0且 Success = 0;

    为什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否有两个关键的术语效果?

    否、modulo 采用 a 和 b 的取模、其中两个变量都是16位整数。 示例的第一行是正态除法、第二行是模数。

    并在 c2000ware5.0中测试 f280013x 中的 fastintdiv_example,仿真结果:passcount = 0且 Success =0;

    您是否确保 已正确配置 idiv_support? 如果您手动单步执行代码、您能看到 具体的错误结果吗? 您能否逐步介绍汇编代码、以确保寄存器按预期更改?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    从示例中导入 CCS 工程、并且不更改任何配置、仿真结果:passcount = 0且 Success = 0;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    根据示例中的一些测试、似乎每当使用变量进行除法运算时、除法/模数运算就不能正确执行。 出于某种原因、反汇编过程显示有一个 很小的数字乘以除数:

    我使用的代码是:

    int16_t a = -512;
    int16_t b = 20;
    int32_t res = 0;
    
    res = a / b;
    res = -512 / 20;

    由于某种原因、使用字面值是可行的、但使用变量会 使编译器输出使除法0的结果的代码、这就是所有测试都失败的原因。 我不确定这是为什么发生的、我会将此问题转发给编译器专家、因为这看起来与此特定 C2000Ware 示例并无关。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好,找到原因并及时告诉我

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我已经确认 F280013x 和 F28004x 器件上发生了这个问题、可能是这些器件实际上没有 FASTINTDIV 支持(如数据表特性页面所示、其中 F2838x 器件等器件确实具有该列表)。 我将确认这一点、并尝试更新 FASTINTDIV 库的示例列表。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Youjun:

    我已确认包含 FASTINTDIV 支持功能的器件是 F2838x、F28002x、F28003x 和 F28P65x。 其他器件不提供此支持、选择 idiv0时应该会显示警告。 我将与软件团队一起解决这个问题。 如果您有其他问题、请随时提出、我将关闭此帖子。