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.

[参考译文] TMS320F28379D:使用 SFO 例程 PM F28379D 会使 FPU 上溢/下溢标志锁存

Guru**** 2540720 points
Other Parts Discussed in Thread: TMS320F28379D, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1407347/tms320f28379d-using-the-sfo-routine-pm-f28379d-causes-the-fpu-overflow-underflow-flags-to-latch

器件型号:TMS320F28379D
Thread 中讨论的其他器件: C2000WARE

工具与软件:

我拥有的器件是 TMS320F28379D、使用版本12.1.0.00007和版本4.02的 C2000Ware。

当运行 SFO 库函数时、浮点上溢和下溢标志锁存。 当我们首次开始使用 SFO 函数时、这似乎就发生了、在该函数中、我们调用 SFO 函数 a while 循环、直到它返回"SFO_complete"结果(如文档所建议的那样)。 很难分辨为什么会发生这种情况、因为 C2000Ware 中不提供 SFO 的源代码、但单步执行 SFO 的汇编指令会显示它们被锁存在"DIVF32"指令上、我在这里已经捕获了这些指令。

我想这不是预期的行为、因此我想知道是否有人知道会发生什么? 正如我所说、这似乎是在 SFO 完成其初始校准之前发生的。 我们似乎正在做使用 SFO 所需的一切(链接正确的 SFO 库、定义必要变量、并在初始化 HPWM 通道之前调用它)。  如果我需要提供更多信息、请告诉我、因为我肯定会遗漏一些我目前无法想到的必要背景。

谢谢!

-埃里克