GCC和Greenhills在ARM上的比较

12

我对GCC和Greenhills C编译器在ARM平台上生成代码的内存占用方面进行比较感兴趣。

这些编译器有没有任何基准测试或比较?有没有人在这方面有经验想要分享?


http://www.eembc.org/coremark/index.php 是一个专为嵌入式开发人员创建的编译器基准测试网站。您还可以使用他们的工具来测试您自己的编译器。 - artless noise
2个回答

10

请注意,Green Hills EULA明确禁止许可证持有人发布基准测试结果。

您可以从Green Hills获取评估许可证并进行自己的基准测试。在任何情况下,这将是更可信和更具代表性的,因为您可以在真实的生产代码上进行测试。而且,在某些情况下,例如ARM7和Cortex-M3等处理器的基准测试可能会有很大的不同,因此任何可用的已发布结果可能无法进行直接比较,并且可能无法代表您的平台。

同时还要注意,即使来自相同代码版本的不同二进制GCC分发包(特别是软件浮点运算性能)也可能会产生截然不同的结果。因此,您最好只相信自己的评估结果。

您可能还考虑同时使用Keil和IAR,它们也有评估版本。为什么只考虑这两个呢?一般情况下,当有充足的预算并且可以从单一来源获得RTOS集成和调试器功能时,人们才会选择Green Hills;在我看来,仅仅使用编译器可能无法证明许可证费用的价值。


5
好的,听到了。在我看来,他们有点不太光明正大。 - Prof. Falken

4
我没有看到任何基准测试,但从我的经验来看,这两个编译器的代码大小和生成的代码非常相似。
Green Hills有很多文档和支持,如果您想要减少内存占用,使用GCC后,一旦您离开常规轨迹,就会感到孤独。Green Hills还支持压缩可执行映像,如果您的FLASH有限但RAM充足,则非常棒。
我还使用了自定义运行时和C库(这可以节省更多空间),但您需要挖掘一些信息才能获取GCC的信息,但是Green Hills可以通过生成构建文件的向导获得其中的一些内容。

1
我同意你所说的,但是我想补充一点,使用GCC进行自定义运行时也并不难。我认为两者都很好用。(但是我更喜欢GCC因为它的许可证。你可以基于Linux设置开发虚拟机或笔记本电脑,数量不限。当你需要引入顾问时非常方便,启动时间也很短。) - Prof. Falken

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接