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.

[参考译文] AM5716:MATHLIB_RTS_C66X 问题

Guru**** 2931500 points

Other Parts Discussed in Thread: MATHLIB, AM5716, OMAP-L138

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/648765/am5716-mathlib_rts_c66x-issue

器件型号:AM5716
主题中讨论的其他部件:MATHLIBOMAP-L138

我的 CCS 工程中的 main.c 文件如下:

#include

void main (void)

  //此函数调用不会返回。
  float 结果= fmodf (float) 90.0、(float) 45.0;

  //这里的除法只是为了使 divsp 从 mathlib_rts.ae66链接。
  //如果注释掉此行,则不会使用 mathlib_rts.ae66,并且将返回 fmodf()调用。
  float test =结果/(float) 1.0;

我发现  、当向该函数提供某些参数时、来自 RTS 库(C:\ti\ccsv7\tools\compiler\ti-cgt-C6000-C6000_8.2.1\lib\rts6600_elf.lib)的 fmodf 函数永远不会返回。 我仅在函数的返回值为零(即除法的其余部分为零)时才看到这种情况。 当  RTS 库中的__c6xabi_divf 函数链接到可执行文件时,我没有看到这种情况--我只看到   MATHLIB_RTS 库中的 DIVSP 函数覆盖了__c6xabi_divf 函数时发生的情况。 它可能与 MATHLIB 除法函数的精度与 RTS 库除法函数的精度有关。

我希望 TI 可以使用我的 CCS 项目重现此情况、并确认是否存在针对此错误的权变措施。 提前感谢您的帮助。

此致、
Dave

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

    e2e.ti.com/.../fmodf_5F00_test.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RTOS 团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    为了确保我了解这个问题、对于某些输入值、如果在 fmodf 之后调用了 divsp、则 fmodf 不会返回。 如果 fmodf 后没有除法调用或对__c6xabi_divf 的调用,则 fmodf 会返回。 是这样吗? 谢谢。

    Yimin

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

    您好、Yimin、

    要使问题发生,就不需要在    fmodf 之后调用 divsp --唯一的要求是   MATHLIB_RTS 库中的 divsp 函数会覆盖   RTS 库中的__c6xabi_divf 函数。

    我在测试程序中使用除法的原因是、我发现   MATHLIB_RTS 库中的 DIVSP 函数  在没有除法的情况下不会覆盖__c6xabi_divf 函数。 无论您如何操作、只要   MATHLIB_RTS 库中的 DIVsp 函数覆盖   RTS 库中的__c6xabi_divf 函数、函 数调用 fmodf ((float) 90.0、(float) 45.0)就不会返回。

    换言之、要发生该问题、您需要在链接器映射文件的.text 输出段中看到以下内容:

    mathlib_rts.ae66:divsp.oe66 (.text)

    我希望这能清除问题、但我很乐意回答您的任何其他问题。

    谢谢、
    Dave

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

    为了便于参考、我使用以下处理器、编译器和 MATHLIB 组合重现了此错误:

    处理器 编译器 MATHLIB
    AM5716 8.2.1 C66X-MATHLIB 3.1.2.1
    C6674 8.2.1 C66X-MATHLIB 3.1.2.1
    C6674 7.4.6. C66X-MATHLIB 3.1.1.0
    C6713 7.4.6. C67x-MATHLIB 2.1.0.0
    OMAP-L138 7.4.6. C674x-MATHLIB 3.1.0.0
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您对问题的详细描述以及提供重现问题的测试项目。 我们对由于缺乏资源而迟迟未能就此问题向您回复表示歉意。

    我们目前正在研究此问题、并与编译器团队合作找出问题的根本原因并提供修复方法。 我们将在接下来的1-2天内发布回复。

    此致、
    Rahul
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    只需发布此更新即可。 我们已经能够再现 CGT 7.4.16和 CGT 8.1.0的问题、并已将其报告给开发团队。 由于此库的主要开发者离开 TI、我们尚未能够找出问题的根源来提供修复。

    我将与团队合作、为您提供解决此问题的更准确的时间表。

    此致、
    拉胡
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Rahul、您好、很高兴您能够在您的结尾复制它 感谢您提供的最新信息、请继续向我发布。

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

    您好、Rahul、我想知道您是否有任何有关解决此问题的时间表的更新信息?

    谢谢、
    Dave

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

    我正就此问题与开发团队跟进。 n`t,由于该图书馆的主要开发人员流失,他们今年上半年将推出新的版本。 目前、他们的发布计划与2018年第3季度发布的版本一致。

    请n`t 此计划是否适合您、我们可以尝试查看是否可以优先解决此问题、以便为您提供补丁、而不是完整版解决此问题。

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

    Rahul,我现在可以通过调用 FMod()而不是 fmodf()来解决这个问题。 幸运的是、此调用不在我们代码中对时间要求特别严格的部分、因此可以接受此变通办法。 我仍然希望最终返回使用 fmodf(),但我可以等待完全释放。 是否有可用于跟踪修复程序的问题编号?

    谢谢、
    Dave