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.

[参考译文] AM263P4:CCS20/AM263P4–外部 Makefile 工程而不是 CCS+SysConfig 构建

Guru**** 2576215 points
Other Parts Discussed in Thread: SYSCONFIG, AM263P4

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1571934/am263p4-ccs20-am263p4-external-makefile-project-instead-of-ccs-sysconfig-build

器件型号:AM263P4
主题中讨论的其他器件:SysConfig

工具/软件:

您好:

使用 AM263P4 和 CCS20 时、我遇到了一些限制、即必须根据 TI SDK/ SysConfig 模板创建新工程。 对于我们的工作流程、这是不可接受的、因为:

  • SysConfig 未经过安全认证、并且其生成的代码无法在我们的安全上下文中使用。

  • 我们需要完全控制链接器脚本和构建选项。

  • 我们的测试要求开发构建的方式与自动 CI 编译完全相同(通过 Makefile)。

我们希望将 CCS20 保留为工程环境和调试器(XDS110,寄存器,存储器等)、但让构建步骤调用我们的外部 Makefile、而不是 CCS/SysConfig 管理的构建。

是否有办法为这种“外部编译工程“配置 CCS20 受支持、这样我们就可以保留工程/调试功能、同时确保二进制文件始终由 Makefile 生成?

谢谢。

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

    澄清:

    为避免混淆、我总结一下为什么我们不能依赖 SysConfig/CCS 编译:

    • 对于功能安全 (IEC 61508)、我们只能使用经过批准和审核生成的代码。 来自 SysConfig 等不合格工具的代码必须生成一次、经过验证、然后冻结。

    • 因此、在正常编译期间、我们只能编译 已批准的冻结源 、请勿重新运行 SysConfig。

    • 我们基于 Makefile 的构建是单一参考构建、也用于 CI 中。它不仅包括编译、还包括我们安全流程所需的日志记录和归档步骤。

    • CCS 仅作为调试器(XDS110,寄存器,存储器,断点)需要、而不作为构建系统需要。

    因此、我们需要 CCS20 与外部 Makefile 编译一起使用、同时仍用作 CCS 工程来进行调试。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这就是为什么我们需要 CCS20 与外部 Makefile 构建配合使用、同时仍用作 CCS 工程进行调试的原因。

    请使用 SDK 中提供的基于 makefile 的构建系统、并在 CCS 中使用无工程调试选项、以使用 makefile 生成的.out/二进制文件进行调试

    software-dl.ti.com/.../MAKEFILE_BUILD_PAGE.html

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

    对于无工程调试、您需要创建目标配置、如下所述:

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM263X/latest/exports/docs/api_guide_am263x/CCS_SETUP_PAGE.html#CCS_NEW_TARGET_CONFIG

    关于无工程调试的 CCS 文档:

    software-dl.ti.com/.../ccs_debug-main.html

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    SysConfig 未经过安全认证、且其生成的代码无法在我们的安全环境中使用。

    您可以生成一次代码、然后将代码复制到您的工程中、并从构建中删除 example.syscfg 文件(这可以在 makefile 中完成)

    然后、您可以根据开发安全标准检查生成的代码:

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

    好的、它展示了如何将调试添加到最初没有调试功能的现有工程中。
    但我们的问题是不同的:当我使用 CCS 并选择“File"→“→“Create New Project“时、向导只允许基于现有模板创建工程、而不允许使用外部 makefile 构建的空工程。

    从工程中删除 SysConfig 文件只会阻止重新生成自动生成的文件;这样做无法实现完全的构建控制。

    清楚地解释它:我们只能使用 SDK 的选定部分,因为完整的 SDK 与我们的软件设计不兼容,原因有几个—例如,我们使用了不同且严格控制的内存布局,自定义 RTI 单元配置设置(无节拍模式),以及其他几种架构差异。

    换句话说、我们只需要直接使用某些 SDK 组件、其他组件仅用作参考示例、并使用我们自己的 makefile 来管理整个编译过程、完全独立于 SDK/CCS 编译系统。

    P.S.据我们所知、SDK 未通过功能安全认证、其许可为“评估软件许可协议“。 这意味着我们不能将 SDK 组件直接包含在最终产品中;所有内容都必须通过我们的内部质量控制和潜在验证者审查。 这也迫使我们完全控制编译。

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

    我建议使用 cmake 或 makefile 创建自己的构建系统、而不要使用 CCS 创建工程。

    仅将 CCS 用于调试

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

    是的、完全正确、这就是我们想要实现的目标。
    但是、在仅将 CCS 用作编辑器时、我们如何进行编译? 如何进行调试?

    CCS 似乎只允许根据模板创建工程、而不允许配置外部编译系统、或者仅加载已编译的 ELF 以进行调试。
    我可能缺少一些简单的东西、但我无法找到一种使用 CCS + XDS110 来调试 AM263P4 上外部构建的 ELF 的方法。
    据我所知、没有其他通过 XDS110 支持 AM263P4 的调试环境(我认为这不能集成到 VS Code 中,其中外部构建可正常运行)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    但是、在仅将 CCS 用作编辑器的情况下、我们如何进行编译? 我们如何进行调试?

    最好使用 VS Code 作为编辑器、而不是使用 CCS、因为 CCS 不支持基础 CMake、如果您使用的是 make probaly、则可以使其正常工作。

    若要进行调试、请在 CCS 中使用无工程调试选项、有关无工程调试的文档:

    software-dl.ti.com/.../ccs_debug-main.html

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

    谢谢! 这看起来就像我要找的。
    我将尝试将所有内容整合在一起(Makefile 构建、将测试代码加载到内部 RAM 以及进行调试)、如果出现任何问题、就会回复。