本文介绍如何下载安装 gnu-arm 工具链和 msys2,搭建 GDK3 的开发编译环境。

1交叉编译简介

与交叉编译相对应的是本地编译,是指在当前编译平台下,编译出来的程序只放到当前平台下运行。比如我们在 x86 平台上编写程序并用 x86 平台的工具编译成在 x86 平台运行的程序。

而交叉编译就是在当前平台编译的程序放到体系结构不同的另一种目标平台上,而当前平台不能运行。比如我们在 x86 平台上编写程序并编译成能运行在 ARM 平台的程序,编译得到的程序在 x86 平台上是不能运行的,必须放到 ARM 平台上才能运行。

那么交叉编译就需要相应的编译工具来实现。编译过程是按照不同的子功能,依照先后顺序组成的一个复杂的流程,每一个子功能都需要相应的工具来实现,实现这些功能的工具一起形成了集合。

同时编译要按照一定的顺序来进行,每个工具按照使用联系的前后关系排序形成链式结构,就形成了工具链。

GDK3 是基于 ARM Cortex-M3 SoC设计的,因为M核上不能运行开发环境,所以开发M核上的固件时需要交叉编译环境。

2下载安装 gnu-arm 工具链

选择

安装,注意安装时将安装路径修改的短一些,比如d:\GnuArmToolchain,方便后续操作。(千万不要在安装目录名里面带空格,后面MSYS2设置环境变量会出现问题)

安装时记得选中Add Path to environment variable,不然每次手工设置比较麻烦

我们需要的工具链在bin文件夹里:

打开文件夹能看到很多工具:

其中我们重点需要关注的5个如下:

arm-none-eabi-gcc :GCC 可以被认为是整个工具链的驱动程序,因为它可以负责整个过程,并将给定项目的所有源文件转换为一个最终可执行文件
arm-none-eabi-as :“as” 代表汇编语言,它将汇编语言的助记符翻译成操作码
arm-none-eabi-ld :“ld” 是 GNU 的链接器和定位器的组合
arm-none-eabi-objcopy :objcopy 是负责获取 elf 或 coff 二进制文件的工具,并以一种可以在微控制器上烧录的方式打包它们
arm-none-eabi-gdb :调试器

更多信息可以参考:
https://sourceware.org/binutils/
https://blog.csdn.net/love131452098/article/details/115449563

这些工具链可以帮助我们实现交叉编译,生成可以在 GDK3 中执行的程序。

3 下载 msys2

  • 下载和安装 msys2,在 Windows 上模拟 Linux 的 MING 环境
    https://www.msys2.org/
    点击蓝色链接进行下载,安装步骤参考官方网页教程。

    关于 msys2,简单来说是为了更方便地使用 GNU 工具链而提供一个可执行shell 脚本的运行环境,从而可以在 Shell 中调用 MinGW 提供的工具如gcc, make, linkr 等。
    如果想深入了解 msys2 的历史,更多信息可以参考:
    https://blog.csdn.net/qq_36525177/article/details/115279468
作者:Zhang Yinkui  创建时间:2022-08-02 15:53
最后编辑:Zhang Yinkui  更新时间:2024-05-24 18:52