收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
1.3 arm-eabi-gcc
用于 Android ARM 的编译器。
1.4 armcc
ARM 公司推出的编译工具,功能和 arm-none-eabi 类似,可以编译裸机程序(u-boot,kernel),但是无法编译 Linux 应用程序。armcc 一般和 ARM 开发工具集成在一起(即打造成 IDE),例如 Keil MDK,ADS,RVDS 和 DS-5 中的编译器都是集成 armcc 工具链,所以集成 armcc 编译器都是收费的。
1.5 ABI 和 EABI
在编译工具链的命名中总能看到 eabi
,这到底是什么意思呢。
ABI: 二进制应用程序接口(Application Binary Interface (ABI) for the ARM Architecture)。在计算机中,应用二进制接口描述了应用程序(或者其他类型)和操作系统之间或其他应用程序的低级接口。
EABI: 嵌入式 ABI。嵌入式应用二进制接口指定了文件格式,数据类型,寄存器使用,堆积组织优化和在一个嵌入式软件中的参数的标准约定。开发者使用自己的汇编语言也可以使用 EABI 作为与兼容的编译器生成的汇编语言的接口。
区别: ABI 应用于标准计算机,EABI 应用于是嵌入式计算机(如ARM,MIPS 等)。
2. 工具链包含工具集合
在 Windows 使用的是 gcc-arm-none-eabi,下载并安装好后,可以在它的安装目录 bin
文件夹下看到工具链包含 30 个工具,所以虽然 gcc-arm-none-eabi 名称开头是 gcc
但它不仅仅是一个 gcc
编译器,准确说是一套编译工具链,工具链包含的工具如下图。
接下来我们一起来看看我们频繁需要使用的部分工具以及这些工具的作用。
3. 工具链常用工具介绍
3.1 arm-none-eabi-gcc
这个工具为 C
语言编译器,可以将 .c
文件转化为 .o
的执行文件,编译命令如下。
arm-none-eabi-gcc -c hello.c
3.2 arm-none-eabi-g++
这个工具为 C++
编译器,可以将 .cpp
文件转化为 .o
的执行文件,使用方式如下。
arm-none-eabi-g++ hello.cpp -o helloworld
3.3 arm-none-eabi-ld
这个工具为链接器即最后链接所有 .o
文件生成最终可执行文件的工具。一般我们不使用链接器的指令来调用链接器链接文件,而是通过使用 arm-none-eabi-gcc
来调用,因为我们自己执行命令调用链接对 C/C++
文件混合型生成的 .o
文件的支持性不好,所以官方的说明书中也推荐使用 arm-none-eabi-gcc 指令来代替arm-none-eabi-ld 命令如下。
arm-none-eabi-gcc -o hello hello.o
3.4 arm-none-eabi-objcopy
此工具将链接器生成的文件转化为 .bin/.hex
等烧写的格式,用以下载进入单片机,命令如下。
arm-none-eabi-objcopy hello hello.bin
3.5 arm-none-eabi-gdb
收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
注嵌入式)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!