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.

[参考译文] CC2652P:从 CLI 使用 SysConfig 生成 ZNP.sysfg

Guru**** 2457340 points
Other Parts Discussed in Thread: CCSTUDIO, Z-STACK, CC1352P, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1397346/cc2652p-using-sysconfig-from-the-cli-to-generate-znp-sysfg

器件型号:CC2652P
Thread 中讨论的其他器件:Z-STACKCC1352P、CCStudio、 SysConfig

工具与软件:

大家好、

我正在尝试实现项目自动化。 具体来说、是 Koenkk 的 Z-Stack 构建。

目前已安装 CCS 和 SDK、并通过示例生成工作区。 例如

μ```控制台

Eclipse -noSplash -data "/build/workspace -application com.ti.ccstudio.apps.projectImport -ccs.location "${home}/examples/rtos/CC1352P_2_LAUNCHXL/zstack/znp/tirtos7/ticlang/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang.projectspec

```μ A

这很好,但如果我看一下生成/包含`znp.syscfg`它甚至不接近 Koenkk 在他的修补程序中有什么。 实际上、他所做的是打开 eclipse、在 GUI SysConfig 编辑器中打开`ZNP.syscfg`、并修改随机值、以触发 SysConfig 中的更改。 在保存 uppon 时、我现在得到了"正确"生成的 Znp.syscfg (例如要短很多)。

完成此步骤后、我想(同样、但这可能也可以通过添加一个值来实现)通过 syscfg 添加一个打开的配置。 例如、`CCFG.enableDCDC = false;`使用`sysconfig_cli.sh`

这是可能的吗? 我怎样才能做到这一点。

谢谢你。

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

    嗨、Olliver、

    以下是 Code Composer Studio 用户指南Z-Stack 用户指南中的 SysConfig 资源。  可以在文本编辑器中打开*。syscfg 文件以进行自定义更改、也可以在 SysConfig 编辑器中找到相关的 SysConfig 模块。  在编译主 ZNP 应用工程之前、CCS 工程环境将首先编译 SysConfig 输出文件。  您可以从 CCS Console 窗口查看执行 SysConfig 的调用。

    Building file: "../znp.syscfg"
    Invoking: SysConfig
    "C:/ti/sysconfig_1.18.1/sysconfig_cli.bat" --script "C:/Users/a0274016/workspace_v12/znp_LP_CC2651R3SIPA_tirtos7_ticlang/znp.syscfg" -o "syscfg" -s "C:/ti/simplelink_cc13xx_cc26xx_sdk_7_40_00_77/.metadata/product.json" --compiler ticlang
    Running script...

    此致、
    Ryan  

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

    我没有发现这一点、但在执行更改后(手动)编译时看到了它。 有趣的是,例如 sysconfig_cli.sh -- help 没有列出'--compiler'。

    我自己调用 SysConfig、作为

    ```μ A

    sysconfig_cli.sh --output /build/workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ --board '/ti/boards/CC1352P_2_LAUNCHXL' --product '/build/simplelink_cc13xx_cc26xx_sdk_7_10_00_98/.metadata/product.json' --rtos 'tirtos7' /build/simplelink_cc13xx_cc26xx_sdk/source/ti/zstack/sysconfig/znp.syscfg
    ```μ A

    但是、这与通过 IDE 的更改切换执行该操作时不同、不会产生相同的`znp.syscfg`。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    对于为什么 CCS 中 SysConfig 编辑器内的任何更改都会导致*。syscfg 内容发生重大更改、我没有任何意见。  目标是使用*。syscfg 文件作为构建.c/.h 输出文件的输入、这些文件对于 ZNP 工程至关重要。  因此、独立使用 sysconfig_cli.sh 并不重要、除非您还计划使用 CLI 构建 ZNP 并在 CCS IDE 之外。

    此致、
    Ryan

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

    我的目标确实是完全从 CLI 构建整个 ZNP 项目、例如从 CI 流水线构建。 对我来说、似乎生成了两次 ZNP.syscfg?

    首先、在导入示例 ZNP 项目时、会添加一些很小的内容(可能只有 CLI.args 位)。 接下来、eclipse/ccs 中的 SysConfig 浏览器组件会执行"其他"操作(这大大减少了文件、并仅留下实际使用的部分、目前、我立即复制(并覆盖)该文件(将其推送到存储器后、我可以稍后链接它)。


    最后,当我从 CLI 编译项目, SysConfig 再次生成文件...

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

    ZNP 工程包括 SysConfig 子目录编译指令、这些指令按照我之前概述的那样执行 SysConfig 编译。  因此、您应该能够遵循 CCS 命令行指令 、而无需单独构建 SysConfig。

    此致、
    Ryan

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

    这一切都按预期运行。 但生成的文件与通过 IDE 和 Console 启动时的文件不同、看起来是这样的。 我将回顾您所说的内容、看看我是否能找出差异。

    BTW、在 ZNP 项目中、我只找到以下文件:

    ```μ A

    ZNP/tirtos7/IAR/ZNP_CC1352P_2_LAUNCHXL_tirtos7_IAR.EWD
    Znp/tirtos7/IAR/ZNP_CC1352P_2_LAUNCHXL_tirtos7_iar.template.eww
    ZNp/tirtos7/IAR/Sys Config_Generated_Files
    ZNp/tirtos7/IAR/ZNP_CC1352P_2_LAUNCHXL_tirtos7_iar.ewp
    ZNp/tirtos7/IAR/ZNP_CC1352P_2_LAUNCHXL_tirtos7_iar.ipcf


    znp/tirtos7/ticlang/ znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang.projectspec
    Znp/tirtos7/Znp.syscfg
    ZNP/README.html

    ```μ A

    您 具体指的是哪一种? 因为如果我删除'IAR'相关文件、最后只需`ZNP.syscfg`(这是我在上面提到的)和 projectspec 文件。

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

    现在推动了我的改变、我可以使它变得非常具体。 这是由 eclipse UI 生成的文件: https://github.com/Koenkk/Z-Stack-firmware/blob/21355f8ab3d1bfaf2f42f895072591fbbc7f447b/coordinator/Z-Stack_3.x.0/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang.syscfg

    我在导入之后、SysConfig 之后以及编译之后拥有的文件仍然类似: https://github.com/TexasInstruments/simplelink-zstack-examples/blob/main/examples/rtos/CC1352P_2_LAUNCHXL/zstack/znp/tirtos7/znp.syscfg

    那么为什么会有差异呢? 这是什么神奇的 SysConfig 选项导致了从一个选项到另一个选项的改变。 我肯定会错过一些东西! 当我从 IDE "编辑" SysConfig 中的一个文件时、就会发生更改。 只有"安全"操作才会触发这种情况。

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

     在构建工作区之前、您需要将 znp/tirtos7/ticlang/ticlang znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang.projectspec 导入到工作区中。   如果在使用 CCS CLI 工具时遇到任何问题、我建议您在 Code Composer Studio 论坛上发布新主题。  以下是 projectspec 中的 SysConfig 编译选项、CCS 将在工程编译期间使用这些选项:

            enableSysConfigTool="true"
            sysConfigBuildOptions="
                --product ${COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR}/.metadata/product.json
                --compiler ticlang

    您所描述的 SysConfig 行为是典型的、我将从最后进行观察  我 不完全理解 SysConfig 的操作、因此我无法评论为什么默认的 SimpleLink F2 SDK *。syscfg 文件采用单向格式、但在 SysConfig 编辑器中对文件进行任何更改并保存后进行了更改。  在 SysConfig 板视图中使用"Custom Board"工具时、也可以进行更改。  原因可能在于、对任何使用 SysConfig 的器件(而不仅仅是 SimpleLink 产品)实施了通用格式系统。  任何一个版本都会成功构建 ZNP 项目。  我建议您对工程使用"Koenkk"版本、并根据需要使用 SysConfig 编辑器或文本编辑器进行修改。  如果这是不可接受的、请准确描述您在使用此方法时遇到的问题。

    此致、
    Ryan  

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

    很抱歉、如果我不清楚、但我确实导入了 projectspec、正如我在起始帖子中所写的那样。

    ```μ A

    Eclipse -noSplash -data "/build/workspace -application com.ti.ccstudio.apps.projectImport -ccs.location "${home}/examples/rtos/CC1352P_2_LAUNCHXL/zstack/znp/tirtos7/ticlang/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang.projectspec

    ```μ A

    下一步是用一些魔法运行 SysConfig 以生成预期的文件(我现在使用预生成文件的简单"副本"来执行此操作、这会覆盖"奇数"(很正常、因为它看起来确实像模板)文件。

    该操作完成后、我开始运行

    ```μ A

    Eclipse -noSplash -data "${home}/workspace"-application 'com.ti.ccstudio.apps.projectBuild'-ccs.projects 'ZNP_CC1352P_2_LAUNCHXL_tirtos7_ticlang'

    ```μ A

    这样会得到一个功能二进制文件;我想了解如何生成预期的 SysConfig 文件、然后打开 IDE 以生成所需的文件。

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

    如果您不愿意在 SysConfig 编辑器中打开文件、则可以在文本编辑器中编辑*。syscfg 以满足您的应用程序需求、然后 SysConfig 构建器将 在 projectBuild 过程中相应地生成输出文件。  选择一个工作基准版本进行开发后、您不应该特别关注*。syscfg 文件格式。

    此致、
    Ryan

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

    我正在编辑该文件,它只是 SysConfig (在 eclipse )做了一些魔术,我似乎不能在外面复制(仅使用 SysConfig ). 可能需要调用未记录的工具。 我确信这是可行的,除非 SysConfig (在 eclipse 中)在读取文件时,将其存储在内存中,当你做出更改时,会写出它的内存存储版本,这是轻微的处理和略有不同。 我将上面的不同之处链接起来、下面显示了这些不同之处。 例如、当 eclipse 保存文件时、版权标题被删除、一些 if 语句、CCFG 节等被添加。 所以它会"完成"。

    当我正在进行自动 CI/CD 构建时、启动 Eclipse 来触发变化是不可行的。  我当前在存储库中存储了"最终生成的 ZNP.syscfg"、但我还注意到、SysConfig 会很乐意地将东西四处移动(在相同的引脚上将 UART0切换到 UART1、这没有明显的原因。 两个版本都将建立和运行良好,因为只有一个 UART 仍然使用,但这些"更改"不适合我:p)此外,它也是教育挑战想要能够再现任何 GUI 正在做的。 也许这是最重要的部分,所有:)