这两天在尝试着搭建Eclipse+ GNU ARM Eclipse Plug-in+ Sourcery G++ Lite Edition for ARM+Jlink的STM32开发环境,并不是我喜欢免费,keil我用的也很爽,主要是最近做一个项目就是不能用商业的环境。我几乎找遍了网上的所有资料,发现资料很少,我把我的一些积累整理出来,希望能够和大家讨论。
方案应该没有问题的,我尝试了Sourcery G++ 的商业版,用起来和keil之类的区别不大,也能够很好的配合jlink进行调试,下面要做的就是怎样用eclipse和Sourcery G++ Lite 来实现它商业版的功能了。
为了方便下面的说明没有图片,附件要详细一点,下面只是一部分,其他的我会继续整理,欢迎大家交流。 1. 环境搭建
1.1 Eclipse的下载与安装
Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。由于eclipse只是一个IDE,因此需要借助其他插件以及软件来搭建完整的开发环境,也正是因为如此eclipse具有很大的灵活性。
因此首先下载安装eclipse,下载地址:
http://www.eclipse.org/downloads/
下载页面如图1.1所示。
图1.1 eclipse下载界面
由于是针对C开发,所以下载Eclipse IDE for C/C++ Developers版本,这个版本已经集成了CDT插件便于C语言的开发。
1.2 JRE的下载与安装
下载的eclipse是一个绿色软件,并不需要安装,双击就可以直接运行,但是由于eclipse是基于java开发,因此系统中必须安装了JDK或者JRE,这里使用JRE,下载地址如下:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
如果觉得官网下载比较麻烦可以到这儿下载:
http://www.skycn.com/soft/27213.html
java的下载界面如图1.2所示。
图1.2 java下载界面
JDK是Java Development Kit是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。因此我们只需要安装JRE就可以。由于在运行eclipse的时候必须要在后台运行java虚拟机,因此对内存和CPU占用较大,有时会比较卡。
1.3 GNU ARM Eclipse Plug-in的下载与安装
要搭建针对ARM的开发环境还需要下载针对ARM开发的插件,这样才能够新建针对ARM开发的项目,这里使用GNU ARM Eclipse Plug-in,下载地址如下:
http://sourceforge.net/projects/gnuarmeclipse/
下载界面如图1.3所示。
图1.3 GNU ARM Eclipse Plug-in下载界面
安装eclipse的安装方式安装插件之后再新建项目就可以看到ARM的项目了,如图1.4所示。
图2.2 新建工程之后的包含文件
接下来是准备相关的文件,为了更好的进行STM32开发,我使用ST提供的固件库,可以从网上下载,我现在用的是最新版本3.4,其他版本可能类似。
固件库的文件名为STM32F10x_StdPeriph_Lib_V3.4.0,首先把STM32F10x_StdPeriph_Lib_V3.4.0\Libraries文件夹拷贝到刚刚建立的工程文件目录下。这是编译时候需要调用的固件库。
2.2链接与启动文件
接下来需要找出Linker所需的ld文件,由于在固件库中ST提供了一些编译器的工程模板,因此可以使用模板中的配置文件。TrueSTUDIO文件夹下存在几个文件夹。TrueSTUDIO是ST官方的编译器,也是GCC的,因此使用它模板中的配置文件。打开STM32F10x_StdPeriph_Lib_V3.4.0\Project\STM32F10x_StdPeriph_Template\TrueSTUDIO可以看到在在目录下有几个文件夹,因为我用的是STM32F103ZET6因此我选择STM3210E-EVAL文件下的stm32_flash.ld,通过记事本打开查看,部分内容摘录如下:
** File : stm32_flash.ld
** Abstract : Linker script for STM32F103ZE Device with
** 512KByte FLASH, 64KByte RAM
** Set heap size, stack size and stack location according
** to application requirements.
** Set memory bank area and size if external memory is used.
猜测应该是我要找的,复制文件到工程根目录下。
接下来要找到工程的启动文件,和linker文件一样,打开目录如下:
workspace\GCCTEST\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\TrueSTUDIO
里面同样有很多文件,因为我用的是STM32F103ZET6所以我选择startup_stm32f10x_hd.S这个文件,猜测对应的就是STM32的大容量,这一点应该是一致的,注意要把扩展名改为大S,拷到startup目录下,把其他多余的都删掉。
2.3其他文件
在工程根目录下新建一个User的文件夹,拷贝一个例程到文件中,固件库中给了很多例程,我拷贝STM32F10x_StdPeriph_Lib_V3.4.0\Project\STM32F10x_StdPeriph_Examples\GPIO\IOToggle这个例程,将IOToggle下面的所有文件拷贝到User文件夹下。这样所有的文件就准备好了。
2.4 配置工程
回到eclipse的界面,按F5键,可刷新当前的工作目录,这样刚刚添加的文件就会在项目窗口显示出来,如图2.3所示。