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.

[参考译文] AM2632:比较两个浮点值时出现软件错误?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1493970/am2632-sw-bug-when-comparing-two-float-values

器件型号:AM2632

工具/软件:

团队、

我们的客户可能发现他们在 TI AM263x SDK 软件中观察到了一个新错误。  在比较两个浮点值的 IF 条件下、这些函数如下所示:

 

这种前提条件应该始终是真实的、但他们注意到、有时会遇到 其他部分 尽管用户可以看到 tmp 值为 4098360 也就是  显然小于他们将其与之比较的值。  以下是汇编代码和 FPU/CPU 寄存器的一些屏幕截图。

 

 

 

他们使用的是 TI ARM CLANG 编译器版本3.2.2 LTS。  

 请告诉我们您的想法。

CY、
CY

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

    很抱歉耽误你的时间。  对于包含 Problem if 语句的源文件、 请按照 如何提交编译器测试用例一文中的说明进行操作。

    谢谢。此致、

    -乔治

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

    您好、George、

    我们正在努力收集您在上面提到的客户的其他信息。  然后、我将按照您的指示离线提交此内容。  在此期间的任何评论当然都受到欢迎。

    谢谢您、

    Chris

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

    您好、George、

    遵循您的指导(在此链接旁边)、客户通过离线电子邮件向您提供了以下信息:

    如何提交编译器测试用例

    如果客户希望根据您的评论添加备注等、我们仍将此主题保持打开状态。

    CY、
    Chris

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

    客户提供了提交测试案例所需的部分。  但并非全部如此。  我在等其余的。

    谢谢。此致、

    -乔治

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

    George、

    为确保本 E2E 主题的完整性、该信息于6月4日以电子邮件形式离线提供。

    • 您的编译器优化设置是什么?

    O1.

    • 您是否有充足的栈和 RAM 内存分配?

    我认为、我们尝试将堆栈大小翻倍、但这并没有解决问题。

    • 栈和堆(如果使用)是否正常?

    据我们所知、堆栈正常。 我们试图键入浮点变量,这似乎已经解决了问题,我想提请您注意寄存器 FPSCR,在我们的屏幕截图中,寄存器值为零。 在浮点比较后、它应该有一个值。

    • TI MCAL 层下运行、在本例中是不是?

    是的、我们使用 TI MCAL 层。

    1. 预处理的源文件

    让我检查一下是否可以共享源文件并返回给您。

    1. 编译器版本

    TI-ARM Clang 编译器3.2.2 LTS

    1. 使用的编译器选项

    此离线电子邮件还包含编译器选项文件(cc_options.opt)

    [TI ]我们知道编译选项对于重现问题非常重要。  但我们也需要源代码。  如果没有它、我们就看不到如何推进这一问题。   

    我们再次向客户请求。

    CY、

    Chris

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

    OK 团队、

    令人震惊的是、关于浮点比较问题。  客户发现我们需要启用" 任务使用 FPU "选项、该选项似乎已解决问题。

     在调查该问题时、他们还将 TI ARM CLANG 编译器版本从3.2.2 LTS 更新为4.0.2、虽然这没有解决该问题、但他们曾经看到 ADC 读数的一些波动、在更新编译器后、这些波动变得更加稳定。 他们会将调查结果添加到论坛帖子中、我们可以关闭这个问题。 谢谢你。  

    尽管如此、我们欢迎确认这确实解决了最初的问题。

    CY、
    Chris