Lost !

-----hard working for the furture.

gcc-arm-none-eabi工具链工具使用方法及介绍

为了方便自己在学习过程中查看一些工具的使用方法,将其搬运到自己的创作空间

原文链接:STM32高级开发(5)-gcc-arm-none-eabi_Foresights的博客-CSDN博客_arm-none-eabi-gcc

gcc-arm-none-eabi工具链工具使用方法及介绍

在我们安装好gcc-arm-none-eabi后,我们可以在终端中输入指令来调用gcc-arm-none-eabi的功能了,那么这个工具链下茫茫多的执行软件都是做什么的呢,可以看到在路径下一共有28个工具。接下来我们就来介绍一下我们将会用到的工具和他的功能及使用方式。

arm-none-eabi-gcc

这个工具为c语言编译器,可以将.c文件转化为.o的执行文件。如果大家不明白,.o是什么作用,建议大家去看一些关于编译过程和原理的介绍,如这篇文章:C语言的编译过程。

它的使用方法是,在终端中cd到工作目录,如编译当前目录下的hello.c文件,生成hello.o文件:

arm-none-eabi-gcc -c hello.c

arm-none-eabi-g++

这个工具为c++语言编译器,可以将.cpp文件转化为.o的执行文件,使用方式如上。

 

arm-none-eabi-ld

这个工具为链接器即最后链接所有.o文件生成可执行文件的工具。一般我们不使用 arm-none-eabi-ld 的指令调用它,而是通过使用arm-none-eabi-gcc 来调用,因为前者对c/cpp文件混合型生成的.o文件们的支持性不好,所以官方的说明书中也推荐使用arm-none-eabi-gcc 指令来代替arm-none-eabi-ld,如下:

 arm-none-eabi-gcc -o hello hello.o

 

arm-none-eabi-objcopy

此工具将链接器生成的文件转化为bin/hex等烧写的格式,用以下载进入单片机。如下:

 

arm-none-eabi-objcopy hello hello.bin

arm-none-eabi-gdb

工具链中的调试器,将它连接到调试器硬件产生的网络端口,就可以进行硬件和代码的调试了。GDB是gnu下一个独特的调试软件,它具有很多自己的特性,也许大家无法想象使用命令行调试的景象,但是之后我们会看到它的强大。

当然这一系列的指令只是一个简单且包含用法错误的例子,实际的使用中我们要输入很多设置参数,才能适配我们的单片机,所以这个样例只是为了让大家理解工具链的调用方式,在我们之后的工程编写中会为大家介绍他们详细的用法。

————————————————

版权声明:本文为CSDN博主「Foresights」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:STM32高级开发(5)-gcc-arm-none-eabi_Foresights的博客-CSDN博客_arm-none-eabi-gcc

 

https://zhuanlan.zhihu.com/p/436154660

posted on 2022-09-04 22:59  失落''80  阅读(762)  评论(0编辑  收藏  举报

导航