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.

[参考译文] CCSTUDIO:CCS MSP430 Compiler // Predefined Symbol // Symbol with value

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1639273/ccstudio-ccs-msp430-compiler-predefined-symbol-symbol-with-value

部件号: CCSTUDIO

您好 TI、

我查找语法来创建预定义符号。 在我的示例中,它的符号名“HWID_VARATION",“,这应该有不同的值, MYVAR1,..

如何在此窗口中输入?

image.png

属于 c 的代码如下所示:

 

----------------------------

#if HWID_Variant == MYVAR1
 #定义 MYDEFS ...
 
#elif HWID_VARDITION == MYVAR1
 #定义 MYDEFS ...
 
#else
 //没有选择
 #error “不支持的 HWID_VARIANT 值!“
#endif

----------------------------

 

感谢您的支持。

 

BR、

Andreas

 

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

    您好 Andreas、

    如何在此窗口中输入它?

    您是否询问如何将其他预定义符号添加到该 GUI 的构建选项中? 如果是、您可以使用“添加“按钮添加新符号:

    谢谢

    Ki

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

    感谢您发送编修。  

    您是否询问如何在该 GUI 的构建选项中添加其他预定义符号?

    编号

    我想知道如何在 GUI 中插入、它会以以下命令结尾:-DHWID_Variant=MYVAR1

    使用--define 的方法是有效的、但不使用-D

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我想知道如何在 GUI 中插入、它将以以下命令发送:-dhwid_variation=MYVAR1

    只需添加:

    HWID_Variant=MYVAR1

    这是屏幕截图中的内容、是正确的。

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

    好的、但在 Eclipse 中是禁用的 Macros Gray、因此这不是使用此设置的情况:



    如果我寻找 Compiler Call 选项、这看起来也很奇怪:


    --define=HWID_VARIANT=MYVAR2

    所以我认为有些事情是错的。

    谢谢。

    BR、

    Andreas

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

    MYVAR1 和 MYVAR2 设置为哪些值?

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

    很抱歉让人困惑、它是一个字符串、名称是 MYVAL1 和 MYVAL2。 我们喜欢用这个模拟切换一些宏:

    #if HWID_VARIANT == MYVAL1
      #define MYDEFS ...    # config A
     
    #elif HWID_VARIANT == MYVAL1
      #define MYDEFS ...    # config B
     
    #else
      // No selection
      #error "Unsupported HWID_VARIANT value!"
    #endif

    这意味着 CCS 必须将案例 A 的宏 HWID_FORMAT 设置为值 MYVAL1、而案例 b 的宏 HWID_FORMAT 设置为值 MYVAL2。 如果我们以这种方式编写 HWID_Variant=MYVAL1、则 CCS 会使用“--define=HWID_Variant=MYVAL2"调用“调用编译器。 在这个调用中定义不起作用。 如何引入将使用“-DHWID_Variable=MYVAL2"发送“发送我们分配的 CCS。 这样就可以了。

    感谢你的帮助。

    BR、

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

    我认为 C 预处理器指令#if仅支持整数常量表达式。

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

    但请看这里:



    “Help"(“(帮助(帮助)中列出了所需的选项。 叠加注释:“aliases:--define -D..“ D 是我们应该能够做到的选项。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    叠加注释:“aliases:--define -D..“ D 是我们应该能够执行的操作

    我不确定我是否理解。

    D 和--define 的作用相同。 --- define 是长格式选项、-D 是别名

    https://downloads.ti.com/docs/esd/SLAU132M/index.html#SLAU132M_HTML/using-the-c-c-compiler.html#Table_2-11_Predefined_Symbols_Options% FTocPath%3D2%2520Using%2520 该 e%2520C%252FC%252B%252B%2520 编译器%7C____ 14

    --define=HWID_VARIAND=MYVAL2.

    DHWIND_VARIAND=MYVAL2

    执行相同的操作。

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

    感谢您的评论。 根据你的链接,如果它的工作:

    --define=name[=def]

    但在 CCS12.4 中、禁用代码似乎不起作用:

    看这里、我们通过--define=HWID_variant=MYVAR2 进行了设置。 但它是灰色的。

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

    是的、如果 MYVAR1 和 MYVAR2 未定义、我会看到相同的行为。 正确定义它们后、它就会起作用。

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

    正是这似乎不起作用、请参阅上面的代码片段。 Overlay 菜单显示:宏扩展 MYVAR2、但具有相同 MYVAR2 的分支呈灰色-->不工作、至少在编辑器中是如此。

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

    尝试将 MYVAR1 和 MYVAR2 定义为数值常量、如:

    然后查看编辑器中禁用的代码是否按预期工作:

    这应该起作用、因为预处理器条件语句使用整数表达式。