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.

[参考译文] SysConfig:[SysConfig 1.14.0]如何禁用对同级目录中不兼容的 SDK 的自动发现以保持二进制标识

Guru**** 2847400 points

Other Parts Discussed in Thread: SYSCONFIG, C2000WARE, AM2634

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1624786/sysconfig-sysconfig-1-14-0-how-to-disable-auto-discovery-of-incompatible-sdks-in-sibling-directories-to-maintain-binary-identity

器件型号: SysConfig
Thread 中讨论的其他器件: C2000WAREAM2,634,4430

1、环境:

  • CCS 版本: 12.1.0.00007.

  • SysConfig 版本: 1.14.0(实现工具链一致性所必需)

  • 目标 SDK: 适用于 AM263x v08.05.00.24 的 MCU+ SDK

  • 冲突来源: C2000Ware v6.00.01.00(位于通用父文件夹下的同级目录中)

2.问题总结:

构建 AM2634 工程时、会出现以下误差。
但是、错误的来源是 F28P55 工程中使用的 JSON 文件、而不是 AM2634 工程。
即使项目路径是独立的、SysConfig 也会自动搜索并验证 JSON 文件。

“AM263x v08.05.00.24“的 MCU+ SDK
C:\ti\mcu_plus_sdk_am263x_08_05_00_24\

“C2000Ware v6.00.01.00“路径
D:\_00_Git\gm_al5d_apm\Util\c2000\C2000Ware_6_00_01_00\

错误日志

****为项目 LGIT_Application_R5FSS1_1****构建配置调试

“C:\\ti\\ccs1210\\ccs\\utils\\bin\\gmake“-k -j 8 All -O  
 
构建文件:“../LGIT_Application.syscfg"</s>“
调用:sysconfig
“C:/ti/ccs1210/ccs/utils/sysconfig_1.14.0/sysconfig_cli.bat -s “C:/ti/mcu_plus_sdk_am263x_08_05_00_24/.metadata/product.json “-脚本“D:/_00_Git/VCC_spa2u_HLCM_lnpswd026/1_Source/1_Application/LGIT_Application_R5FSS1_LGIT_Application.syscfg“-上下文“1-1"-o“-o “syscfg"-“-部分 AM263x - ticlang 编译器 — ZCZ 软件包
subdir_rules.mk:9:目标'build-2118952975'的配方失败
错误:D:\_00_Git\gm_al5d_apm\Util\c2000\C2000Ware_6_00_01_00\.metadata\sdk.json:验证失败:[
 {
  “关键字“:“additionalProperties",“,</s>、
  “数据路径“:“",“,</s>、
  “schemaPath":“:“#/additionalProperties",“,</s>、
  “Params":“:{
   “附加属性“:“迁移产品“
  }、
  “消息“:“不应具有其他属性“
 }
]
  位于 Object.validateMeta (C:\ti\ccs1210\ccs\utils\sysconfig_1.14.0\dist\webpack src:\pinmux\services\JSONschemaValidator.CCS ts:208:9)
  位于 toProductFile (C:\ti\ccs1210\ccs\utils\sysconfig_1.14.0\dist\webpack src:\pinmux\services\product\parseProductFile. ts:20:14)
  位于 Object.loadProductFile (C:\ti\ccs1210\ccs\utils\sysconfig_1.14.0\dist\webpack src:ts:29:9)
  位于 itatee (C:\ti\ccs1210\ccs\utils\sysconfig_1.14.0\dist\webpack:src ts:129:26)
  位于底图 (C:\ti\ccs1210\ccs\utils\sysconfig_1.14.0\dist\webpack:\node_modules\lodash\lodash.js:653:23)
  位于 function.Apply [ as map](C:\ti\ccs1210\ccs\utils\sysconfig_1.14.0\dist\webpack:\node_modules\lodash\lodash.js:9621:51)
  在拦截器处 (C:\ti\ccs1210\ccs\utils\sysconfig_1.14.0\dist\webpack:\node_modules\lodash\lodash.js:17094:35)
  AT Apply (C:\ti\ccs1210\ccs\utils\sysconfig_1.14.0\dist\webpack:\node_modules\lodash\lodash.js:8859:14)
  at itatee (C:\ti\ccs1210\ccs\utils\sysconfig_1.14.0\dist\webpack:\node_modules\lodash\lodash.js:4430:28)
  在 ft (C:\ti\ccs1210\ccs\utils\sysconfig_1.14.0\dist\webpack:\node_modules\lodash\lodash.js:697:21) 处
gmake:***[BUILD-2118952975]错误 1.
gmake:由于错误、目标“全部“未重制。

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

3、限制和要求:

二进制标识:这是一个汽车项目、我们必须维护一个固定的工具链 (SysConfig 1.14.0)。 不能更新到更新的 SysConfig 版本、因为它会在旧 SDK 中引入其他 pinmux 验证错误。

Active Multi-project Environment:我无法重命名、删除或移动 C2000Ware 文件、因为它们会被同一工作区/存储库结构中的其他工程主动使用。

尝试修复:我尝试在 CLI 标志中添加--noscan、但它在版本 1.14.0 中不是可识别的参数。 在构建环境中设置 sysconfig_product_path 也不会阻止自动发现不兼容的 sdk.json。

4.问题:

SysConfig 1.14.0 是否有特定的 CLI 标志或未记录的环境变量、以便将搜索路径严格限制为由-s 参数指定的产品?

如何完全禁用这个特定版本的 SysConfig 中的“自动发现“或“产品扫描“功能?

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

    您好 Choi、

    您能否向我展示当前产品发现中的所有路径?

    谢谢、

    IRA

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

    到 Ira

    CCS 工程位置如下:

    1.使用 CCS 的项目 12.1.

    CCS: C:\ti\ccs1210\

    项目: “D:\_00_Git\VCC_spa2u_HLCM_lnpswd026\1_Source\1_Application\LGIT_Application_R5FSS1_0\"</s>“

    SDK: C:\ti\mcu_plus_sdk_am263x_08_05_00_24\

    2.使用 CCS 的项目 20.5.

    CCS: C:\ti\ccs2050\

    项目:D:\_00_Git\gm_al5d_apm\gm_al5d\“

    C2000ware: D:\_00_Git\gm_al5d_apm\Util\c2000\C2000Ware_6_00_01_00\

    如果您指的是其他路径、请告诉我。

    谢谢、

    Jiung Choi.

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

    您好、

    您可以转到您的 AM26 项目(使用 CCS 12.1 的项目)、右键点击您的项目->属性->产品。 您看到这里出现了 C2000Ware 吗? 您应该只能看到 MCU_PLUS_SDK。 您能告诉我您看到了什么吗?

    谢谢、

    IRA

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

    到 Ira

    如下所示、不包含 C2000Ware。

    产品:

    SysConfig [1.14.0]

    适用于 AM263x 的 MCU+ SDK [8.5.0.24]

    如果还有其他需要检查或尝试的东西、请告诉我。

    谢谢、

    Jiung Choi.

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

    您好、

    您能否打开 json 文件、该文件在文本编辑器中给出了错误 (D:\_00_Git\gm_al5d_apm\Util\c2000\C2000Ware_6_00_01_00\.metadata\sdk.json)。

    它将有像“migrationProducts"这样“这样的这样的属性 — 只需从 json 文件中删除该行。 它将看起来像这样。

    删除此行后、保存 json 文件、重新导入 AM26 工程并尝试重新编译。 请告诉我这种方法是否有效。

    谢谢、

    IRA

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

    您好、

    只需添加、请先备份 sdk.json 文件。 另外、不要删除整行、只需删除密钥值对。 该线将是

    “迁移产品“:[]

    谢谢、

    IRA

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

    到 Ira

    我删除了如下所示的密钥对、但出现了相同的问题。

    我已在下面添加了删除和构建结果、因此请检查它们。

    此外、如果解决方案是修改 C2000Ware JSON、我想知道这是否会影响在 CCS 20.5 上运行的项目。

    (在 CCS 20.5 上运行的工程使用 C2000Ware 6.0.1.0。)

    如果您能检查是否还有其他事情可以尝试、我将不胜感激。

    谢谢、

    Jiung Choi.

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

    您好、

    “我回来了。“

    谢谢、

    IRA

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

    您好、

    您可以尝试以下操作吗?

    在 CCS 12.1 中、转到 Window -> Preferences -> Products -> Product discovery path  

    2.删除指向 C2000Ware 的所有路径 — 只保留 2 个路径 (MCU+ SDK 和 Sys Config)、然后点击 Refresh

    3.在已发现的产品中、您不应该看到任何与 c2000ware 相关的产品(您应该只能看到 MCU+ SDK 和 Sys Config)

    4.点击“应用“和“关闭“

    5.完全关闭 CCS 12.2。

    6.删除 /.metadata(确保您的所有项目都在磁盘上,因为删除此文件夹后需要重新导入它们)

    7.使用同一工作区重新打开 CCS 12.1 ->这将创建一个新的.metadata 文件夹(因此您将有一个新的工作区)

    8.重新导入所有项目。

    8.构建 AM26 项目。

    由于您对 F28P55 工程使用不同的 CCS、因此在 CCS 12.1 中未发现 c2000ware 应该可以解决该问题。

    谢谢、

    IRA

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

    到 Ira

    感谢您的答复。

    但是,我尝试了做你的建议,但同样的问题仍然发生。

    此外、“C2000Ware_6_00_01_00"最初“最初不包含在该产品中。

    (我将“C2000Ware_6_00_01_00"移至“移至 ti 之外的外部文件夹以解决此问题。)

    如果不解决此问题、我将很难在桌面上运行两个项目。

    如果您能检查是否有其他解决方案、我将不胜感激。

    如果您需要任何信息、请告诉我。

    谢谢、

    Jiung Choi.

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

    您好、

    您的 AM26 工程中似乎有某项引用了该路径

    如果任何文件(尤其是.mk/编译相关文件)中引用了其中的任何一个、您是否可以在整个 AM26 工程中搜索?
    c2000ware

    utils\c2000

    D:\_00_Git\gm_al5d_apm\Util\c2000\C2000Ware_6_00_01_00

    SDK 文档

    product.json

    此外、在 AM26 Project -> Build -> Variables ->查找任何包含的内容  

    D:\_00_Git\gm_al5d_apm\Util\c2000\C2000Ware_6_00_01_00

    C2000Ware

    正如进行快速测试以查看是否引用了该路径 一样、您是否可以临时将 D:\_00_Git\GM_al5d_APM\Util\c2000\C2000Ware_6_00_01_00 重命名为 D:\_00_Git\gm_al5d_APM\Util\c2000\C2000Ware_6_00_01_00_2?

    然后再次构建、告诉我发生了什么。

    1.如果您收到“path not found error“-那么您的 AM26 工程中肯定有一些指向 C2000Ware 路径的内容

    2.如果你再次得到同样的错误

    此外、您能否在文本编辑器中打开 LGIT_Application.syscfg 并将其粘贴到此处?

    谢谢、

    IRA

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

    到 Ira

    按照说明更改路径后、编译现在成功。

    通过几项测试确认了以下要点:

     1.更改“C2000Ware_6_00_01_00"的“的路径或 SDK 扩展后、编译成功。

     2.即使恢复了路径和 SDK 扩展后、编译也会在 CCS 12.1.0 中继续成功运行。

     但是、使用 CCS 20.5.0 执行构建后、会再次发生与之前相同的问题。

    使用 CCS 20.5.0 时、似乎有一些东西会影响编译过程。

    如果您也能研究这方面、将会很有帮助。

    谢谢、

    Jiung Choi.

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

    您好、

    我想您正在将 CCS 12.1 用于 AM26 工程、将 CCS 20.5 用于 F28P55 工程。
    您在尝试在 CCS 20.5 上构建 F28P55 工程时遇到错误吗?

    另请注意、不建议将 CCS 20.5 与 SysConfig 1.14 一起使用、因为这两者不兼容。 您至少需要将 SysConfig 1.23 与 CCS 20.x 版本配合使用。  

    我建议尽可能将两个 SDK 都保留在工作区之外、以获得更简洁的解决方案。

    D:\ti\mcu_plus_sdk

    D:\ti\c2000ware...

    将工作区保留为  D:/_00_Git/...

    谢谢、

    IRA

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

    到 Ira

    CCS 20.5.0 中不会出现错误。

    此外、SysConfig 配置为使用其各自的版本。 (CCS 20.5.0 中使用 SysConfig 1.27.0、而 CCS 12.1 中使用 SysConfig 1.14。)

    但是、出于未知原因、在 CCS 20.5.0 中执行构建会影响 CCS 12.1 中的构建。 (如上所述,即使通过更改路径临时避免了 CCS 12.1 中的错误、该错误也会在 CCS 20.5.0 中执行一次编译后在 CCS 12.1 中再次出现。)

    如果能够消除这种影响、这个问题似乎可以得到解决。 如果您能验证此信息、我将不胜感激。

    谢谢、

    Jiung Choi.

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

    您好 Choi、

    我会检查并返回。

    谢谢、

    IRA

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid=“665239" url="“ url="~“~/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1624786/sysconfig-sysconfig-1-14-0-how-to-disable-auto-discovery-of-incompatible-sdks-in-sibling-directories-to-maintain-binary-identity/6279394

    我建议尽可能将两个 SDK 都保留在工作区之外、以获得更简洁的解决方案。

    D:\ti\mcu_plus_sdk

    D:\ti\c2000ware...

    将工作区保留为  D:/_00_Git/...

    [/报价]

    您可以尝试一下吗? 我认为这可以解决这个问题。

    除了共享工作区中的某些依赖项之外、我无法确定为什么会出现此问题。  

    谢谢、

    IRA

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

    到 Ira

    感谢您努力解决此问题。

    但是、上述方法未能解决问题。

    似乎我们必须通过临时修改 JSON 文件扩展名来使用它。

    谢谢、

    Jiung Choi.

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

    您好 Choi、

    是的、这似乎是目前的一个很好的解决方法。 很抱歉、我们能找到更好的方法。

    我正在关闭此主题、如果您想继续讨论、请随时创建另一个主题。

    谢谢、

    IRA