描述
1.为什么不是gcc
在开发stm32的时候,编译工具链要使用gcc-arm-none-eabi,为什么不是gcc呢?这就要说到linux下的交叉编译了,因为我们要在PC机上编译出可以运行在ARM上的程序,使用gcc编译出的是在PC上运行的程序,所以我们要使用gcc-arm-none-eabi进行交叉编译~
2.gcc-arm-none-eabi toolchain 介绍及安装
gcc-arm-none-eabi是一个开源的ARM开发工具链,适用于Arm Cortex-M和Coretex-A系列处理器,包括GNU编译器(GCC),以及GDB,可用于Windows,Linux,MacOS上的交叉编译。
gcc-arm-none-eabi在ubuntu软件源仓库中就有,但是版本比较陈旧:
在此我们从[ARM官方下载链接](https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads)选择合适的版本下载(这里我选择Linux64):
解压下来是tar.ba2格式包,使用命令tar -jxf 解压到我们要安装的目录:
为了以后使用方便,将文件夹重命名:
它下面的bin目录就是我们要使用的编译工具链: