二.搭建GDK3的开发编译环境,下载安装gnu-arm工具链和msys2.

2.1交叉编译简介

与交叉编译相对应的是本地编译,是指在当前编译平台下,编译出来的程序只放到当前平台下运行。比如我们在X86平台上编写程序并用X86平台的工具编译成在X86平台运行的程序。
而交叉编译就是在当前平台编译的程序放到体系结构不同的另一种目标平台上,而当前平台不能运行。比如我们在 x86平台上编写程序并编译成能运行在ARM平台的程序,编译得到的程序在x86平台上是不能运行的,必须放到ARM平台上才能运行。
那么交叉编译就需要相应的编译工具来实现。编译过程是按照不同的子功能,依照先后顺序组成的一个复杂的流程,每一个子功能都需要相应的工具来实现,实现这些功能的工具一起形成了集合。
同时编译要按照一定的顺序来进行,每个工具按照使用联系的前后关系排序形成链式结构,就形成了工具链。
GDK3是基于ARM Cortex-M3 SoC设计的,自然在windows上为其编写程序需要交叉编译。
对于交叉编译想了解更多可以参考:https://blog.csdn.net/pengfei240/article/details/52912833

2.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中执行的程序。

2.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
作者:YuQing  创建时间:2022-08-02 15:53
最后编辑:LiuJiaLi  更新时间:2024-02-04 09:55