对于 ARM7 开发,Keil 与 GCC 相比如何?我正在为一个中型项目选择硬件顾问,有些使用 keil,有些使用 gcc。我想知道使用任一选项所涉及的问题......

有帮助吗?

解决方案

从编码/开发的角度来看,两者之间几乎没有什么区别。我认为您应该考虑的唯一一件事不是特定于这些编译器。 维护:

  • 如果您无法访问Keil编译器,您是否可以维护该软件?
  • 另外,支持哪些调试硬件/JTAG?如果您需要购买一些,成本是多少?
  • 如果您以后必须切换开发人员,您必须从一个编译器转移到其他编译器,费用将是多少?

除非你对成本非常敏感,否则我认为真正的问题是谁会做得最好,因为编译器将是一个小问题。

其他提示

它应该是可能的构造代码同时使用的编译器。属性,如“包装”可以macro'd了这样的代码是在既开心。推硬件细节减速到较低的水平,并在运行时,而不是编译时配置硬件的地图。如果你必须有一段代码的单独基尔和版本的GCC,把它们放在单独的文件和配置,其使用与GCC品牌或基尔项目文件。

的一个问题我还没有解决的是汇编代码。基尔使用armasm的,而GCC使用的。他们似乎有很不同的源代码格式。如果可以的另一个原因,以避免汇编

与GCC去的好处是,你可以针对非ARM平台 - 适合有更好的开发工具平台上模拟应用程序(即在x86下的Linux的valgrind)。事实上,这是该方法的每一个的ARM-目标应用应采取。端口在x86开发第一,然后到ARM。

有也保持当前与基尔的成本。一旦地方,我知道的是停留在RVDK 2.1(2002?),因为成本升级到最新的三个开发者望而却步。

我也想补充一点,GCC和迂腐将摇出代码中的警告和错误很多比基尔我们(当然是远古的)版本将更好。

基尔可能实现更紧密的ARM代码,所以把它做目标的基础之上。否则,使用GCC。

如果我记得没错基尔现在被ARM所拥有。 ARM编译器是白天和黑夜比GCC生产好的代码更好。我似乎记得凯尔包括RVCT的减少或自由或任何版本。所以我的问题是有更快,更清洁,更好的代码值得使用商业解决方案时GCC是在那里,很好用的?除非你是在表演紧缩局面,并愿意为有所有在网上免费提供给您的商业工具,然后再返回海湾合作委员会基于信息之间的翻译过来我就用gcc去。一般用gcc去可能是更好的路径,理所当然有可能是丰富的基尔谷歌搜索框,但知识和信息为基础的解决方案的gcc阴影量背后的信息。

如果顾问使用一个工具做初步跑腿为你一个项目,然后在最后,他们交出的工作,你可能会希望有一个基于GCC的解决方案(这并不意味着说VxWorks的GCC或即使代码的Sourcery GCC,而是一个普通的gcc的解决方案),因为毫无疑问,你或别人你雇用打算要挑这个大众起来与它和用gcc你更容易找到愿意并能够运行。

商业解决方案的主要优点是对我的支持,如果你碰上与编译器或库的问题。结果 当使用主要流的硬件(在GCC的情况下= 86)开源是好的。大多数编译器的问题或者正常的库将通过社区很快被固定。结果 如果你是一个(也许是外来)的嵌入式平台上开发你,如果你有工具链中的任何问题很快能感觉到很孤独。

我们使用Keil的平台,也很高兴与它的性能和优化。我在几年前进行了一些标准基准测试,他们是相当不错的。另一个要考虑的是支持,到目前为止,凯尔已经有了很好的响应时间和相对良好的反馈一些棘手的问题。

仅供参考,如果你的项目将使用Keil的RTOS,你对此有任何疑问,源代码可供购买。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top