首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ARM7的Keil vs GCC?

ARM7的Keil vs GCC?
EN

Stack Overflow用户
提问于 2009-08-04 09:01:13
回答 5查看 13.4K关注 0票数 14

在ARM7开发方面,Keil与GCC相比如何?我正在为一个中型项目选择hw顾问,一些人使用keil,一些人使用gcc。我想知道选择这两个选项时涉及到的陷阱...

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-08-04 12:43:50

从编码/开发的角度来看,两者之间的差别很小。我认为你唯一应该考虑的事情并不是特定于这些编译器。维护

  • 如果您没有访问Keil编译器的权限,您是否能够维护软件,或者这将是一笔很小的费用?
  • 还支持哪些调试硬件/JTAG,如果您需要获得一些调试硬件/JTAG,费用是多少?

  • 如果由于以后必须切换开发人员而不得不从一个编译器转移到另一个编译器,成本会是多少?

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

票数 8
EN

Stack Overflow用户

发布于 2011-11-21 07:37:18

应该可以构造代码以同时使用这两个编译器。像"packed“这样的属性可以进行宏化,这样代码在这两个属性下都能运行。将硬件详细信息下推到较低的级别,并在运行时而不是编译时配置硬件映射。如果一段代码必须有单独的基尔和GCC版本,请将它们放在单独的文件中,并配置与gcc生成或基尔项目文件一起使用的版本。

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

使用GCC的好处是您可以针对非ARM平台-非常适合在具有更好的开发工具的平台上模拟您的应用程序(例如,x86 linux下的valgrind )。事实上,这是每个面向ARM的应用程序都应该采用的方法。首先在x86上开发,然后移植到ARM。

还有保持与基尔保持同步的成本。我知道的一次在RVDK 2.1上卡住了(2002?)因为对于三个开发人员来说,升级到最新版本的成本太高了。

我还想补充的是,与我们的(诚然古老的)基尔版本相比,gcc & pedantic将更好地消除您代码中的警告和错误。

基尔可能会提供更紧凑的ARM代码,因此请保留它以用于目标构建。不然的话,就用GCC吧。

票数 6
EN

Stack Overflow用户

发布于 2009-08-04 14:16:19

如果我没记错的话,基尔现在归ARM所有。在生成好的代码方面,ARM编译器比gcc更出色。我似乎记得Keil包含了rvct的精简版或免费版或其他版本。所以我的问题是,当gcc在那里并得到很好的使用时,有更快,更干净,更好的代码值得使用商业解决方案?我会选择gcc,除非你在性能紧张的情况下,愿意在网上免费获得的所有基于gcc的信息与你的商业工具之间进行心理上的转换。总的来说,跟随gcc可能是一条更好的道路,当然在基尔的谷歌搜索框后面可能有大量的信息,但基于gcc的解决方案的知识和信息的数量掩盖了这一点。

如果顾问使用一种工具为您完成一个项目的初始跑腿工作,然后在最后他们将工作交给您,那么您可能希望有一个基于gcc的解决方案(这并不是说vxworks gcc或甚至代码源gcc,而是通用的gcc解决方案),因为毫无疑问,您或您雇佣的其他人将不得不承担起这一大堆工作并与之一起运行,而有了gcc,您更有可能找到愿意和有能力的人。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1226401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档