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.

[参考译文] TMS320F280049C:从 COFF 迁移到 EABI 所需的执行时间更长

Guru**** 2515435 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1563485/tms320f280049c-much-more-execution-time-from-migration-from-coff-to-eabi

器件型号:TMS320F280049C


工具/软件:

您好 Champ、

我要找我的客户。

它们以前在 F280049C 上使用 COFF 输出格式、并且正在迁移至 EABI 输出格式。

使用相同的代码段、将  COFF 更 改为 EABI 时、同一 ISR 的执行时间、EABI 比 COFF 花费的时间长 4 倍。 编译器选项 级别设置为“关“、因为使用 COFF 的旧映像是固定的、无法更改。

阅读下面 html 中的迁移指南、我们会想到的可能影响只是双精度数据类型长度的变化(32 位-> 64 位)、可能会影响代码执行时间。  

https://software-dl.ti.com/ccs/esd/documents/C2000_c28x_migration_from_coff_to_eabi.html

除此之外、还需要注意哪些其他方面、或者使用 EABI 格式时、其他方面可能会导致执行时间延长? 预期是否会明确列出所有影响因素?

谢谢。此致、

Johnny

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

    您好 Johnny、

    您能否确认项目设置中是否包含此设置?

    --float_operations_allowed=32  

    请注意、 double 在 EABI 模型中、浮点类型为 64 位宽、在 COFF ABI 模型中为 32 位宽。 要使您的代码可在 COFF ABI 和 EABI 之间移植、应将 32 位浮点变量声明为 float、而不是 double

    如果您已完成此操作、请告诉我。

    https://software-dl.ti.com/C2000/docs/optimization_guide/phase1/index.html 请参阅此内容以详细了解数据类型对性能的影响。

    此致、

    Ozino