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.

[参考译文] TMS320F28069F:InstaSPIN 项目和实验:Lab10c:有关 user.c 文件的一些问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/865514/tms320f28069f-instaspin-projects-and-labs-lab10c-some-questions-on-the-file-of-user-c

器件型号:TMS320F28069F

您好!

我对 InstaSPIN 项目和实验室有疑问。

具体而言、它位于 Lab10c-an 中的空间矢量调制示例中、使用 fpu32。

我对 user.c 文件有一些问题、如下所示。

----------------------------------------------------

第一 个问题。

在 user.c 文件中、列出了以下#ifdef 语句:

#ifdef __TMS320C28XX_FPU32__

似乎已在项目中的某个位置定义了__TMS320C28XX_FPU32__的符号,因为此行旁边的 C 语句已声明有效。

但是、我无法找到定义符号__TMS320C28XX_FPU32__的位置 。

此外、该符号不会列在 Project Properties 的 Predefined Symbols 窗口中。

 符号__TMS320C28XX_FPU32__在哪里定义?

第二个问题

在 user.c 文件中进行了如下说明:

 //调用返回浮点值的 EST_functions 且启用了 fpu32时、需要使用整数作为返回值
 //以便编译器从累加器而不是 fpu32寄存器读取返回值

如果编译器从 fpu32寄存器读取返回的值、会出现什么问题?

 第三个问题

user.c 文件中列出了以下 C 语句

其他
 LS_d = EST_getLs_d_h (obj->estHandle);

 LS_q = EST_getLs_q_H (obj->estHandle);

 Rs = EST_getRs_Ohm (obj->estHandle);
#endif

在这种情况下、编译器似乎从 fpu32寄存器读取返回的值。 不是吗?

例如,文件 est.h 中给出了函数 EST_getLs_d_d_H ()的原型,如下所示:

extern float_t EST_getLs_d_h (EST_Handle handle);

----------------------------------------------------

感谢您的指导。

此致、

JS Yoo

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

    1.  如果在工程属性中启用了 fpu32 (--float_support=fpu32)、则_TMS320C28XX_FPU32__由 C2000编译器自动设置。

    2.不同的 FAST 库用于浮点、因此需要进行此转换。

    从 Q2开始、这是来自 FAST 库的。