Mac/Fedora22下STM32的Eclipse开发环境搭建
本文将介绍如何在MacOSX平台下STM32的Eclipse开发环境的搭建。
提示
十里发现了更好的MCU开发环境,如果您感兴趣可以移步了解下 platformio,这个工具可以帮您开发很多单片机平台,而且跨平台支持 win/mac/linux ,它能智能下载所开发平台需要的编译及烧写工具,再次说明这个方案比本文的开发方式更简单、更优!阅读 stm32开发新方式-platformio简单了解一下如何使用 paltformio 在命令行下开发 stm32 单片机程序,另外它也支持图形界面开发,点我了解。也许 platformio 能带给您惊喜!
前言
工欲善其事必先利其器,做开发,开发工具很重要,windows下STM32的开发环境很好解决,keil就可以。但在Mac OSX和Fedora Linux下这真是个棘手的问题,其实单片机开发,用命令行都一样,只要有交叉编译工具,加上对makefile了解的话,搭建命令编译下载环境也成,但对于makefile我还是个菜鸟,本身又不是专业学计算机的,更希望能找到一个GUI的开发方案。只能不断在网上寻找GUI的开发环境,经过不懈努力,找到了Eclipse的arm嵌入式开发插件,真的特别感谢开发这个插件的开发者们,本文将介绍如何在MacOSX平台下STM32的Eclipse开发环境的搭建,linux平台下同理也可以搭建,可以参考插件网站。
正文
直接切入正题,下面就讲解一下,我搭建开发环境的过程,以Mac OSX为主进行叙述,Fedora22有不同的地方会指出,首先说明一下,我的情况:
- Mac OSX系统/Fedora22
- 开发板是STM32F103RCT6的最小系统板
- 下载及仿真工具是stlink v2
安装eclipse
-
到eclipse官网下载含CDT插件的eclipse版本:Eclipse IDE for C/C++ Developers。
-
将下载包解压,并将解压出来的文件夹拖到
应用程序
文件夹中,完成安装eclipse,可以到lauchpad中找到下面的图标,单击就可启动eclipse。Fdora22下解压下载的压缩包,运行解压目录下的eclipse脚本即可启动eclipse。
安装GNU ARM Eclipse插件
这里只介绍联网安装,离线安装也可以,参考GNU ARM Eclipse插件的安装指南。联网的方式有两种,一种是利用Eclipse的Install New Software,另一种方式是从Eclipse Marketplace中安装,建议采用第二种方法。
Install New Software方式
- 启动eclipse,选择菜单栏-『Help』-『Install New Software…』
- 安装GNU ARM Eclipse插件,输入下面的Name和URL,然后pending,选中所有的工具,一路[Next],[Accept],[Finish]即可,安装成功的话会提示要重启Eclipse。
- name: GNU ARM Eclipse Plug-ins
- URL: http://gnuarmeclipse.sourceforge.net/updates
Eclipse Marketplace方式
- 启动eclipse,选择菜单栏-『Help』-『Eclipse Marketplace』
- 等待一会儿,跳出的窗口会加载插件市场里可用的插件,然后在Find栏中输入GNU,单击后面的Go按钮。
- 如果操作正确的话应该会看到GNU ARM Eclipse的插件,点击Install进行安装,按照提示操作进行安装即可。
下载STM32的库函数文件包
保证插件已经安装成功
-
在eclipse工具栏上找到(Make the C/C++ packs perspective visible)此工具,并单击,显示pack窗口:
-
点击图标,刷新,会联网加载最新的库函数文件包列表,如上图,列表会按照公司进行分类,stm32芯片是STmicroelectronics公司的,所以展开此公司列表,我的开发板是stm32f103rct6最小系统板,所以右击
STM32F1 Series
项『Install』即可安装,开始时是灰色的,等待一段时间下载安装成功后就会变成黑色。
IV. 交叉编译链的安装
这是一个开源的arm嵌入式交叉编译链工具,要配置好编译环境这是所必需的东西。
-
首先最新的适合MacOSX版本的TOLLCHAIN(s)下载到桌面:
-
解压下载的文件,并将解压出来的文件夹移动到
/usr/local
目录下,因为安装的eclipse插件会自动在/usr/local
目录下搜寻TOOLCHAIN(s),此步的操作要在[Terminal](即终端)下执行命令完成。其中『gcc-arm-none-eabi-xxxxxxxxxxxxxxxx-mac.tar.bz2』为下载的压缩包文件名,改为自己下载的相应的文件名即可,依次执行下面三条命令:sudo mkdir /usr/local cd /usr/local sudo tar xjf ~/Desktop/gcc-arm-none-eabi-xxxxxxxxxxxxx-mac.tar.bz2
-
在终端下可以验证是否安装成功:
/usr/local/gcc-arm-none-eabi-xxxxxxxx/bin/arm-none-eabi-gcc --version
如果出现类似下面的语句,说明成功安装了:
arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.8.4 20140526 (release) [ARM/embedded-4_8-branch revision 211358]
配置ST-Link
因为性价比高,所以ST-Link用的还是比较多的,下面就讲解一下,如何实现在MacOSX下通过st-link对开发板进行仿真及下载程序。
-
安装Xcode的『Command Line Tools』,这个非常容易的,因为我安装了Xcode所以很简单就能够安装了,不明白自行google解决。
-
安装Homebrew工具(只适用于Mac,Fedora有dnf工具),此工具可以让mac实现ubuntu下apt-get的类似功能,此步骤主要方便为安装编译st-link源代码所需的依赖包进行的,在终端下输入以下命令敲回车,就可以自动安装homebrew:
-
安装homebrew:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
-
安装libusb-1.0,在终端下输入以下命令敲回车安装:
sudo brew install libusb libusb-compat
-
安装pkg-config,在终端下输入以下命令敲回车安装:
sudo brew install pkg-config
-
安装autotools,在终端下输入以下命令敲回车安装:
sudo brew install autoconf automake libtool
这一步中,如果系统是Fedora22,其自带DNF工具,同Homebrew一样只是个工具而已,终端下执行下面的命令安装依赖包:
sudo dnf install autoconf automake libtool libusb-devel
-
-
依次按照以下步骤下载并编译st-link工具,并完成安装,下面都是在终端里执行命令完成的:
-
进入之前创建的
/usr/local
目录:cd /usr/local
-
利用git下载开源的源代码:
git clone https://github.com/texane/stlink stlink.git**
-
进入clone到
/usr/local
目录下的stlink.git
目录:cd stlink.git
-
执行特定脚本,完成配置并完成源代码的编译,从而完成工具的安装:
./autogen.sh ./configure make
-
-
测试是否安装成功,将stm32f103rct6的最小系统板通过『st-link v2』连接到电脑,执行下面的片子清除命令:
st-flash erase 若出现`Mass erasing...`的字样说明成功。
注:在linux下可能会遇到权限问题,这时需要将stlink.git文件下的rules文件拷贝到
/etc/udev/rules.d/
目录下,然后重启pc即可。 -
为了能够在任何目录下执行
st-flash
命令,需要配置用户环境变量,只需将/usr/local/stlink.git
目录加入到环境变量里即可,下面编辑文件可以用『vim』,想了解『vim』使用可以看一下我的另一篇文章vim的使用入门:-
如果终端用的[bash],进入**$HOME**,编辑『.bashrc』文件,加入:
export PATH=/usr/local/stlink.git:$PATH
-
如果终端用的[zsh],进入**$HOME**,编辑『.zshrc』文件,加入:
export PATH=/usr/local/stlink.git:$PATH
-
-
stlink的简单使用(以stlink-v2和stm32f103c8t6为例)。
-
擦除片子命令
st-flash erase
-
烧写程序命令,只能烧写binary文件(二进制bin文件),所以编译应该生成bin文件进行烧写
st-flash write xxx.bin 0x8000000
-
总结
总算完成了MacOSX下STM32的Eclipse开发环境的搭建的讲解,目前我也是在学习中,此环境下与windows下的Keil不同,使用的是C++开发语言,更加方便灵活一些,开发环境是,编写代码和编译是用eclipse,下载及仿真都是用终端命令,有空会大体讲解一下终端下简单的仿真。
参考
-
在Mac OS X中搭建STM32开发环境–来自胡茂晓的BLOG,讲解的是完全命令行的开发环境的搭建。