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.

[参考译文] LAUNCHXL-CC26X2R1:SYSCFG

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1316818/launchxl-cc26x2r1-syscfg

器件型号:LAUNCHXL-CC26X2R1
主题中讨论的其他器件:SysConfig

是否可以在 syscfg 文件中添加条件语句?

可表示为:

#if 定义的调试

XYZ .addr = 0x1000

#else

XYZ。addr = 0x5000

#endif

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

    尊敬的 Manoj:

    在文本编辑器中修改 SysConfig 文件时、可以添加条件语句。  下面是一个 openthread 示例 和我自己的基本示例:

    if(0) gpio.$name = "CONFIG_GPIO_LED_0";
    else gpio.$name = "CONFIG_GPIO_LED_HI";

    其中、仅仅将0更改为1会使 GPIO 名称从 CONFIG_GPIO_LED_HI 更改为 CONFIG_GPIO_LED_0。

    此致、
    瑞安

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

    谢谢 Ryan。
    我尝试了类似的方法:

    if (调试)

    XYZ .addr = 0x1000

    否则

    XYZ。addr = 0x5000

    但是、出现错误:

    ReferenceError:调试未定义
    在 scriptFunc……

    Debug 是一个预定义符号。  

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

    您可能已将调试定义为预定义的编译器符号、但 SysConfig 会在编译器编译工程之前运行。  由于 SysConfig 环境不需要预定义、因此您可以直接在文件中设置常量值、而是:

    // @cliArgs --board /ti/boards/CC26X2R1_LAUNCHXL --rtos tirtos7
    
    const DEBUG = 0;
    
    /*
     *  empty.syscfg
     */
    var Power = scripting.addModule("/ti/drivers/Power");
    
    /* ======== Kernel Configuration ======== */
    system.getScript("kernel_config_release.syscfg.js");
    
    /* ======== GPIO ======== */
    var GPIO = scripting.addModule("/ti/drivers/GPIO");
    var gpio = GPIO.addInstance();
    gpio.$hardware = system.deviceData.board.components.LED0;
    if(DEBUG==0) gpio.$name = "CONFIG_GPIO_LED_0";
    else gpio.$name = "CONFIG_GPIO_LED_HI";

    此致、
    瑞安

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

    谢谢 Ryan。  
    是的、调试是预定义编译器符号。  

    我的目的是合并两个项目(并且这是 SysConfig 文件)。 这两者之间的唯一区别是符号调试。 和 syscfg 文件为每个工程使用一些特定的行、我认为可以根据此符号单独执行这些行。  

    如果我将该值设置为文件本身中的常量、则会使 if-else 无法根据构建配置动态运行。  

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

    您是否会考虑使用两种不同的 构建配置?  这样、根据所选的活动编译配置、每个都可以有不同的 SysConfig 文件版本。

    此致、
    瑞安

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

    是的,这似乎是我必须选择的选项。  
    我还想组合 syscfg、因为差异仅为几行。

    谢谢

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

    尊敬的 Manoj:

    与 SysConfig 开发团队交谈后、最好的解决方案是向"Project Properties"-> CCS Build -> SysConfig -> Miscellaneous"中添加一个 scriptArgs 标志:

    --scriptArgs DEBUG

    得到的 SysConfig 代码配置如下所示:

    // @cliArgs --board /ti/boards/CC26X2R1_LAUNCHXL --rtos tirtos7
    
    console.log(argv);
    
    /*
     *  empty.syscfg
     */
    var Power = scripting.addModule("/ti/drivers/Power");
    
    /* ======== Kernel Configuration ======== */
    system.getScript("kernel_config_release.syscfg.js");
    
    /* ======== GPIO ======== */
    var GPIO = scripting.addModule("/ti/drivers/GPIO");
    var gpio = GPIO.addInstance();
    gpio.$hardware = system.deviceData.board.components.LED0;
    if(argv[1]==="DEBUG") gpio.$name = "CONFIG_GPIO_LED_0";
    else gpio.$name = "CONFIG_GPIO_LED_HI";

    此致、
    瑞安

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

    谢谢 Ryan。 将查看该选项。