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.

[参考译文] CCS:CCS XDC工具-测试编译器命令行参数

Guru**** 2609895 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/637092/ccs-ccs-xdc-tools---testing-compiler-command-line-parameters

工具/软件:Code Composer Studio

通常,大多数CCS项目都有一个CFG文件,该文件由configuro处理以配置TIRTOS和驱动程序lib。

在我的情况下,该文件称为“release.cfg”,CCS -在生成示例应用程序时调用带有多个参数的“configuro”。

在“release.cfg”文件中-我需要测试以查看特定编译器命令行选项是否已启用-如果已启用,我需要修改'release.cfg'文件中的其他内容。  在伪代码中,我需要以下内容:

如果 编译器命令行选项: '-DFOOBAR=1'出现在命令行中

然后

  /*将重置引导程序移动到另一个地址*/

  m3HWI.resetVectorAddress = 0x50;
  /*向量表位于RAM */的开头
  m3HWI.vectorTableAddress = 0x2000万;

否则

  /*将复位引导程序保留在地址0,不进行任何修改*/

环境

问题此时如何访问编译器命令行选项?

注:具体来说,这是使用“--compilerOptions”参数提供给configuro应用程序的命令行选项。

如果您可以向我展示一些简单的内容,例如:

print("the compiler options are:"???????????)

好极了。

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

    您好,Duane,

    您可以通过--cfgArgs传递到configuro。 例如,在项目属性中添加“foo=1”(以及详细输出):

    然后在生成输出中,您将看到 --cfgArgs "Foo=1"。

    我在.cfg中添加了此项,并且在生成输出中得到了“howdy1”。

    如果(foo){
    印刷("Howdy"+ foo");
    }

    你可以得到XDC目标指定的编译选项,但我认为这些就是你想要的。 您正在查找您在项目属性中定义的项目...正确吗? 遗憾的是,除了通过cfgArgs复制您感兴趣的文件外,我们无法在.cfg文件中访问这些文件。

    托德

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

    否-我需要专门的编译器标志

    编译器选项中有许多编译"-Dsomevalue=1",我需要检查它们并根据这些值执行操作。  以另一种方式进行是不实际的。

    虽然可以,但我可以执行"两件事"-"-foo=1"和"-DSOME_Define=1"方法  

    我更喜欢"一只一"规则-我有触发"-DSOME_Define=1"的现有C &文件-因此,我希望CFG文件检查编译器选项-如果找到字符串:"-DSOME_Define=1",请执行一些特殊操作。

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


    我同意其中一个地方更理想,但您要查找的编译选项不可用,除非您将它们添加到ti.targets定义中(我不建议这样做)。

    另一个选项(也不是很理想)是在.cfg中定义内容并在代码中使用它。 例如,您可以在.cfg中具有以下内容

    program.globe.bar = 1;

    然后在源中您可以拥有

    #include <XDC/cfg/globL.h>
    #ifdef栏
    #警告栏已定义
    #endif

    托德
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    调用configuro时,我要查找的编译选项会传递到命令行上的configuro脚本。

    Configuro中的其他内容可以访问此文件,我只需要访问'release.cfg'文件

    从'release.cfg'文件-如何访问传递给配置调用的所有现有命令行参数?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您可以解析.cfg中Program.build.target.ccopts.prefix的输出以获取--compilerOptions设置。 例如,我有  

    然后在.cfg中,我会  

    print("profileOpts.compileOpts"+ Program.builp.target.ccopts.prefix);

    我明白了。在生成输出中:

    ...

    profileOpts.compileOpts-Ddog=1 -qq -pdsw225

    ...

    请注意,这些编译器选项仅在configuro中用于构建内核。 目前,所有应用程序源文件(例如main.c)都不会定义“dog”。

    托德

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您给了我所需的线索-这给了我我想要的:

    print("============================================ ")
    Print ("选项为:"+ Program.built.target.ccOpts.prefix);
    print("============================================ ");

    从这里,我可以检查字符串,并找到我要查找的"-D"选项。