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.

[参考译文] TM4C123GH6PM:FPU 计算

Guru**** 2481465 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/703255/tm4c123gh6pm-fpu-calculations

器件型号:TM4C123GH6PM

您好!

使用 FPU 和 Keil uVISION 5时遇到问题、

当我定义局部变量时、FPU 计算完成、我可以在浮点寄存器中看到结果、但声明变量的值保持为0、

但是、如果它是全局变量、数组 、或者我将 volatile 关键字与局部变量一起使用、则可以正常工作。

我在这里缺少什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不熟悉 Keil 编译器、但从您的描述中、似乎没有必要将结果存储在您的局部变量中、以便代码进行正确的比较并返回状态。 这可能只是优化器的效率。 除了能够检查局部变量中的结果之外、函数是否返回正确的响应?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢、

    否、函数不会返回正确的响应、优化级别为0。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这很不可能是 Cortex M4 FPU 问题。 如果您认为这是一个编码问题、您能否提供一个小型测试用例? 如果您认为这是编译器问题、则需要联系 Keil。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我通过 FPU 寄存器跟踪了这些数字、发现它实际上正确执行了代码中的所有计算、并且它实际上返回了由于某种原因在观察窗口中不可用的正确值、因此我将与 Keil 联系。

    感谢你的帮助。