{嵌入式学习笔记(一)}ubuntu下嵌入式开发环境搭建

2019-07-12 17:12发布

说0基础有点夸张,毕竟也是计算机专业,多少了解一点单片机,了解一点Linux,算是0.1基础开始吧。
从C51到ARM,比想象中要难得多,好几天了,进展缓慢,嵌入式是基于Linux开发的,所以这次没有在Windows下,而是选择直接在Linux环境上搭建开发环境。网上资料实在是不多,自己一边查找一边试验,记录下遇到的各种问题,做下备忘,也环境一起学习的同学来交流。
学习一项技术,个人感觉首先要做的是从宏观上搞清楚这门技术的体系结构。将近一个星期的时间,感觉是对嵌入式从结构上有点认识了。我们要做的是嵌入式的程序,使用的PC,一个是RISC,一个是CISC,中间有一个重要的东西就是交叉编译器(toolchain),将我们的编码生成嵌入式系统能识别的代码文件。开发软件上选择的eclipse,这只是个宿主,方便我们编写代码和生成,本质上也是这个软件在调用其他的命令。
首先是各种软件安装,jdk和eclipse的安装设置网上一堆,照着做基本没什么难度。
然后在eclipse里面装插件:GNU ARM Eclipse Plun-ins(最好网上找个代理IP,否则速度很慢),
安装好之后可以在新建工程中看到一些ARM的工程了:

之后的问题卡了我好久,就是关于toolchain的问题,网上搜的教程都是基本说安装arm-linux-gcc,我按步骤来做,选择Hello World ARM Cortex-M C/C++ Project却怎么都不能编译成功,最后终于找到原因。
这里面并没有arm-linux-gcc这个交叉编译器,然后看网上有提到yagarto,但是只有Windows版,没发现Linux版本,不过在yagarto官网首页推荐了GNU Tools for ARM Embedded Processors,也就是在选择toochain的第一个选项。(感觉这arm-linux-gcc应该选择最后一个custom,但是试了好多种方式最后还是没有配置成功。)
按照网上安装arm-linux-gcc的方式来类比安装这个编译器,下载之后解压,然后配置环境变量即可。环境变量设置:sudo /etc/profile,然后在最后添加export PATH=$PATH:/usr/lib/gcc-arm-none-eabi/bin,我是把程序解压到了/usr/lib,并且把文件夹名字改成了gcc-arm-none-eabi。(64位需要装兼容库g++-multilib。)安装好之后在终端运行arm-none-eabi-gcc -v,显示如下:
说明安装成功。 还有Sourcery CodeBench那两个,好像是ARM官方推荐的,不过是收费的。 安装好这些之后在eclipse里就可以编译通过了。 到这一步,PC上的开发环境基本差不多了。