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:浮点问题

Guru**** 2618835 points

Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/935824/tms320f28379d-floating-point-questions

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

首先、在编写浮点算法时、我一直使用"float"类型。 我注意到、许多 TI 示例代码使用"float32_t"。 在 F28379D 等浮点处理器上使用浮点和 float32_t 时、有什么实际差异?

float a = 10.78;

//相对于

float32_t a = 10.78; 

其次、要使用 F28379D 浮点功能还需要执行哪些其他步骤? 我已将"-float_support"设置为"fpu32"、将"-fp_mode"设置为"relaxed"、似乎可以正常工作。 还有其他需要做的吗?

此主题 https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/621876?TMS320F28379D-Floating-point-operations-time-profiling-question 显示了以下附加步骤:

EALLOW;
Flash0EccRegs.ecc_enable.bit.enable = 0;
EDIS;

FPU_initSystemClocks();

FPU_initEPIE (); 

文件 :///C:/ti/c2000/C2000Ware_3_02_00_00/libraries/math/FPUfastRTS/c28/docs/FASTRTS_SW_LIB_UG.pdf 上的文档 看起来完全不同。 你可以帮我清除这个吗? 我认为、通过查看文档来了解不同的内容、甚至现在过时的内容、可能会使事情变得过于复杂。

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

    Euan、float32_t 是 float 的 typedef。 您的步骤就足够了。 唯一的缺点是包含正确的运行时支持库(RTS)。 在工程的链接器设置中、如果包含"libc.a"、则会包含正确的 RTS 库(例如 rts2800_fpu32_eabi.lib)。 任何其它需要完成的操作都由 C2000Ware 中针对特定器件的 device_init()完成。 您显示的其他步骤和 e2e 链接不是必需的。

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

    非常感谢您的观看。 我可以问、typedef-ing "float"到"float_t"的原因是什么? 这样、您是否知道任何在设备上使用_t 之后的数据类型都是安全的、而不是使用不受支持的 C 数据类型?

    此外、默认情况下、它看起来像是 libc.a 和 RTS2800都包含在内、因此我应该很乐意继续!

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

    仅出于可移植性目的-例如、double 是 Coff 格式的32位、而 EABI 格式的64位。