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.

[参考译文] CCS/TMS320F280025:除法运算无法在 fastRTS 中运行

Guru**** 2539500 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/920430/ccs-tms320f280025-division-operation-cannot-run-in-fastrts

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

工具/软件:Code Composer Studio

您好、香榭丽舍

在"C:\ti\c2000Ware_3_02_00_00\driverlib\f28002x\examples\ePWM"中的"ePWM_ex1_trip_zone"工程中、已针对使用 fastRTS 设置以下配置:

然后在"epwm_ex1_trip_zone.c"中添加以下定义:

浮点 X1 = 5.0;

浮点 X2 = 15.0;

浮动 X3、X4;

并在 main()开头添加以下句子:  

X3 = X2/X1;

x4 =正弦(X1);

编译后、可以在".map" 文件中找到"sinf"操作已位于"rts2800_fpu32_fast_f늹 补_eabi.lib"中:

0000ad24 00000034 rts2800_fpu32_fast_addrate_eabi.lib:sin_F32.obj (.text)

但是"/"操作始终位于"rts2800_fpu32_eabi.lib"中、并且不能位于"rts2800_fpu32_fast_f늹 up_eabi.lib"中的"FS$DIV"中、如 fastRTS 手册所述:

0000aa53 00000088 rts2800_fpu32_eabi.lib:fs_div28.asm.obj (.text)

使用的"rts2800_fpu32_fast_f늹 ulate_eabi.lib"来自"C:\ti\c2000Ware_3_02_00_00\libraries\math\FPUfastRTS\c28\lib"。 CCS 版本为10.0.00010、编译器版本为 v19.6.0.STS。

请提供帮助吗? 谢谢!

此致、

Linda

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

    添加 另一个配置图片:

      

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

    Linda、

    让我为您探讨一下这一点(为什么 sinf 调用 FPUFastRTS 库、但/不调用)、但在 F28002x 上、您应该同时在 TMU 上执行 Trig 和/操作(--tmu_support = tmu1)。 您为什么不这么做? 这将比 FPUFastRTS 库快10倍。

    谢谢、

    Sira

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

    您好 Sira、

    请您就 FPUfastRTS 问题提供帮助吗? 谢谢!

    此致、

    Linda

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

    Linda、

    好的、我会在一天左右的时间内回来。

    谢谢、

    Sira

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

    Linda、我查看了生成的.asm、我看到了对 RTS 库中 c28xabi_divf 的调用。 实际上、即使是 FastRTS 除法示例也会出现相同的问题。 我会继续研究这个问题、并会再给您回复。

    谢谢、

    Sira

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

    Linda、

    我的同事 Himanshu 研究了这个问题并发现了潜在的错误。

    在 FPUFastRTS 库的 div_F32.asm 文件中、在.asg 指令指向__c28xabi_divf 之前调用 FS$$DIV 的全局指令、这就是为什么它不会解析到 fastRTS 库的原因。 您能否进行更改、重建库、在项目中使用它、并查看它是否解决了问题?

    请告诉我。

    谢谢、

    Sira

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

    我在测试中确认这可以解决问题。 我将提交一份 JIRA、以便在下一个 C2000Ware 版本中修复此问题。 您可以在结尾处使用此修复程序

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

    您好 Sira、

    感谢你的善意帮助。

    仍有以下问题:

    1) 1)如何修改"div_F32.asm"文件? 您能详细解释一下吗?

    2) 2)文件夹"C:\ti\C2000Ware_3_02_00\libraries\math\FPUfastRTS\c28\ccs\fpu32_f快速 补码"中有一个名为"rts2800_fpu32_fast_00\libraries\math\FPUfastRTS\c28\fcpu32\fpu32"的项目、在编译后将生成"rts2800_f_fpu32_fast_lib_fastlib_codest_libraries\rts\cfast32\fast\fastlib_lib_libraries\rts\cfast32\fast\f_lib_libraries"、但无法在"rts\cf_libraries\rts\cf_lib_cpu32

    请提供帮助吗? 谢谢!

    此致、

    Linda

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

    Linda、

    我已粘贴到更正后的 div_F32.asm 部分下方。 这位于文件本身的开头。 您可以将其粘贴到文件中。

    页面
    .text
    .if __TI_EABI
    .asg __c28xabi_divf,FS$$DIV
    .endif
    .global fs$$DIV

    此外、您还可以查看项目的 COFF 版本。 您将需要 EABI 构建配置(ISA_C28FPU32_EABI)。 这将构建新的_eabi.lib。

    我正在为您的 referencee2e.ti.com/.../rts2800_5F00_fpu32_5F00_fast_5F00_supplement_5F00_eabi.lib 附加新文件

    谢谢、

    Sira

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

    您好 Sira、

    现在问题已经解决了。 非常感谢您的友好帮助。

    此致、

    Linda