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.

[参考译文] TMS320F28P650DK:F28P65和 F28374之间的代码执行效率差异

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1517625/tms320f28p650dk-code-execution-efficiency-difference-between-f28p65-and-f28374

器件型号:TMS320F28P650DK
Thread 中讨论的其他器件:C2000WARESysConfig

工具/软件:

您好专家

客户正在  将其控制代码从 F28374迁移到 F28P65、他们发现相同的 CPU 中断可以在 F28374中完成50us 中断、但在 F28P65中无法完成、该中断主要用于反向器控制浮点加、浮点*、sin 和 cos、下面的显示了优化器设置:

客户想了解为何使用相同设置、F28P65代码执行效率低于 F28374

此外、是否有任何权变措施可以提高 F28P65代码执行效率但保持优化级别关闭。

F28P65DK

F28374

谢谢

Joe

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

    您好 Joe、

    听起来设备迁移可能没有成功。 您能让客户使用其中一个 C2000Ware 示例迁移代码吗? 我怀疑某些工程属性和器件设置可能无法正确计算。 例如、浮点和 CLA 支持定义不正确。 它应该是 cla2和 fpu64。

    如果使用空工程、则应能够复制粘贴代码并开始优化。

    此致、

    Ozino

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

    嗨、 Ozino

    感谢您的答复。 我还有几个问题需要澄清如下:

    1.我在演示项目中发现,虽然 CLA 设置为 cla2,但在 sysconfig 设置和 initcla()函数中,仍然使用 CLA1。

    2.想确认客户是否应将 cla1_math_library_dataom_fpu32_eabi.lib 更改为 fpu64? 客户是否应该将 f28P65xCPU1_CLADATAROM_Symbols_fpu32.lib 更改为 fpu64?

    3.有没有文档可以指出为什么我需要使用 F28P65将项目处理器选项设置为 cla2和 fpu64、这些设置有什么含义?

    谢谢

    Joe

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

     您好 Joe、

       有关可用于所选 CLA 和 FPU 的库的更多信息、请查看 CLAmath 用户指南的第4.1节库构建配置。  

    E2E、详细介绍了更多内容: (+) TMS320F28P650DH:CLA 数学库在 C2000 Ware 版本5.00中无法正常运行- C2000微控制器论坛- C2000Tm︎ 微控制器- TI E2E 支持论坛

    更多有关 F28P65x 上提供的 FPU 支持的信息、请参阅本文档、其中总结了支持的器件特性。

    2.3.11 TMS320F28P65x 外设 https://www.ti.com/lit/ug/spru566t/spru566t.pdf 

    本文档进一步说明了两种 FPU 类型之间的架构差异: https://www.ti.com/lit/ug/spruhs1c/spruhs1c.pdf 

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

    嗨、 Ozino

    将处理器选项设置更改为 FPU64和 CLA2后、CPU 执行效率将得到提高、但在--opt_level off 中相同的 C 语句代码仍无法达到 F28374级别。 我认为 CLA2与 CPU 中断执行没有关系、因此我有以下问题:

    1.是否有任何其他设置可在--opt_level 关闭的情况下提高 F28P65代码执行效率?

    2.为什么要将 FPU 设置为 FPU64 ? 我在文档中看到、F28P65 FPU 是32位和64位兼容的、并且客户在实践中使用32位浮点计算。

    谢谢

    Joe

      

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

    嗨、 Ozino

    您能帮我们详细了解一下这个主题吗?

    谢谢

    Joe

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

    Joe、

    由于代码来自 fpu32器件、我建议使用

    1. 处理器选项:
      1. float_support = fpu32
      2. tmu_support = tmu2
    2. 过程
      1. FP_MODE =宽松
      2. fp_reassoc =开启
    3. 在高级选项下、语言选项  
      1. 设置--float_operations_allowed = 32
      2. 选中"将浮点常量视为单精度"复选框

    (3)下的项目将有助于确保所有内容都是32位浮点。 如果工程从 COFF 导入到 EABI、这可能是一个问题。  如果遇到任何问题、客户应根据 COFF 至 EABI 的移植指南进行修复。

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

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

    嗨 Lori

    根据您的指导、客户报告了2个问题:

    1. 客户进行更改后,编译器会报告问题

    2.没有仅 TMU2 TMU0和 TMU1:

    您是否遇到过此问题和任何解决方法?

    谢谢

    Joe

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

    您好 Joe、  

    对于(1)  

    我 无法使用 编译器 v22.6.2.LTS 重现此问题。 他们使用的是哪个版本?

    此类#define 的数学运算发生在编译时、而不是运行时、因此不会引入额外的周期。

    对于(2)个辐照度、TMU 在 28002x、28003x、28P55x、28P65x 器件上为1类

    (3)我应该提到、P65也有增强整数除法(--idiv_support = idiv0)