原文:http://blog.sina.com.cn/s/blog_78212a050100ph5y.html
J-Link: http://www.segger.com/
http://www.eclipse.org/downloads/ 下载Eclipse IDE for C/C++ Developers 环境
http://sourceforge.net/projects/gnuarmeclipse/ 下载GNU ARM Eclipse Plug-in最新版本。
http://www.codesourcery.com/sgpp/lite/arm/portal/subscription?@template=lite 下载 sourcery g++ lite 的EABI版本
搭建eclipse STM32平台需要用到 eclipse for C\C++ 软件,GUN ARM 插件,工具集(汇编器、编译器、连接器)。
目前已知的工具集有好几种,这里选择免费的Sourcery G++ Lite。
上图中红色框图中的软件是必须下载的。
1、下载
下载软件 JDK 、eclipse IDE for c/c++ Developers
下载插件 org.eclipse.cdt.cross.arm.gnu_0.5.3.201010141144.zip
下载完整的软件开发环境 Sourcery G++Lite EABI版
2、安装
安装JRE或者JDK
安装eclipse IDE for c/c++ Developers
安装Sourcery G++Lite
这里介绍在eclipse中安装插件GNU ARM Eclipse Plug-in。
首先启动eclipse。选择Help->Install New Software
点击: Available Software Sites,在弹出的窗口中点击Add按钮。
点击: Archive... 按钮,择插件org.eclipse.cdt.cross.arm.gnu_0.5.3.201010141144.zip
确定后,在下图中将: Contact all update sites during install to find required software选项去掉。
然后在Work with中选择刚刚添加的插件路径。
然后在下方选择 GNU ARM C/C++ Development Support.点击Next.直至安装完成。
然后新建工程,发现多了ARM Windows GCC(Sourcery G++ Lite)项。
这表示插件以成功安装。
3、建立工程。
将固件库加入工程中:
将STM32F10x_StdPeriph_Lib_V3.4.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\TrueSTUDIO
文件夹下的startup_stm32f10x_hd.s文件拷贝到上一层目录startup\,并将后缀改为大写。删除startup\目录下的其它的文件夹。
在工程下建立usr文件夹,将例子程序的
文件复制过来。如下图。
在STM32F10x_StdPeriph_Lib_V3.4.0\Project\STM32F10x_StdPeriph_Template\TrueSTUDIO文件夹中有目标芯片的链接文件。
每个文件夹中包含了stm32f10 系列中不同大小的芯片所需的链接文件。
这里选择STM3210C-EVAL文件夹下的stm32_flash.ld文件,用记事本打开后可以看到以下内容:
*****************************************************************************
**
** File : stm32_flash.ld
**
** Abstract : Linker script for STM32F107VC Device with
** 256KByte 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.
**
** Target : STMicroelectronics STM32
**
** Environment : Atollic TrueSTUDIO(R)
这说明该文件于我的目标芯片匹配。将该文件复制到工程目录下。
4、配置
在工程上点击鼠标右键,选择Properties 。
在弹出的窗口中选择Settings,可以看到,其中有
汇编器、编译器、连接器的配置。
以下的任务就是配置这些选项。
首先选择以下选项。
汇编器的配置默认就行了。
编译器的配置需要定义两个符号
STM32F10X_HD
USE_STDPERIPH_DRIVER
然后在目录选项中包含以下路径,好让编译器找到编译时需要的文件。
在连接器选项中,指定Script file 为新建项目下的stm32_flash.ld文件
在链接库中加入m参数,用来包含libm.a 数学库以支持math.c中的数学运算。
设置好后。解决sprintf maco函数无法编译的问题。
在stm32_flash.ld文件中找到以下段:
. = ALIGN(4);
.bss :
{
_sbss = .;
__bss_start__ = _sbss;
*(.bss)
*(.bss*)
*(COMMON)
. = ALIGN(4);
_ebss = .;
__bss_end__ = _ebss;
} >RAM
PROVIDE ( end = _ebss );
PROVIDE ( _end = _ebss );
在其末尾添加:
PROVIDE(__HEAP_START = _end );
然后在usr文件夹下建立syscalls.c文件。
#include
//为了使用malloc sprintf 函数
extern int __HEAP_START;
caddr_t _sbrk ( int incr ){
static unsigned char *heap = NULL;
unsigned char *prev_heap;
if (heap == NULL) {
heap = (unsigned char *)&__HEAP_START;
}
prev_heap = heap;
heap += incr;
return (caddr_t) prev_heap;
}
这样,整个工程就配置完完成。
Build工程后就会出现Hex文件,将其下载到目标芯片中就可以工作了。