在完成对ubuntu的基本操作和指令的学习后,我们下面正式的进入有关于我们stm32/ARM单片机的软件安装过程。首先我们就要介绍这个会贯穿我们整个开发过程中的软件gcc-arm-none-eabi。 gcc-arm-none-eabi是什么最直接的当我说出这个软件的时候,大部分童鞋可能会奇怪他到底是个什么呢?首先他是个软件这就不用多说了,做什么的软件呢?编译软件,或是准确点叫工具链。那么听起来是不是和keil、IAR感觉一样呢?我们是不是安装好他以后,打开获得一个界面导入代码就可以编译hex文件呢?答案是否定的。 又我们国内Keil+IAR环境教育出来的童靴们,很少会理解IDE其本质的含义。也许查询百度,他会告诉你IDE是集成开发环境,那么KEIL、IAR这样的IDE(集成开发环境)集成了什么功能呢?首先我们来看看他们的功能:
我们可以看到的是,在商业化的软件如KEIL之流,他们把很完善的功能都集成在了一个带有界面的程序中,所以叫他们IDE即集成开发环境,固然这样很方便,对于很多新手或刚入职的工程师来说,这样的软件极大的简化了他们距离实际编写程序的距离。但缺点也显而易见:它阻碍了童鞋们对编译器以及编译过程的理解,也在集成化的过程中缺少了很多可选择的高级功能。 经过上面的介绍我想大家已经理解了一个集成开发环境的构成,而我们所讲的gcc-arm-none-eabi就是其中的编译器的功能,更专业的,在嵌入式开发中我们一般将它叫做工具链。(工具链:一般由编译器、连接器、解释器和调试器组成)关于它的调试功能这个比较复杂,我们之后慢慢来讲。 在我们这个系列的第一篇STM32高级开发(1)-开源是什么的文章中我们就介绍了,gcc-arm-none-eabi是GNU项目下的软件,是一个面向裸机arm的编译器。那么说了这么多介绍,它都包含什么具体功能又怎么安装与使用呢,我们继续。 下载安装gcc-arm-none-eabi首先打开gcc-arm-none-eabi项目的官网: 在写这篇文章时它的软件版本已更新到了5_4-2016q3 。我们直接点击下面Linux版进行下载。在下载的过程中建议大家去网站的首页看看,随便逛逛了解一下gcc-arm-none-eabi。 在下载完成我们在用户目录下,并新建一个文件夹名叫: 随后双击解压后的文件进入 gcc-arm-none-eabi-5_4-2016q3 -> bin 打开终端输入:
修改这个文件来添加我们的路径,ubuntu的环境变量文件有好多个,他们都在不同的时候起作用,具体的讲解可以看看这篇文章:Ubuntu系统环境变量详解,里面把这个问题讲的很清楚了,这个文章中列举的文件后几个也许你在自己的系统中找不到,但那只是系统没有创建设定,如果新建一个同样名称的文件他们依然是会起作用的。 再打开profile文件后我们在其末尾添加:
此处export意为设置变量,”PATH”是一个系统默认的内置变量即系统路径。”$PATH”,意为取值PATH变量。“:”代表拼接,用它来分割多个路径。后面的即为我们编译器执行文件的路径,这个根据大家自己的路径设置,可以随便点开一个执行文件查看他的路径复制粘贴即可。此处这行设置意为:将后面的路径与PATH之前的值合并,并更新给PATH,即将一段路径添加入PATH路径内。 随后点击保存。在终端中输入指令更新系统路径。
或,注意下面这个指令“.”后有空格,其效果与source 指令相同。
为了查看我们是否已经成功设置路径,在终端中输入:
点击Tab看看系统是否自动补全为:arm-none-eabi-
如果补全了,那么说明我们已经设置成功了,我们此时可以直接键入指令来调用工具链的程序。如果没有,说明你上面的环境变量设置步骤有误请重新检查自己的操作。 双击两下Tab则会吧所有的工具链工具显示出来。 同时如果你安装的是64位的ubuntu版本,则需要安装lsb-core才能正常使用这个工具链,使用指令:
随后我们输入指令,来再次欣赏一下自己的成果,这个条指令意为显示工具链的版本。(是不是很长,记得我们的小技巧吗?只要输入”arm-”再按Tab就能补全指令啦,是不是很方便?)
之后重启一下,让系统更新全局环境变量。 注意以上操作,从source 开始请使用一个终端,不要关闭,否则可能出错:无法找到工具链。实际按理说source指令和重启的效果是一样的,但在我安装的过程中却出错了,重启之后才变正常了。 还有个检查的方法就是,使用指令查看当前系统PATH变量的值,查看是否PATH中是否有刚刚设置的路径:
实际上Ubuntu的软件源中是有gcc-arm-none-eabi的,可以使用sudo apt-get install gcc-arm-none-eabi来安装,但是由于其版本一般落后于官方release 的版本故没有采用这个方式安装。 gcc-arm-none-eabi工具链工具使用方法及介绍在我们安装好gcc-arm-none-eabi后,我们可以在终端中输入指令来调用gcc-arm-none-eabi的功能了,那么这个工具链下茫茫多的执行软件都是做什么的呢,可以看到在路径下一共有28个工具。接下来我们就来介绍一下我们将会用到的工具和他的功能及使用方式。
当然这一系列的指令只是一个简单且包含用法错误的例子,实际的使用中我们要输入很多设置参数,才能适配我们的单片机,所以这个样例只是为了让大家理解工具链的调用方式,在我们之后的工程编写中会为大家介绍他们详细的用法。 实际的指令时这样的: 总结至此,我们的工具链便介绍完成了,大家目前可能会有些疑问,难道编译过程就那么多命令行一个一个输入吗?一个一个文件手动编译?GDB又要怎么通过计算机网络端口连接到调试器呢?我们请看下一篇的讲解:STM32高级开发(6)-make与调试器驱动。 |
|