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.

[参考译文] TMS320F28377S:如何在主控制器和 CLA 之间共享/重用代码

Guru**** 2595805 points
Other Parts Discussed in Thread: C2000WARE-DIGITALPOWER-SDK, TIDM-1000, TIDM-1007, TIDA-01604

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/769853/tms320f28377s-how-to-share-reuse-code-between-main-controller-and-cla

器件型号:TMS320F28377S
主题中讨论的其他器件:C2000WARE-DIGITALPOWER-SDKTIDM-1000TIDM-1007TIDA-01604

如何在主代码和 CLA 之间重复使用代码?

是否有一种智能的方法来组合文件、以便我可以在两个平台上使用它?

谢谢、

 EV

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

    我不确定您到底要问什么。

    C28x 和 CLA 需要不同的编译器、因为它们具有不同的 ISA。 如果您希望使用可以为每个代码编译的代码、我认为您必须将其放入头文件中、并共享将该头文件包含在.c (C28x)文件和.CLA (CLA)文件中。

    否则、为 C28编译.c 文件、为 CLA 编译.cla 文件。

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

    [引用用户="Sal Pezzino]Hi、

    我不确定您到底要问什么。

    C28x 和 CLA 需要不同的编译器、因为它们具有不同的 ISA。 如果您希望使用可以为每个代码编译的代码、我认为您必须将其放入头文件中、并共享将该头文件包含在.c (C28x)文件和.CLA (CLA)文件中。

    否则、为 C28编译.c 文件、为 CLA 编译.cla 文件。

    希望这对您有所帮助、
    SAL

    [/报价]

    我有一个库、其中包含我也喜欢在 CLA 中使用的功能。 因此、我必须维护一个源树。 CLA 无法做到这一点。

    我无法在 CLA 中使用.c 文件、但当我将代码复制或包括到.CLA 文件时、我收到了以下错误消息:

    错误#10056:重新定义符号"_IIR_CalcFO系数":首先在"./CLA/IIR_Filters.obj 中定义

    因此、我必须将代码复制到 CLA 文件并重命名所有调用以使其正常工作。

    因此、CLA 和主编译器是分开的、但命名方式不能相同。

    我尝试解决此问题:

    -- IIR_Filters.CLA 文件----

    #include "CLAmath.h"
    #include "Motorctrl/IIR_Filters.h"
    #define cos    CLAcos
    #define sin    CLAsin
    #define exp    CLAexp

    #include "Motorctrl/IIR_Filters.c"

    但它不起作用。

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

    我同意 Sal 的说法、唯一可以实现这一点的方法是通过头文件、每个东西都是静态内联函数。

    然后 C28x 在 C28x 上看到调用时对其进行编译、CLA 编译器在 CLA 上看到调用时对其进行编译。

    我们有一些相关示例、

    请参阅:
    C2000Ware-digitalpower-SDK

    解决方案 TIDM-1000、TIDM-1007和 TIDA-01604

    所有这些器件都使用相同的源代码、并且可以在 C28x 和 CLA 上运行。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果你真的有一个单独构建的.lib、你必须为 CLA 或 C8x 使用不同的名称来构建它们、你可以为此使用一个@ifdef 东西。 您也将在上面提到的参考代码中看到这一点。