12

我对 GCC 和Greenhills C编译器之间关于生成代码的内存占用量的任何比较感兴趣,特别是在 ARM 平台上。

这些编译器是否有任何基准或比较?有没有人在这里有任何经验想分享?

4

2 回答 2

10

您应该注意,Green Hills EULA 明确禁止被许可人发布基准。

您可以做的是从 Green Hills 获得评估许可证并执行您自己的基准测试。无论如何,这将更值得信赖和具有代表性,因为您可以在真实的生产代码上对其进行测试。并且在任何情况下,例如 ARM7 的基准测试可能与 Cortex-M3 的基准测试非常不同,因此任何可用的已发布结果可能无法进行同类比较,也可能无法代表您的平台。

还要注意的是,即使表面上来自相同的代码库版本(特别是软件浮点性能),我也经历过来自不同二进制发行版的 GCC 的差异很大的结果。所以你最好还是只相信自己的评估结果。

您可以同时考虑 Keil 和 IAR,它们也有评估版本。为什么只考虑这两个?人们通常会在预算大时选择 Green Hills,并且可以从单一来源提供的 RTOS 集成和调试器功能中受益;单独使用编译器可能获得的任何好处都不太可能证明 IMO 的许可成本是合理的。

于 2010-01-25T21:05:38.073 回答
4

我没有看到任何基准测试,但根据我的经验,这两个编译器的代码大小和生成的代码非常相似。

如果您想减少内存占用,Green Hills 有大量的文档和支持,而使用 GCC,一旦您离开人迹罕至的地方,它就会很快变得孤独。Green Hills 还支持压缩的可执行映像,如果您的 FLASH 有限但 RAM 充足,这将非常有用。

我还在两个编译器中使用了自定义运行时和 C 库(这可以为您节省更多空间),但是您需要进行一些挖掘以获取 GCC 的信息,但是在 Green hills,您可以通过生成的向导获取一些东西构建文件。

于 2010-01-22T08:30:54.973 回答