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/TMS320F28035:C2000Ware v2.00.02:28035_IQsampleC 示例

Guru**** 2526840 points
Other Parts Discussed in Thread: C2000WARE, CCSTUDIO

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/807987/ccs-tms320f28035-c2000ware-v2-00-00-02-28035_iqsamplec-example

器件型号:TMS320F28035
主题中讨论的其他器件:C2000WARECCStudio

工具/软件:Code Composer Studio

新的 SDK v2.0.0.2示例: 28035_IQsampleC

失败,出现以下错误:  

e2e.ti.com/.../build.log

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

    感谢您指出这一点。

    我们知道这一点(事实上、同一示例文件夹中的其他2个项目也会失败)-这3个构建故障是已知问题、甚至会作为发行说明的一部分进行捕获。

    问题是链接器命令文件在 SECTIONS 规范中专门使用 IQmath.lib、但 IQmath.lib 现在是索引库、而 IQmath_coff .lib 是已解决的库。 如果您仍然希望在不花费太多时间的情况下构建它、最快的修复方法是将链接器 cmd 文件中的 IQmath.lib 替换为 IQmath_coff .lib。 但理想的方法是在源汇编文件中使用".section"指令为表分配段、而不是在链接器 cmd 文件中执行此操作。

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

    Sira、

    谢谢!

    而不是。
    我找到了比您更快的解决方案。  
    使用"链接的资源"并将 IQmath.lib 位置更改为 INSTALLROOT_IQMath\lib\IQmath_coff
    链接器 cmd 文件内只需要一个更改、而不需要两个更改。  

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

    Tom、

    很棒!

    谢谢、

    Sira

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

    您好 Sira、  

    [引用 user="Sira Rao80"]这3个构建故障是已知问题,甚至会作为发行说明的一部分被捕获。
    我知道您提到:

    IQMath-31.
    索引库将导致 一些旧 版器件工程的编译失败  
    S3-0
    次要无

    我发现19个*IQSample*示例,其中11个在开箱即用时失败:

    28027_IQsampleC
    28035_IQsampleC
    28035_IQsampleCpp
    28069_IQsampleC
    28069_IQsampleCpp

    28235_IQsampleCpp
    28335_IQsampleCpp
    2837xd_IQsampleC
    2837xd_IQsampleCpp
    2838_IQsampleCpp

    和 2838x_IQsampleC。  

    [引用 user="Sira Rao80"]问题是链接器命令文件在 SECTIONS 规范中专门使用 IQmath.lib、但 IQmath.lib 现在是索引库、而 IQmath_coff .lib 是已解决的库。
    [引用 user="Sira Rao80"]但理想的方法是使用“.section”指令为源汇编文件中的表分配段,而不是在链接器 cmd 文件中执行此操作。
    我的理解是、我们有两个单独的问题:
    1)物体解析
    2) 2)段规格。  

    明确链接 IQmath_coff .lib 可解决第一个问题。  

    使用28035_IQsampleC 示例并提供与索引 IQmath.lib 的显式链接、我添加了:
    .ref __IQ24asin
    .ref __IQ24atan2pu
    .ref __IQ24exp
    .ref __IQ24log
    .ref __IQ24mpyI32int
    CodeStartBranch.asm 和 我已获得:

    无法解析存档
    C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/lib
    将 IQMath.lib 添加到兼容库中、因为未遇到任何输入文件。

    这与开箱即用示例中的问题相同。  
    在我看来、这与"链接器命令文件在 SECTIONS 规范中专门使用 IQmath.lib"的情况无关。
    与 IQmath_coff .lib 链接可解析对象、但构建会留下以下消息:  

    警告:创建不带 SECTIONS 规范的输出段"IQmathTablesRam"
    警告:指定了"_c_int00"以外的入口点符号: "code_start"

    我的理解是:
    [引用 user="Sira Rao80"]但理想的方法是使用“.section”指令为源汇编文件中的表分配段,而不是在链接器 cmd 文件中执行此操作。
    无法解决未定义的符号问题。  

    另一个示例和有趣的问题 、28069_IQsampleC:

    >>编译失败

    Makefile:143:目标'28069_IQsample.out'的配方失败

    警告:无法解析存档

      C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/lib

      将 IQMatH_fpu32.lib 添加到兼容库中、因为没有输入文件

      遇到

    "C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/examples/cmd/28069_IQmath_lnk.cmd "、第71行:警告:  

      无匹配段

    "C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/examples/cmd/28069_IQmath_lnk.cmd "、第75行:警告:  

      无匹配段

     

     未定义    的首次引用   

     符号        文件中      

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

     _IQ24asin   ./IQsampleSmall.obj

     _IQ24atan2pu  ./IQsampleSmall.obj

     _IQ24exp    ./IQsampleSmall.obj

     _IQ24log    ./IQsampleSmall.obj

     _IQ24mpyI32int ./IQsample.obj

     

    错误:未解析的符号仍然存在

    警告:指定了"_c_int00"以外的入口点符号: "code_start"

    错误:在链接期间遇到错误;没有生成"28069_IQsample.out"

    gmake:***[28069_IQsample.out]错误1.

    gmake:目标"全部"不会由于错误而重新生成。

    ****构建完成****

    但是、我尝试使用 ti-arm v18.2.1.LTS 来构建它、因为 IQmath_fpu32_coff .lib 是使用汇编器 v18.2.LTS 和我的构建结果构建的:

    >>编译失败

    Makefile:143:目标'28069_IQsample.out'的配方失败

    警告:无法解析存档

      C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/lib

      将 IQMatH_fpu32.lib 添加到兼容库中、因为没有输入文件

      遇到

    "C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/examples/cmd/28069_IQmath_lnk.cmd "、第71行:警告:  

      无匹配段

    "C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/examples/cmd/28069_IQmath_lnk.cmd "、第75行:警告:  

      无匹配段

     

     未定义的首次引用    

     符号           

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

     _c_int00 ./CodeStartBranch.obj

     

    错误:未解析的符号仍然存在

    警告:指定了"_c_int00"以外的入口点符号: "code_start"

    错误:在链接期间遇到错误;没有生成"28069_IQsample.out"

    gmake:***[28069_IQsample.out]错误1.

    gmake:目标"全部"不会由于错误而重新生成。

    ****构建完成****

    与 28035_IQsampleC 示例中相同的链接器命令、该示例以及库和对象名称的编译器版本都被解析。 这与您的说法相反: 问题是链接器命令文件在 SECTIONS 规范中专门使用 IQmath.lib、但 IQmath.lib 现在是索引库、而 IQmath_coff .lib 是已解析的库。

    另一个问题:为什么_c_int00未解决?

    另一个问题:当我切换回开箱即用的 TI 编译器 v6.0.1时、  
    CCS 创建 project.log 文件、其中包含:

    !配置:'com.ti.ccstudio.buildDefinitions.c2000.Debug.65717364'[Thu Jun 06 03:58:21 CEST 2019]
    !工具:'com.ti.ccstudio.buildDefinitions.C2000_6.0.exe.compilerDebug.530579485'
    !warning:unresolved option:com.ti.ccstudio.buildDefinitions.C2000_6.0.compilerID.ABI

    这意味着什么? 它如何影响项目设置?

    问题是链接器命令文件在 SECTIONS 规范中专门使用 IQmath.lib、但 IQmath.lib 现在是索引库、而 IQmath_coff .lib 是已解决的库。

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

    Tom、

    我已请这方面的专家回答您的问题。 您很快就会听到他的声音。

    谢谢、

    Sira

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

    Tom、

    您发现的一些问题将作为我们下一次软件更新的一部分处理、我们将在 C2000WARE 的第3季度版中更新我们可以修复的问题。 旧器件中的索引库支持存在问题。  我们建议您将之前版本的 C2000WARE 用于 F2838x 或 F2837x 以外的器件、以用于 IQMath 使用。  我希望这不会在您的项目的短期内成为一个重要的选择。   

    谢谢

    Aravindhan

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

    谢谢!