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.

[参考译文] TMS570LC4357:浮点溢出和下溢检测

Guru**** 2465890 points
Other Parts Discussed in Thread: TMS570LC4357

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1080522/tms570lc4357-floating-point-overflow-and-underflow-detection

部件号:TMS570LC4357

您好,

我们的项目使用浮点计算,结果是我们需要检查溢出和下溢。 我尝试了包含<fenv.h>库,我可以验证该库是否是编译器核心库的一部分,但溢出和下溢异常不会被激发。 打开  FENV_ACCESS(ON)#pragma 也不起作用,CCS 发出警告,指出#pragma 无法识别。

我想知道是否有生成的中断向量,或者可能有一些寄存器标志可以被读取以检测溢出/下溢?

如果有用,则需要更多信息-使用的编译器是 TI v20.2.0.LTS。

谢谢你,

詹姆斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="395253" url="~/support/icros/arm-based 微处理器组/基于 ARM 的微控制器/f/基于 ARM 的微控制器-forum/1080522/tms570lc4357 -浮点溢出和下溢检测"]我想知道是否有生成的中断矢量或可能需要读取/引用的流量标志?]

    浮点状态和控制寄存器 具有以下标志,用于指示是否发生溢出或下溢以及其他一些浮点“错误”:

    [7] IDC 输入次法累积标志,重置为零
    [4] IXC 不准确的累计标志,重置为零
    [3] UFC 欠流累积标志,重置为零
    [2] 运营中心 溢出累积标志,重置为零
    [1] DZC 除以零累计标志,重置为零
    [0] 海委会 操作累积标志无效,重置为零

    C15辅助控制寄存器 具有  IXC, OFC, UFC,IOC, DZC 和 IDC 位,可设置这些位以将 上述浮点“错误”传播到 FPU 信号

    浮点异常处理 解释了 FPU 信号如何用于生成 VIM 中断。  在 TMS570LC4357 VIM 通道47上,FPU 中断。

    我还没有测试浮点溢出/下溢的检测,但有一个现有项目测试了在 FPSCR 中生成浮点除数为零的设置 DZC 标志。  切·斯特-吉隆/E2E_Example_Projects·GitHub 中的 E2E 项目/HL_sys_main.c 包含一个修改,该修改说明在浮点除零时获得中断。 在第1次通过时,不启用中断,但在第2次和后续迭代上,将启用中断。

    使用内联汇编器语句意味着代码不是生产质量,但可能会有所帮助。

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

    感谢你的答复。 示例项目正是我所需要的,我只是更改了溢出和下溢寄存器位的常量。  

    —詹姆斯