最近需要把一个在ubantu上已经实现了的单片机的编译、链接、下载过程都移植到windows下,涉及到gcc-arm-none-eabi、make、openocd、python脚本……。东西挺多,正好最近事少,从头开始学学🙃。
GCC是什么
要搞嵌入式,肯定跳不开交叉编译链了,也就是这个gcc-arm-none-eabi,这是gcc的嵌入式版本,那么肯定得先把gcc搞明白。
关于交叉编译链这里讲的很明白了:
http://www.crifan.com/files/doc/docbook/cross_compile/release/html/cross_compile.html
那么gcc是什么?我个人的理解,其实就是一个编译器,它所做的工作就是把c文件以及一堆h文件甚至是库文件编译、链接成一个可执行文件,也就是exe。废话不多说,先用起来。
安装cygwin
gcc是在类unix环境下使用的,windows要使用gcc就需要搭建一些特殊的环境了。Cygwin是一个在windows平台上运行的类UNIX模拟环境,里面有很多软件包,可以自己选择需要的下载。
- 首先去官网下一个cygwin
https://cygwin.com/install.html
可以看到主页上有一句Get that Linux feeling - on Windows,看到这句这个软件的作用就很明显了。如果是x86或x64的直接点击这个setup-x86_64.exe即可下载。
- 下好之后双击打开,就是这个界面了,直接点下一步。
- 选择第一个,然后下一步。
- 然后就是你想要安装在哪了,下面的选项好像会决定环境变量存放在哪,不过一般都是个人电脑选择第一个默认的就行,然后点下一步。
- 然后是组件包的安装位置,涉及到后面的选择,这里我选择同一个目录。
- 然后选择网络连接方式,一般选择第二个直连就行,点击下一步。
- 这一步是选择下载源,一般都是选择国内镜像,因为国外的源太慢了,这里选择阿里的镜像,如果没有这个选项可以在下面的User URL里添加就行,选择好源后然后点击下一步。下一步会从你选择的源上下载软件包目录,如果提示Unable to get setup from https://xxxxxx/,返回上一步,选择别的源,例如第二个163网易的源。
- 这是最重要的一步,选择你要下载的软件包。这里为了使用gcc,必须要安装的四个:
1 binutils
2 gcc
3 gcc-mingw
4 gdb
可以在Search栏里直接搜,(实时联想,输入啥下面显示啥,不用按回车。)
- 搜索到之后,直接在右边的skip,双击,就会显示出版本号,就代表已经加入要安装的列表里了。
- 其他三个一样,出现版本号的是要安装的,其他不用点。
- 然后就是两个确认你要安装的软件包的页面了,全都直接下一步就可以进入安装界面了,选择了阿里镜像源还是很快的。
- 下载完毕后会出现两个选项,都勾上,然后点完成,安装就完成了。
- 桌面会出现这个图标。
- 验证一下,打开上面的图标,输入cygcheck -c cygwin,出现这个就说明成功了。
再试试gcc、gdb、ld等有没有安装成功。
添加环境变量
- 在系统环境变量的Path中把cygwin安装路径根目录下的bin和sbin路径添加进去。
- 如果不添加环境变量在生成的exe文件执行时会出现如下错误。
篇幅有点长了,测试和使用放在下一篇吧。