有人可以介绍一下ARM compiler的具体情况吗
比如armcc vs gcc,还有llvm的使用
主要想了解一下他们在ARM的历史,市场的情况,功能的区别,和未来的趋势
armcc 在代码的体积上貌似相比与开源gcc编译器更好,而且作为公司的商业产品,能涉及到处理器的更多细节,所做出来的优化应该也更好,想比较而言,gcc就更加的保守了。llvm最近势头很猛,因为使用不同的licence,一些商业公司比较青睐,而且作为后发起的项目,在初始设计的时候就考虑到gcc现存的一些问题,更加模块化,有很多先天的优势吧。但是gcc也在一步步进化,毕竟在目前的开源界,它还是标配吧。
armcc是作为ARM的一个独立产品向外出售的。可以提供完整的技术支持,同时在MCU领域,他的code size和performance都有很大的优势。armgcc过去由code sourcery维护,现在由ARM带头,联合其他厂商共同维护,主要是Cortex系列的enabling,支持A,R和M系列。LLVM是下一代的编译器框架,ARM内部在做研究,但因为属于内部信息,不便在这里多说。armcc和armgcc属于同一个市场,相互之间有竞争关系,但个有特色,armcc现在主要精力集中在强化在MCU领域的技术领先优势,armgcc主要强调早期的处理器enabling,和扩大生态系统,稳固ARM在移动设备的地位,比如Android。
LLVM 是以BSD方式的licence发布的. 这就意味着一些商业公司,比如Nvidia, 苹果没有必要发布任何他们对于源代码的修改或者添加。而 gcc使用的则是GPL license ,这就要求任何相关源码都必须开放出来,对于社区,这是一种回馈,但是商业公司就不是很喜欢。
ARMCC 专有软件,已经有20多年的历史,是ARM自有license, 用户可以通过ARM的技术支持获得帮助,目前主要针对嵌入式和裸机程序的开发。相对于GCC对最新处理器的支持更为完善,更新也较快。由于针对了裸机和嵌入式的优化,Code size较小和代码效率较高。而且ARM针对一些对安全信息敏感的用户提供了toolkit, 以帮助用户最终生成的产品符合ICE和ISO等国际安全标准。
GCC 开源软件 GPL License,用户只能通过开源社区获得帮助,目前主要针对Linux/Android 应用程序和内核的开发。GCC对于Linux应用的开发的优势,是ARMCC所不具备的
没有星可以给了。。。
no prob, 又不是为了星星滴
你说的armgcc是神马?
就是gcc的arm版本,gcc-arm-none-eabi or gcc-arm
LLVM呐,谁来介绍一下LLVM on ARM
不知道能不能在这说啊。。。
开发中,不知道有哪些是公开的信息可以发布
这就是为啥商业公司更热衷于LLVM啦
星星数量还有限制的?