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.

[参考译文] CCSTUDIO-THEIA:CCS 20.4.0–无法导航到 DriverLib 函数定义 (C2000Ware)

Guru**** 2771065 points

Other Parts Discussed in Thread: C2000WARE, TMS320F28388D

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1608590/ccstudio-theia-ccs-20-4-0-unable-to-navigate-to-driverlib-function-definitions-c2000ware

部件号:CCSTUDIO-THEIA
主题中讨论的其他器件: C2000WARETMS320F28388D

指定 CCS 20.4.0 、我导入了 C2000Ware 示例
timer1_ex1_cputimers发件人:

ti/c2000/C2000Ware_xxx/driverlib/f2838x/examples/c28x

代码使用 DriverLib API、例如:

CPUTimer_setPeriod(CPUTIMER0_BASE, 0xFFFFFFFF);

该工程 正确构建、运行和调试 和 DriverLib 正确包含。
不过、当我尝试导航至函数定义时、CCS 显示:

“未找到‘CPUTimer_setPeriod’的引用“

(许多 DriverLib 函数都会执行此操作;只是一个示例。) CPUTimer_setPeriod

它在中可以正常工作  CCS 12.8. 、但在中失败 CCS 20.4.0
我在多台计算机上看到了相同的行为。

这是已知的 CCS 20.4.0 分度器问题、还是需要启用某个设置?

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

    我可能已确定问题的原因。

    这对我来说似乎是一个错误、 但我不确定这是否为预期行为。
    在中 cputimer.h 头文件、所有与 CPUTimer 相关的函数(例如)CPUTimer_setPeriod都包含在以下宏条件中:

    #ifdef __TMS320C28XX__
        ...
    #endif

    目标器件是 A TMS320F28388D 板、因此此宏应由默认定义 cl2000 编译器中、因为目标架构是 C28x。

    任何人都可以确认是否__TMS320C28XX__在这种情况下自动定义?

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

    您好、NIC:

    为延迟深表歉意、似乎此主题在 E2E 中出现了错误路由。 我现在已将其分配给了合适的专家。

    此致、

    马特

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

    您好:NIC、

    TMS320C28XX__宏由 C2000 编译器定义。 要验证这一点、您可以尝试执行以下步骤。  

    1.右键点击您的工程->属性-> C2000 编译器->高级选项->解析器处理选项

    2.启用 生成预定义宏和用户定义宏列表的选项 (--preproc_macros,-ppm)。

    3.在项目中创建一个空的.txt 文件、并在上面选项旁边的字段中输入该文件的路径。  

    4.编译项目,然后打开您的.txt 文件。 您将看到 其中定义的_TMS320C28XX__。 它应该看起来像这样。  

    话虽如此、即使编译器自动定义了这个宏、代码索引器(负责右键点击函数时的“Show Definition“等运算)也可能没有定义它。  

    目前、权变措施解决方案可以 在 Project -> Properties -> C2000 Compiler -> Predefined symbols 中定义__TMS320C28XX__。  

    之后、构建工程、您应该能够导航到函数定义。

    我将与团队一起检查代码索引器为何无法看到与编译器在 CCS 20.4 中设置的预定义宏相同的宏。

    谢谢。此致、

    IRA

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

    尊敬的 Ira:

    感谢您的详细说明。

    我尝试了您建议的第一种方法。 .txt包含预定义宏列表的文件是正确生成的、我可以确认__TMS320C28XX__这里确实定义了该文件。 但是、即使在这之后、CCS 20.4 分度器仍无法导航到函数定义。

    我已经测试了第二种权变措施(在__TMS320C28XX__ Project→Properties→C2000 Compiler→Predefined Symbols 中手动定义)、这确实可以解决索引器的问题。

    我的问题主要是我是否缺少某些内容、因为鉴于目标是 C28x 器件、这个宏应该已经自动定义。 虽然手动定义它在这个小型工程中不是一个大问题、但在较大的工程中、可能很难理解需要预定义哪个宏来启用索引器、尤其是在所需的宏不明显或没有记录的情况下。

    再次感谢您的支持、感谢您与团队一起了解索引器的行为。

    网卡

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

    您好:NIC、

    在为 CCS 示例定义.projectspec 文件或在 CCS 中定义代码分度器时、似乎需要添加符号。 我将提请 c2000Ware/CCS 团队注意它。  

    谢谢。此致、

    IRA