arm交叉编译器gnueabi、none-eabi、arm-eabi等的区别

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

arm交叉编译器gnueabi、none-eabi、arm-eabi等的区别

命名规则

交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi]

arch –体系架构,如ARM,MIPS

vendor –工具链提供商

os –目标操作系统

eabi –嵌入式应用二进制接口(Embedded Application Binary Interface)

根据对操作系统的支持与否,ARM GCC可分为支持和不支持操作系统,如

arm-none-eabi:这个是没有操作系统的,自然不可能支持那些跟操作系统关系密切的函数,比如fork(2)。他使用的是newlib这个专用于嵌入式系统的C库。

arm-none-linux-eabi:用于Linux的,使用Glibc

实例

1、arm-none-eabi-gcc

(ARM architecture,no vendor,not target an operaTIng system,complies with the ARM EABI)用于编译ARM 架构的裸机系统(包括ARM Linux 的boot、kernel,不适用编译Linux 应用 ApplicaTIon),一般适合ARM7、Cortex-M 和 Cortex-R 内核的芯片使用,所以不支持那些跟操作系统关系密切的函数,比如fork(2),他使用的是newlib 这个专用于嵌入式系统的C库。

2、arm-none-linux-gnueabi-gcc

(ARM architecture, no vendor, creates binaries that run on the Linux operaTIng system, and uses the GNU EABI)

主要用于基于ARM架构的Linux系统,可用于编译ARM 架构的u-boot、Linux内核、linux应用等。arm-none-linux-gnueabi基于GCC,使用Glibc库,经过Codesourcery 公司优化过推出的编译器。arm-none-linux-gnueabi-xxx 交叉编译工具的浮点运算非常优秀。一般ARM9、ARM11、Cortex-A 内核,带有Linux 操作系统的会用到。

相关文档
最新文档