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/CCStudio:添加构建工具

Guru**** 2563960 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/593911/ccs-ccstudio-adding-build-tools

部件号:CCStudio

工具/软件:Code Composer Studio

这是一种相当烦人的形式(尤其是必须重新选择论坛)。

代码编辑器工作室 版本:5.3 .0.0.009万

我正在尝试做一些我"知道"应该简单的事情,但我尚未决定如何使用TI构建系统来完成。 我知道它应该很简单,因为这是每个开发人员都需要做的事情。

我正在尝试了解如何将工具添加到构建流程中。 要开始执行静态分析和单元测试,当然,代码生成工具也要继续。 因此,这些工具不能作为预构建或后构建步骤运行(这些步骤看起来很容易添加),因为这些步骤似乎在每个构建中运行一次,而不管是否出现错误,显然不会停止构建。 静态分析和单元测试都需要在编译之前运行,如果编译失败,则会导致构建失败。

罗伯特

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

    CCS中包含一些有限的静态分析,但是对于更高级的分析,我们建议使用一些商业工具。
    有关 相关信息,请参阅此帖子和此帖子。

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

    如果您重新阅读我的帖子,您会发现我不是询问工具可用性,而是询问如何将工具集成到构建过程中。 很抱歉,如果不清楚。

    我有工具,我缺少工具集成说明。 我引用的工具只是一些示例,供那些可能不了解编译器不足的原因的人使用。

    罗伯特

    顺便提一下,TI编译器实际上似乎没有太多的静态分析支持

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

    第三方代码分析工具的集成实际上取决于工具本身,说明通常来自工具的供应商。 上面提到的链接中提到的大多数插件都提供了集成到Eclipse环境中的插件(例如,下面是我找到 的几个有关Klockwork和 LDRA的参考)

    关于CCS中的内置代码分析,它来自 Eclipse CDT ,并且确实是有限的。 对于CCS项目,默认情况下也禁用此功能,但可以通过本 页中提到的项目设置启用此功能。

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

    AartionG 说:
    上述链接中提到的大多数插件均提供插件[/QUOT]

    我不是在寻找插件(当然不是为我编写的任何代码生成器寻找插件)。 正如我之前所说,我正在寻找有关如何集成到版本中的说明。 我所使用的所有工具都具有直接的命令行界面,并返回错误代码,并且已经使用了至少30年。 这是标准集成问题。

    这应该是简单和直截了当的,但我看不到如何做到这一点的指示。

    罗伯特

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

    您好,Robert:

    对于自定义预构建步骤(或后构建步骤)行为,您可以将自己的挂钩编写到生成的makefile中。

    要实现您所描述的行为(在CCS v.5.3 0中):

    1. 将附加的“makefile.init"”文件添加到项目的根目录中。

    2. 转至项目属性“生成”>“行为”选项卡,选择“首次生成错误时停止”,并确保未选中“启用并行生成”:

    现在,当您生成项目时,在自定义步骤中执行“@mkdir A*b”命令失败后,生成将立即停止。  如果您将命令更改为"@mkdir ab",则您的自定义步骤将成功,并将继续进行其余的构建。

    如果您的问题得到了解答,请告诉我。

    谢谢!

    -巴尔塔萨尔

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

    越来越近了

    Baltasar Belyavsky 说:
    将附加的makefile.init"文件添加到项目的根目录中。

    我没有看到附加文件。 我是否缺少某些链接?

    Baltasar Belyavsky 说:
    对于自定义预构建步骤(或后构建步骤)行为[/QUOT]

    从原始帖子中

    Robert Adsett 说:
    因此这些工具不能作为预构建或后构建步骤运行(这些步骤似乎易于添加),因为这些步骤似乎在每个构建中运行一次,而不管...[/QUOT]

    也许这需要进一步澄清。 这些是构建过程的一部分,而不是与构建分开的独立步骤。例如,您可能会运行类似的操作

    对于目标文件A

    • 使用支持代码将文本表A转换为C (文件A)
    • 对生成的代码A运行静态分析
    • 对生成的代码A运行单元测试
    • 将生成的代码A编译为目标文件A

    对于目标文件b

    • 对 代码b运行静态分析
    • 对代码b运行单元测试
    • 将 代码b编译为目标文件b

    最后将编译的文件链接到二进制文件

    要作为预构建步骤运行,您需要复制和维护两个构建系统。 在这种情况下,您需要走得更远才能放弃TI构建系统,因为它只会造成混乱。

    ... 并且显然不会停止生成错误[/QUOT]

    我假定构建时停止错误不适用于构建前和构建后步骤,因为没有其他指示,并且选项名称指示它仅适用于构建。 很好的解决了这个问题。

    罗伯特

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

    很抱歉,附上我上一篇文章中引用的makefile.init"文件(带有额外的".txt"扩展名以绕过上传筛选器):  

    e2e.ti.com/.../makefile.init.txt

    此示例说明了如何挂接到生成的makefile以编写自定义预构建步骤的脚本。  同样,可以为单个源文件编写钩脚本。  或者,如果要完全自定义makefile,可以转到项目属性,“生成”>“生成器”选项卡,然后取消选择“自动生成Makefile”。  如果在生成项目一次之后执行此操作,则可以编辑(或完全重写)生成的makefile。

    -巴尔塔萨尔

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

    更好。

    或者,如果要完全自定义makefile,可以转到项目属性,“生成器”>“生成器”选项卡,然后取消选择“自动生成Makefile”。  [/引述]

    看到了这一点,只是想看看是否有任何合理的方法可以避免这种情况。

    我认为要这样做,您需要修改顶层目标以控制构建顺序。 然后,为单元测试之类的内容添加规则就变得简单明了。

    但如果您没有提供挂钩,那么我认为我们将重新更换构建系统。

    罗伯特