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

  1. 到eclipse官网下载含CDT插件的eclipse版本:Eclipse IDE for C/C++ Developers

  2. 将下载包解压,并将解压出来的文件夹拖到应用程序文件夹中,完成安装eclipse,可以到lauchpad中找到下面的图标,单击就可启动eclipse。

    1

    Fdora22下解压下载的压缩包,运行解压目录下的eclipse脚本即可启动eclipse。

安装GNU ARM Eclipse插件

这里只介绍联网安装,离线安装也可以,参考GNU ARM Eclipse插件的安装指南。联网的方式有两种,一种是利用Eclipse的Install New Software,另一种方式是从Eclipse Marketplace中安装,建议采用第二种方法。

Install New Software方式

  1. 启动eclipse,选择菜单栏-『Help』-『Install New Software…』 2
  2. 安装GNU ARM Eclipse插件,输入下面的Name和URL,然后pending,选中所有的工具,一路[Next],[Accept],[Finish]即可,安装成功的话会提示要重启Eclipse。

Eclipse Marketplace方式

  1. 启动eclipse,选择菜单栏-『Help』-『Eclipse Marketplace』
  2. 等待一会儿,跳出的窗口会加载插件市场里可用的插件,然后在Find栏中输入GNU,单击后面的Go按钮。
  3. 如果操作正确的话应该会看到GNU ARM Eclipse的插件,点击Install进行安装,按照提示操作进行安装即可。

下载STM32的库函数文件包

保证插件已经安装成功

  1. 在eclipse工具栏上找到4(Make the C/C++ packs perspective visible)此工具,并单击,显示pack窗口:

    5

  2. 点击图标6,刷新,会联网加载最新的库函数文件包列表,如上图,列表会按照公司进行分类,stm32芯片是STmicroelectronics公司的,所以展开此公司列表,我的开发板是stm32f103rct6最小系统板,所以右击STM32F1 Series项『Install』即可安装,开始时是灰色的,等待一段时间下载安装成功后就会变成黑色。

    7

IV. 交叉编译链的安装

这是一个开源的arm嵌入式交叉编译链工具,要配置好编译环境这是所必需的东西。

  • 首先最新的适合MacOSX版本的TOLLCHAIN(s)下载到桌面:

    8

  • 解压下载的文件,并将解压出来的文件夹移动到/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用的还是比较多的,下面就讲解一下,如何实现在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,下载及仿真都是用终端命令,有空会大体讲解一下终端下简单的仿真。

参考