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.

[参考译文] AM2434:未触发 FPU 异常

Guru**** 2392915 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1472196/am2434-fpu-exceptions-not-triggered

器件型号:AM2434

工具与软件:

我已尝试使用以下代码启用 FPU 陷阱:

vmrs r0、fpscr
MOVW R1、#0x9F00
MOVT R1、#0x03C0
BIC r0、r0、r1
MOVW R1、#0x0700
MOVT R1、#0x0100
Orr r0、r0、r1
vmsr fpscr、r0

但是、 FPSCR 的值不会相应地改变、并且  在产生 FPU 异常(例如除以零)时不会触发陷阱。

我已经确认、在我的除以零测试中将执行运算符加载和除法指令、但是 INF 被生成为输出并且不触发异常。

我应该如何继续启用 FPU 陷阱?

此致、
Luís μ A

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

    尊敬的 Luis:

    感谢您的耐心。

    但是、 FPSCR 的值不会相应地改变、并且  在产生 FPU 异常(例如除以零)时不会触发陷阱。

    请尝试启用 -ffast-math 标记配置 PMBus 的消息。 才能启用 -ffast-math  标志、断开 工程属性。

    导航至 Tools -> Arm Compiler -> Optimizations、  选中-ffast-math 选项以启用它。

    请参阅下图。

    此致、

    Tushar

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

    我实际上没有使用 CCS。 您能否详细说明此选项的效果以及 预期它将如何 影响例外的产生?

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

    您好!

    可以在示例的 makefile 中添加标志。

    请参阅下图。

    此致、

    Tushar

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

    实际上、我也不使用 CCS 提供的编译器。 我正在使用的编译器没有此选项、因此我需要知道标志的函数以及 它 在产生异常时可能发挥的作用。

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

    尊敬的 Luis:

    除了 MCU+SDK 官方文档中推荐的编译器问题外、TI 将无法为您提供帮助。  

    我只能为您提供有关-ffast-math 标志的详细信息、该标志告诉编译器通过假设浮点数学运算来执行激进的 FPU 算术运算。

    有关详细信息、请参阅 cmdopt-ffast-math

    关闭螺纹。

    此致、

    Tushar