arm-linux/elf/eabi交叉编译器

原文:http://blog.chinaunix.net/uid-25871104-id-2950902.html

arm的交叉编译器有三种类型(命名方式):arm-linux-, arm-elf-, arm-eabi

arm-linux一般用于编译linux程序,使用glibc库,arm-linux-elf用于编译uclinux或其他程序,使用嵌入式库,如uclib或newlib等。

arm-eabi是符合eabi规范的交叉编译器。关于EABI,可以参考另一篇博文。简单的说,EABI定义了一系列规范,如过程调用规范aacp,系统调用规范等。
arm-eabi可以使用各种不同的lib。
arm-eabi相比较前两者,最大的特点是,它支持FPA(Floating Pointer Accelrator),可以有效的提高浮点运算速度。但是对于没有FPA单元的硬件,使用arm-eabi编译的程序运行会更慢,因为对FPA的指令会产生未知指令的异常。



另外还可以参考:

http://blog.youkuaiyun.com/wfing/article/details/5818227

<think>好的,我需要分析用户提供的命令并解释其作用。首先,用户给出的命令是: ```bash wget https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2 ``` 我要理解这个命令的各个部分,并逐步解释它的用途。 首先,命令以`wget`开头,这是一个常用的命令行工具,用于从网络上下载文件。接下来是一个URL,指向特定的资源。我需要分解这个URL的结构,以了解下载的内容。 URL的路径是: ``` https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2 ``` 从路径来看,这似乎是ARM公司官方网站提供的下载链接。路径中的`gnu-rm`可能代表GNU工具链的ARM版本,`10.3-2021.10`是版本号,`gcc-arm-none-eabi`是工具链的名称,适用于没有操作系统的嵌入式ARM处理器(none-eabi)。`x86_64-linux`表明这是针对Linux系统的64位版本,文件格式为.tar.bz2的压缩包。 接下来需要确认这个工具链的用途。GCC ARM None EABI是用于交叉编译的工具链,允许开发者在x86 Linux机器上编译生成运行在ARM架构嵌入式设备上的代码。版本号10.3-2021.10可能对应GCC 10.3,发布于2021年10月。 用户可能正在设置嵌入式开发环境,需要安装这个工具链来编译他们的项目。使用wget命令直接下载,之后可能需要解压并配置环境变量。 需要确保解释清楚每个部分的作用,包括wget、URL结构、工具链的用途以及后续可能的步骤。同时提醒用户注意版本兼容性和系统架构是否匹配。</think>您使用的这个`wget`命令是用于 **下载ARM公司官方提供的GNU嵌入式工具链**,具体分析如下: --- ### 一、命令分解 ```bash wget https://developer.arm.com/.../gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2 ``` 1. **`wget`**:Linux命令行下载工具,支持HTTP/HTTPS/FTP协议 2. **URL结构**: - `developer.arm.com`:ARM公司官网 - `gnu-rm`:GNU工具链的ARM嵌入式版本(*GNU Toolchain for ARM Embedded Processors*) - `10.3-2021.10`:工具链版本号(GCC 10.3,发布于2021年10月) - `x86_64-linux`:适用于64位Linux系统 - `tar.bz2`:采用Bzip2压缩的tar归档文件 --- ### 二、下载内容说明 文件 `gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2` 包含: - **ARM嵌入式开发工具链**: - 编译器:`arm-none-eabi-gcc` - 调试器:`arm-none-eabi-gdb` - 二进制工具:`objcopy`, `objdump`, `nm`等 - **适用场景**: - 开发裸机(*bare-metal*)程序 - 实时操作系统(RTOS)开发 - ARM Cortex-M/R系列芯片开发 --- ### 三、典型使用场景 1. **交叉编译环境搭建**: ```bash # 解压到/opt目录 sudo tar -xjf gcc-arm-none-eabi-*.tar.bz2 -C /opt # 添加环境变量 export PATH=$PATH:/opt/gcc-arm-none-eabi-10.3-2021.10/bin ``` 2. **编译ARM项目**: ```bash arm-none-eabi-gcc -mcpu=cortex-m4 -o firmware.elf main.c ``` --- ### 四、注意事项 1. **版本匹配**: - 确认目标设备是否支持GCC 10.3 - 检查硬件架构(如Cortex-M3/M4/M7等) 2. **系统兼容性**: - 需64位Linux系统(Ubuntu/CentOS等) - 确认glibc版本要求 3. **替代方案**: - 通过包管理器安装(如Ubuntu的`apt install gcc-arm-none-eabi`) - 使用其他工具链(如LLVM/Clang) 建议通过[ARM官方下载页面](https://developer.arm.com/Tools%20and%20Software/GNU%20Toolchain)验证最新版本及文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值