搭建基于Eclipse+SourceryGCC+J-Link的STM32开发环境2014.4.9本人一向是IDE控,如果IDE不顺手,写起代码就浑身难受。最近有项目要用STM32开发,MDK用着实在蛋疼,建工程麻烦不说,结构体后面输入个点没法提示其成员,而STM32固件库里到处都是各种Structure。网上看到很多人搭建了基于Eclipse的STM32开发环境(EclipseCDT的CodeAssist相当不错),于是赶紧下载了几篇教程看。一开始感觉配置环境、建工程也十分麻烦,后来发现这个过程可以变得十分简单,尤其是建工程。最大的原因在于一个关键插件——“GNUARMEclipsePlug-in”变得极其牛比!而那些教程是两三年前的,那时这个插件还比较弱。现在它可以直接建出一个能用的工程,不用建目录、不用手工添加StdPeriph库、不用选Startup代码,几乎什么都不用。下面正式开始:1.下载并安装各种需要用的东西:JRE(JavaRuntimeEnvironment)不细说了EclipseCDT地址:下载“EclipseIDEforC/C++Developers”下载之后,将它解压到任意位置。SourceryCodeBenchLiteEditionforARMEABI——基于GCC的ARM工具链地址:点“DownloadLiteEdition”找到这儿,点“DownloadtheEABIRelease”接下来填一些邮箱之类的信息,它会把下载链接发到邮箱里去。安装时有一个是否添加PATH环境变量的选项,选择“ModifyPATHforcurrentuser”默认安装路径是当前用户目录下,看着不爽就改下吧。。GNUARMEclipsePlug-in地址:下载一个名字类似“ilg.gnuarmeclipse.repository-2.1.2-201402180751.zip”的文件安装过程:由于Eclipse会从它的官方软件源安装一些依赖,而这个软件源在国外,速度非常慢。所以建议把软件源换成中科大的镜像。打开Window-Preferences-Install/Update-AvailableSoftwareSites。把几个软件源改成中科大的软件源:。像下图这样:打开Eclipse,点击Help-InstallNewSoftware…,点击“Add…”,弹出“AddRepository”对话框。点击“Archive”,找到刚刚下载的那个ZIP文件。然后点“OK”。把包含的软件都选中。(Endoflife那项可以不选,已经用不着了)确定下面这项是选中的,然后点Next。安装过程中保证网络畅通。如果有什么安全警告,允许就是了。2.建立工程点击File-New-CProject如果GNUARMEclipsePlug-in插件安装正常的话,能看到多出好多工程类型,还有带STM32标准库的。以STM32F103C8T6为例,我们选择STM32F10xStdPeriphC/C++Project填上工程名称,点继续,配置目标处理器。填好Flash和RAM的大小。以STM32F103C8T6为例,分别为64和20。“Usesystemcalls”选Standalone(nosyscalls)。因为SourceryCodeBench不支持。Semihosting是一种调试手段,我没有仔细研究过。如果想用的话,可以下载这套工具链:。点下一步,配置目录,不用改。再下一步的Debug/Release配置也不用改。再下一步到选择工具链,ToolchainName选择“SourceryCodeBenchLiteforARMEABI(arm-none-eabi-gcc)”。Toolchainpath选择SourceryCodeBench的安装位置(不带bin):最后点Finish。过一会儿,整个工程就建好了。CMSIS、固件库等都齐全了。main.c里是一个闪灯的范例。工程直接就可以构建,生成elf、hex文件!3.烧写与调试首先构建整个工程,生成elf文件。点击Run-DebugConfigurations,双击左边的“GDBSEGGERJ-LinkDebugging”,新建一个调试配置。在Debugger选项卡里,取消勾选“StarttheGDBserverlocally”,如下图:(PS:其实我觉得如果能用上这个功能就会非常方便,不用手动启动J-LinkGDBServer。不过我没有试成)在Startup选项卡里,取消勾选“Enablesemihosting”和“EnableSWO”。并在下面的框里填上:monitorflashdownload=1monitorflashdevice=STM32芯片型号,不带T6最后点Apply。如下图所示:完工!打开J-LinkGDBServerviaSWD/JTAG。就可以在Eclipse里启动调试了!