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.

[参考译文] AM335x-TMW-IEC61850-demo:使用 VS Code 作为 Windows 上 CCS 编译器主代码编辑器的最佳实践

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1656425/am335x-tmw-iec61850-demo-best-practices-for-using-vs-code-as-primary-code-editor-with-ccs-compiler-on-windows

器件型号: am335x-TMW-IEC61850-demo

尊敬的 TI 团队:

我目前正在使用 Windows 上的 Code Composer Studio 在 TI 平台上进行开发。 虽然 CCS 非常适合编译和调试、但我希望将日常代码读取和编写工作流转换为 Visual Studio Code、以利用其编辑器功能。

我的目标是完全将 VS Code 用作编辑器、同时继续使用 CCS 工具链来构建工程。

您能否提供有关如何有效地设置此功能的指导或最佳实践? 具体而言、我正在寻求以下方面的建议:

IntelliSense 配置:如何从我的现有 CCS 工程中轻松导出包含路径和预定义的编译器宏、以便 VS Code C/C++扩展可以解析依赖关系、而无需冗长的行。

编译数据库:是否有建议的方法或内置标志来直接从 Windows 上的 CCS 编译生成 compile_commands.json 文件?

一般工作流程:此混合设置是否有任何正式的 TI 扩展、应用手册或社区推荐的工作流程(用于编辑的 VS Code +用于构建/调试的 CCS)?

我的环境:

操作系统: Windows 10

IDE:Code Composer Studio 6.1.3

感谢您的支持。

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

    在 VS 代码设置中安装 C/C++ Intellisense 扩展。 请参阅下图。

    转到扩展设置并添加源目录的路径、以参考 SDK 路径和工作区路径。

    请参阅下图。

      使用 Add folder to workspace 选项打开 VS 代码中的 SDK 和 CCS 工作区工程/文件夹。

    此致、

    Tushar

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

    尊敬的 Tushar:

    感谢您的快速答复和可视指南。

    但是、虽然这种手动方法仅适用于简单示例、但对于 AM335X-TMW-IEC61850-demo 或其他重型工业协议栈等复杂工程、这种方法不是很可扩展或用户友好。

    具体地说、我对手册中的“包含路径“方法有两个主要关注点:

    性能和准确性:对整个 SDK 路径使用递归通配符 (/) 会迫使 VS Code 对数千个不相关的文件进行索引、这会严重减慢 IntelliSense 的速度、并且通常会导致不正确的符号定义。

    缺少宏:此方法完全忽略在 CCS 编译设置中配置的预定义编译器宏和特定于工程的#define 符号。 如果没有这些宏、VS Code 就无法正确地评估#ifdef /#ifndef 分支、从而使大量活动代码块灰显。

    我的后续问题:
    手动操作很容易出错、因此是否有任何自动的方法可以直接从 CCS 编译过程中提取确切的编译器标志、包含路径和宏?

    例如、由于 CCS 6.1.3 基于 Eclipse、是否有特定脚本、社区插件或解析构建控制台日志以生成 compile_commands.json 文件的方法?

    此致、

    Zhengzhong Lu

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

    你(们)好  

    我正在将您的问题发送给 CCS 团队以供进一步评论。 请在一天或两天内回复。

    此致、

    Tushar

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

    您好、Zhengzhong、

    我的目标是在继续使用 CCS 工具链构建工程的同时、纯粹将 VS Code 用作编辑器。

    CCS IDE 中缺少的 VS Code 功能使您希望在 VS Code 中开发代码?

    [报价 userid=“531929“ url=“~/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1656425/am335x-tmw-iec61850-demo-best-practices-for-using-vs-code-as-primary-code-editor-with-ccs-compiler-on-windows ] IDE:Code Composer Studio 6.1.3

    我看到您使用的 CCS 版本非常旧且不受支持。 您使用此旧版本是否有任何具体原因? 请注意、当前的 CCS 版本基于 Theia IDE、Theia IDE 本身是 VS Code 的分支。

    编译数据库:是否有建议的方法或内置标志来直接从 Windows 上的 CCS 编译版本生成 compile_commands.json 文件?

    编译 CCS 工程时、CCS 的当前版本将生成 compile_commands.json 文件。

    谢谢

    Ki

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

    尊敬的 Ki:

    感谢您的详细回复和有关最新 CCS 版本的信息。

    我仍然使用这个较旧版本 (CCS 6.1.3) 的主要原因是我们集成了 PROFINET 工业通信协议栈。 为该协议栈提供的代码编译环境和工具链专门与该较旧版本的 CCS 相关联。 升级 IDE 和编译器可能会破坏栈的兼容性或认证、因此我目前被迫继续将其用于构建。

    由于我必须坚持使用 CCS 6.1.3 工具链进行编译、因此我想将 VS Code 纯作为现代编辑器使用、以利用 IntelliSense 等功能和更好的代码导航功能。

    再次感谢您的帮助!

    此致、

    Zhengzhong Lu

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

    尊敬的 Ki:

    话虽如此、我还是很好奇:如果我们尝试将这个旧的 CCS 6.1.3 工程迁移到最新版本的 CCS、我们应该了解是否存在任何潜在的风险或隐藏的缺陷?

    鉴于这些版本之间存在巨大差距、而且我们对 PROFINET 协议栈的依赖、我担心编译器版本、链接器命令文件或特定工程配置可能存在兼容性问题。 您会推荐此类迁移吗? 如果是、在不破坏现有栈的情况下、将工程从基于 Eclipse 的旧 CCS 迁移到基于 Theia 的新环境时、是否有任何官方指南或最佳实践?

    此致、

    Zhengzhong Lu

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果我们尝试将这个旧的 CCS 6.1.3 项目迁移到最新版本的 CCS、那么我们应该知道是否存在任何潜在风险或隐藏陷阱?

    这是一个棘手的问题。 这实际上取决于工程的依赖关系。 正如您在上一篇文章中提到的、某些工程和库已使用特定版本的工具进行了验证。 因此有迁移的风险。 但是、需要注意两个方面、这有助于最大程度地降低迁移风险。 第一个是较旧版本的编译器可以与后续 CCS 版本一起使用。 CCS 21.0 可以使用 CCS 6.1.3 附带的编译器。 风险最大的是编译器版本。 需要注意的另一点是、基本项目系统基本保持不变。 当然、自 6.1.3 以来、已经进行了许多增强和修复、但是工程文件格式和系统基本相同。

    f 那么、在不中断现有栈的情况下、是否有任何官方指南或最佳实践来将项目从基于 Eclipse 的旧 CCS 迁移到基于 Theia 的新环境?

    这里有一些信息: https://dev.ti.com/tirex/explore/node?isTheia=false&node=A__AaZFvdACfuKSvvGOsC91Gg__CCSTUDIO-ACADEMY__RdkYJ-M__LATEST

    您应该能够将工程导入到 CCS Theia 中、并将其设置为使用 CCS 6.1.3 中的旧编译器。但正如您所指出的、6.1.3 是非常旧的、版本之间的差距很大。  

    谢谢

    Ki  

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

    尊敬的 Ki:

    非常感谢您提供的详细指南和有用的链接!

    很高兴知道新的 CCS Theia 支持使用 CCS 6.1.3 中的旧编译器。 这种方法听起来是一种非常实用的方法、既可以实现编辑体验的现代化、又可以最大限度地降低现有项目的风险。

    我将查看您分享的迁移指南、并在单独的工作区进行一些测试。 再次感谢您的时间和专业知识!

    此致、
    正忠