最近两年真是有点儿闹心,先是G2开始互怼,随之而来的贸易战,绵绵不绝的疫情,俄乌战争,加之互相之间的各种制裁,仿佛给世界蒙上一层阴云。据说最近美日韩台又搞了个chip4,这是跟F4学着要搞芯片霸凌吗?这两年搞生产的可是已经被芯片断货,折腾得死去活来,很多被迫转向国产,嗯,咱倒不是说国产芯片不好,但芯片毕竟不是萝卜白菜,买来马上就可以换着吃,至少研发,重新测试投产认证之类的,是要投入的吧。
说回Keil这一类嵌入式开发软件,假如明天不再让我们用了,我们只能束手待毙吗?但愿这不是杞人忧天。不过一款开源的软件倒是可以先研究一下,以备不时之需。我们分两篇文章介绍一下,如何使用Eclipse玩转STM32。
Eclipse简介
在嵌入式开发中,我们比较熟悉的是像Keil,IAR这些IDE(Integrated Development Environment),也就是所谓的集成开发环境。它们的安装使用比较简单,但是价格也是比较昂贵的。如果老板资金比较紧张,预算不够怎么办呢?那我们还有一个免费方案可供选择,就是开源的Eclipse。早期的版本可能比较难用,但经过多年进化,不断地版本迭代,她越来越好用,功能也更强大了。我们以STM32F030为例,看一下如何使用她。
Eclipse不但开源,而且是一个开放的架构,她提供了对外的接口,可以灵活扩展。
图片来源于eclipse 官方网站。
Eclipse安装使用
Eclipse是一个框架,想要编译,下载,调试程序,我们需要给她增加:
编译器(Compiler)
调试器(Debugger)
还有Build Tools
我们今天先看安装好Build Tools和Compiler,看看工程是否能编译成功。
Build Tools 的下载安装
安装Build Tools是因为Windows不支持make等命令,这里我们使用xpack-windows-build-tools
The xPack Windows Build Tools is a Windows specific package, customized for the requirements of the Eclipse CDT(C/C++ Development Tooling) managed build projects. It includes a recent version of GNU make and a recent version of BusyBox, which provides a convenient implementation for sh/rm/echo.
各种版本的build tools下载地址:
https://xpack.github.io/windows-build-tools/releases/
这个工具可以安装在任意目录下,但是最好还是安装在推荐目录下
%USERPROFILE%\AppData\Roaming\xPacks\windows-build-tools
比如:
C:\Users\fly\AppData\Roaming\xPacks\ xpack-windows-build-tools-4.3.0-1
这里的安装其实就是把文件下载下来,解压到安装目录就可以了。
然后我们用命令make -version,检查一下是否安装成功:
如果不成功,比如提示
(e=2)找不到指定文件
一般是环境变量设置问题,把安装目录增加到Windows环境变量就行了。
Complier 的下载安装
编译器可以在arm的官方网站找到:
当前最新版本是:
gcc-arm-none-eabi-10.3-2021.10-win32.exe
默认安装路径是:
C:\Program Files (x86)\GNU Arm Embedded Toolchain\10 2021.10
如果不能使用,可以考虑安装在一个不带空格的路径,比如C:\GCCTools
Eclipse 的下载安装
Eclipse 有很多版本,我们需要找到嵌入式的这个:
https://www.eclipse.org/downloads/packages/
在不同国家有很多镜像,找到一个能下载的:
解压到C:盘根目录,不用安装,直接运行
C:\eclipse\eclipse.exe
选择工作目录
然后出现欢迎界面
File New Project ...
选器件类型,输入工程名字
选择器件型号
一直点next,直到下面的界面,选择前面xPack Build Tools 的安装路径。
点击finish完成工程的创建。
此时可以关掉welcome窗口,点击红色箭头所指图标,会看到工程文件及源文件窗口。
Project --> Build All
或者点击工具栏里的小榔头按钮即可开始编译工程。
0 error, 0 warnings, 广大攻城狮最喜闻乐见的画面终于出现了!
未完待续。。。