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.

[参考译文] CODECOMPOSER:在将 CMake 项目与 CodeComposerStudio 集成时、CCS 索引器不工作

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1217480/codecomposer-ccs-indexer-not-working-when-integrating-cmake-project-with-codecomposerstudio

器件型号:CODECOMPSER
主题中讨论的其他器件:AM3359CCStudio

您好!

我们为应用使用基于 CMake 的构建流程。

我们不使用 CodeComposerStudio 来构建我们的项目、我们使用一个特定的构建命令来启动一个用于启动 CMake 构建过程的批处理文件。

批处理文件包含:  

CD %1
mkdir 发布
CD 版本
Cmake . --preset=TI_armcl
gmake

我们现在使用 CCS 的唯一原因是能够使用 Blackhawk 调试器(USB560 v2 System Trace)我们希望将项目文件加载到 CodeComposerStudio (V12.2)以运行调试器。

因此、我们会执行以下步骤:

1. 启动 CCS
2. 打开 新的 工作区
3. 在 CCS 中 ,点击  "File"->"Import"->"General"->"Existing projects" 进入 工作区
4. 下一步
5. 浏览 我们的 Sitara 项目存储库 文件夹 , 然后 点击 "Finish"
然后、我们手动加载目标配置文件、然后可以连接到 CPU (AM3359)并开始调试。
现在我们面临以下问题:
-有了这个配置,编译工作,我们能够进行调试,但 CCS 索引器并不总是工作,例如,如果在函数名上按住 Ctrl 键+右键(或按 F3键)通常不浏览函数定义  
您能帮助我们解决索引器问题吗、或者您是否有将 CMake 工程集成到 CCS 的更好解决方案?
此致
Timo.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Timo:

    请描述您正在尝试调试的软件。

    此致、

    Nick

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

    您好、Nick。

    感谢您的回复!

    我们正在调试的软件是我们的应用、但调试在工作、这不是问题、我只想描述整个过程。

    问题在于,通过 按 F3键(绑定到"打开声明")浏览代码不能正常工作。 在很多情况下(但并非总是如此) Code Composer Studio 无法找到相应的声明。

    CCS 从何处获取这些信息?

    此致

    Timo.

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

    您好、Timo:

    我的意思是、

    1) 1)这是 Linux 用户空间应用程序吗? 是什么? 等等

    2) 2)您遇到了尝试使用 CCS 进行调试的特定问题吗? 如果是,那是什么问题?

    此致、

    Nick

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

    您好、Nick。

    1) 1)这是一个 TI_RTOS 应用程序

    2) 2)不存在调试问题:调试工作正常

    问题:

    当光标位于 CCS 中的某个函数名称(例如 ReadData ())上、然后单击"F3"或 Ctrl+左键鼠标按钮时、CCS 中将显示以下消息:

     "在索引中找不到符号'readData'"

    而 CCS 无法显示此函数的声明(ReadData())。

    我假设它与索引器有关,但索引->重建也不能解决问题。 请参阅下图、其中显示了不起作用的关键绑定:

    此致

    Timo.

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

    您好、Timo:

    啊,还可以。 请记住、根据 处理器 SDK 页面 和 e2e 上的此声明、我们无法再在论坛上为 AM335x TI_RTOS 提供设计支持。 e2e 上的注意事项包含指向一组 TI_RTOS 资源的链接、这些资源将来可能对您有所帮助。

    不过、我知道现在您的问题更多的是如何使用 CCS 本身、而不是 AM335x。 我将把您的线程发送到 CCS 团队进行评论。

    此致、

    Nick

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

    尊敬的 Timo:

    问题:

    当光标位于 CCS 中的某个函数名称(例如 ReadData ())上、然后单击"F3"或 Ctrl+左键鼠标按钮时、CCS 中将显示以下消息:

     "在索引中找不到符号'readData'"

    而 CCS 无法显示此函数的声明(ReadData())。

    我假设它与索引器有关,但索引->重建也不能解决问题。

    [/报价]

    正确、此功能依赖于通过索引器的索引数据。 您提到您要将项目导入到工作区中。 这是标准 Eclipse 管理型 make 项目吗? 是否是定义导入工程的"ReadData"部分的源文件?

    谢谢

    小标题

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

    Ki、您好!

    这不是标准 Eclipse 管理型 make 工程、我们要将该工程导入到工作区中、如下所示:

    我们使用此导入选项是因为我们使用 CMake/make 过程构建源、但使用 CCS 进行调试。  

    可以,函数 ReadData()及其定义是导入项目的一部分。

    Timo.   

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

    您可以压缩项目并将 zip 文件附加到该主题中吗?

    我不需要完整的项目。 您可以去掉大部分内容。 我只需要一个重现问题的示例项目。

    谢谢

    小标题

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为它与索引器有关,但索引->重建无法解决问题。

    在 CCS 项目浏览器中、右键单击一个有问题的源文件、然后选择 Index -> Create Parser Log file。 选择要为日志文件创建的文件。 解析日志文件可以确定索引器的问题是什么。 例如、未找到包含文件。

    如果有用、 https://github.com/Chester-Gillon/AM3352-SOM-EVB_bare_metal 是一个使用 CMake 生成的项目、而 CCS 用于编辑/浏览/调试。 该工程最后一次与 CCS 8配合使用。 从存储器:

    1. setup_cmake.bat 和 setup_cmake.sh 是用于设置 CMake 构建环境的 Windows/Linux 脚本。 这些脚  本还创建了一个 launch_ccstudio.bat 或 launch_ccstudio.sh 脚本、旨在启动 CCS、其中设置了一些环境变量、以允许 Eclipse 工程定位编译器、并通过 Eclipse 索引器包含 AM335x StarterWare 文件。
    2. .project 和.cproject  是允许索引器解析和浏览项目的 CCS Eclipse 项目文件。 手动编辑了 C/C++ General -> Paths and Symbols 下的工程属性、以设置 CMake 构建使用的 Include 目录和符号。 使用 launch_ccstudio.bat 或 launch_ccstudio.sh 脚本设置的环境变量的 include 目录。 选择了 CCS Eclipse 项目文件中的 C/C++编译以运行 CMake 创建的 make 文件。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    e2e.ti.com/.../CMakeProjectSitaraMinimalExample.zip

    Ki、您好!

    下面是一个显示该问题的示例项目。

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

    尊敬的 Chester Gillon:

    感谢您的回复、我会查看文件。

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

    尊敬的 Chester Gillon:

    感谢您的回复、我会查看文件。

    [/报价]

    切斯特提出了一个很好的观点。 还请提供解析器日志文件。

    谢谢

    小标题

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

    Ki、您好!

    尊敬的 Chester:

    我们从 Chester Gillon 复制了 REO、以测试它是否可以解决我们的问题:

    有一个共同的了解、在执行批处理文件时

    -这里生成了到 C 语言编译器的符号链接、这样它就可以在 CCS 环境中被找到。

    -启动批处理中会添加启动程序的根路径,因此启动 CCS 时可以使用启动程序。

    -生成 CMake 释放和调试 makefile

    此存储库中仍然存在与项目中相同的问题、即索引器无法找到多个文件(请参阅随附的日志文件)。

    e2e.ti.com/.../indexer.log

    此外、手动添加包含路径对我们来说并不是有效的解决方案、因为我们的项目相当大、并且我们不需要流水线中需要所需的手动生成步骤。

    关于我在上面发送的 zip 项目,我们尝试了以下解决方案(来自 Chester Gillon)来解决索引器问题:

    手动编辑 C/C++ General 下的项目属性->路径和符号设置包含目录和符号,例如为 local-adder。

    这样做不会更改索引器中的任何内容、尽管在 index_zip.log 文件中我们可以看到 include (第10行)、但索引器仍然找不到它(第35行)。

    e2e.ti.com/.../index_5F00_zip.log

    此致

    Timo.

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

    CMakeProjectSitaraMinimalExample.zip

    Ki、您好!

    下面是一个显示该问题的示例项目。

    [/报价]

    我一直在试验这个项目,到目前为止,我没有看到任何问题。 Open Declaration (F3)功能在我尝试的事情上一直发挥着很好的作用。 此示例中是否有您遇到问题的特定文件和功能?

    谢谢

    小标题

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

    这是非常有趣的!

    实际上、使用 CCS 版本12.2.0时、索引器似乎会在工程中找到声明:

    e2e.ti.com/.../indexerCCS1220.log

    但是、使用 CCS 版本8.3.1时、分析同一工程的索引器会出现问题:

    e2e.ti.com/.../indexerCCS831.log

    但我稍微修改了一下代码、以便它仍然可以构建、但索引器无法找到中声明的符号 另使用 CCS12。 我附上修改后的项目:

    e2e.ti.com/.../CMakeProjectSitaraMinimalExampleSTDINT.zip

    以及索引器日志文件:

    e2e.ti.com/.../indexerCC1220stdint.log

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    索引器无法找到中声明的符号 同时使用 CCS12。

    是的、系统头文件和工程文件夹之外的文件通常会发生这种情况。  请参阅:

    https://www.eclipse.org/community/eclipse_newsletter/2013/october/article4.php

    谢谢

    小标题

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

    Ki、您好!

    使用 CCS12并集成编译器头文件解决了索引器问题。

    感谢您的帮助!