Eclipse + CDT + YAGARTO + J-Link,STM32开源开发环境搭建与调试

Eclipse+CDT+YAGARTO+J-Li;开源开发环境搭建与调试;作者:Chongqing;邮箱:ycq.no1@163.com;文档版本:V1.0;发布日期:2014-08-04;前言;此文档本着开源精神,基于LGPL协议发布;因网上开源的单片机、微控制器开发平台信息很少,故;因用ARM公司的KeiluVision开发环境开;因Eclipse是一个

 

 



 

Eclipse + CDT + YAGARTO + J-Link,STM32

开源开发环境搭建与调试

作者 :Chongqing

邮箱 :ycq.no1@163.com

文档版本 :V1.0

发布日期 :2014-08-04

 

 

前言

此文档本着开源精神,基于LGPL协议发布。如有修订及重新发布,请标明原始作者、邮箱、原始版本及修订日期。

 

因网上开源的单片机、微控制器开发平台信息很少,故发布此文档,以飨读者。

 

因用ARM公司的Keil uVision开发环境开发单片机、微控制器并发布商业产品涉及版权问题,需要支付不菲的授权使用费,这对中小型公司来说是笔不小的开销。故寻找Keil uVision的替代方案。

因Eclipse是一个开源的开发平台,并且支持各种插件的开发,因此可以以Eclipse + CDT + YAGARTO + J-Link的方式搭建开源开发平台。

Eclipse是一个开源、免费、跨平台、支持插件扩展的Java、C/C++等集成开发环境。Eclipse通过CDT可以比较好的支持C/C++的开发,读者可以到Eclipse官网直接下载CDT版本的Eclipse。在Eclipse中添加GNU ARM Eclipse插件,与YAGARTO GNU ARM Toolchain和J-link仿真调试器结合,就可以比较好地支持STM32的开发与调试。

但是Eclipse有其缺点。Eclipse做Java开发比较方便,代码编辑与提示、代码编译都很方便,但是针对C/C++的代码提示不方便。Eclipse臃肿,代码编译速度慢。Eclipse的GNU ARM 环境配置复杂,调试不便。在这里,本人还是推荐使用Em::Blocks。Em::Blocks小巧,不像Keil uVision那么大,也不像Eclipse那般臃肿。Em::Blocks安装、配置相对Keil uVision更简单方便,Eclipse的环境配置相对更复杂,更容易出错。Em::Blocks的代码编辑环境相当智能化,相对Keil uVision好很多,相比Eclipse也毫不逊色。Em::Blocks内嵌了GNU编译器,代码的编译速度是Keil uVision和Eclipse不能比拟的。Em::Blocks内嵌对几种JTAG仿真调试器的支持,调试时方便快捷,相比Keil uVision也毫不逊色。Eclipse的代码提示、配置、编译、调试的体验很差,在此不赘述。Em::Blocks STM32开发环境的搭建在《EmBlocks + J-Link,STM32开源开发环境搭建与调试》这一文档中有详述。

 

 

开发环境

 

系统: Windows 7旗舰版。

 

开发工具:

1、

 

2、 因为Eclipse是用Java开发的,所以需要Java的运行环境,只要下载安装jre即可,这里我们下载安装

(包含jre), Windows x86,32_bit;

 

3、 要使Eclipse支持ARM开发,需要下载安装一个插件:(ilg.gnuarmeclipse.repository-1.8.1-201401111229.zip);

 

因为我们下载的Eclipse IDE for C/C++ Developers中已经包含CDT插件,无需我们手动安装,4、 CDT插件,

如果你下载的是别的版本的Eclipse,需要你自己手动安装CDT插件;

 

5、 YAGARTO,GNU ARM toolchain:

官网:,工具下载官网:

下载安装:(yagarto-tools-20121018-setup.exe) 和(yagarto-bu-2.23.1_gcc-4.7.2-c-c++_nl-1.20.0_gdb-7.5.1_eabi_20121222.exe),下载地址:

6、 J-Link驱动工具包:Setup_JLinkARM_V434d.zip。

,版本:4.3.1,32_bit;

安装交叉编译工具:

1、 上面的工具都下载好以后,先安装好Java SE Development Kit 7u51、YAGARTO-Tools-20121018(先于YAGARTO

GNU ARM toolchain安装)、YAGARTO GNU ARM toolchain和J-Link驱动工具包;

 

2、 解压Eclipse到指定目录,进入目录,打开eclipse.exe,配置好Eclipse工作目录;

 

3、 安装GNU ARM Eclipse Plug-in插件,Eclipse?Help?Install New Softwares,点击“Work with”右边的“Add”,

点击弹出的框中“Name”右边的“Local…”,加上解压后的GNU ARM Eclipse Plug-in插件目录,点OK,然后一步步下去,直到Eclipse重启;

 

Eclipse配置:

1、Eclipse编码格式配置:

(1) Window?Preferences,左侧导航树到general?Workspace,右侧“Text file encoding”,选择“Other”,

改为“UTF-8”;

(2) Window?Preferences,左侧导航树到general?Content Types,右侧“Content types”树,点开“Text”,

选中“C Source File”,在下面的Default encoding框中填上“UTF-8”,点击右边的“Update”;

2、显示行号:Window?Preferences?General?Editors?Text Editors,选中右侧的“Show line numbers”复选框,另外把“Insert spaces for tabs”复选框选中,用空格代替tab,以便代码用别的编译器编译时,出现代码对齐问题;

 

3、修改字体:Window?Preferences?General?Appearance?Colors and Fonts,在右侧树形列表中选择C/C++?Editor?

编辑文本字体即可;

 

4、修改默认代码格式:Window?Preferences?C/C++?Code Style?Formatter,单击右侧的“New”新建一个格式化配置,修改配置,然后保存即可。还可以通过“Export All”导出配置,重装Eclipse时只要导入该配置即可;

 

5、显示空格和制表符:Window?References?General?Editors?Text Editors,选中右侧“Show whitespace characters”,还可以点击“configure visibility”来选择要显示的空白字符,这里可以取消“Carriage Return”和“Line Feed”的“Trailing”显示;

 

6、显示最大列宽范围:一般的代码规范会要求代码的最大列宽为80个字符,Eclipse提供最大列宽提示界线:Window?Preferences?General?Editors?Text Editors,右边选中“Show print margin”;

 

7、为防止在Eclipse外部修改工程目录中的文件引起文件不同步导致“Resource ‘项目名’ is out of sync with file system.”的问题,解决办法:Window?Preferences?General?Workspace,右边选中“Refresh using native hooks or polling”和“Refresh on access”

 

8、修改过的代码不用保存直接编译:Window?Preferences?General?Workspace,右边选中“Save automatically before build”;

,点击右边的“Edit”,

编译配置:

1、 Ctrl + n,创建新项目,选择C/C++下的“C Project”,点“Next”,在弹出框中选择

和,添加上项目名称,点“Next”,在

弹出的框中设置处理器参数,因为我们的处理器是STM32F103VET6,所以Chip family改为

,Flash size改为512,RAM size改为64,“Next”、 “Next”、

“Next”,到Cross GUN ARM Toolchain框,Toolchain name改为

,Toolchain path改为

YAGARTO

GNU ARM toolchain的路径,如

Explorer”中看到项目的结构; ,点OK后,就可以在Eclipse的“Project

 

2、 右击项目名?Properties,C/C++ Build?Tool Chain Editor,把右边的Current builder改为

3、 配置好后,把自己的.c文件放到项目根目录的src目录下,.h文件放到项目根目录的include目录下,选中

Eclipse目录树,右键Refresh或者F5刷新,就可以看到刚才添加的文件了,点击

看到编译生成hex文件了。

 

4、 刚开始我们的代码默认为Debug模式,若想修改为Release模式,右键项目名称?Preperties,在弹出框的

左侧树形目录中选择C/C++ Build?Tool Chain Editor,点击右上角的“Manage Configurations”,在弹出的框中选中Release?点击Set Active?点击OK;然后Crtl + B,先生成Release版本的elf和hex文件;打开Debug Configurations?在弹出的框中,点击

页下,点击,在下自定义的配置,在右侧的main标签下面的框中,选择Release版本的elf文件,点击“OK”,完成; 或者Ctrl + B,就可以

5、 如果已经有Eclipse项目,可以导入现存项目:File?Import或者右键Eclipse目录树?Import,在弹出的框

中选General?

 

到此,编译配置完成

?next,Select root directory选择项目根目录,选中,点击“Finish”完成;

调试配置:

1、 打开Debug Configurations?在弹出的框中,双击左边树形

 

2、 在右边的Main标签页下,C/C++ Application文本框下面,点击,在弹出的框中已经默认为,生成新的配置;

生成的elf文件和默认的Debug生成的elf文件,如果要改为Release生成的文件,以后再改;

 

3、 在Debugger标签页下,GDB Command文本框,选择安装的YAGARTO编译器的GDB调试工具,如:

,如果在安装YAGARTO时,YAGARTO已经自动修改了环境变量,可

以直接填入“arm-none-eabi-gdb.exe”;Port number改为2331;JTAG Device改为Generic TCP/IP(如果不行,改为J-Link);

 

4、 在Startup标签页下,在Initialization Commands文本框中,输入以下内容:

monitor flash device = STM32F103VE

monitor flash download = 1

monitor flash breakpoints = 1

monitor clrbp

monitorendianlittle;monitorspeed5;monitorreset;monitorsleep100;monitorspeedauto;monitorwriteu320xE000ED0;注:其中,monitorflashdevice需;RunCommands文本框中填入以下内容:;monitorregr13=(0x0000000;mo

 



monitor endian little

monitor speed 5

monitor reset

monitor sleep 100

monitor speed auto

monitor writeu32 0xE000ED08 = 0x00000000

注:其中,monitor flash device需要根据自己的STM32设备自行修改;

 

Run Commands文本框中填入以下内容:

monitor reg r13 = (0x00000000)

monitor reg pc = (0x00000004)

break main

continue

注:请不要勾选Runtime Option中的选项。

 

然后点击Apply,请确保GDB Server(如从开始菜单打开SEGGER J-Link GDB Server V4.34d)已经打开,并且连接正常,点击Debug开始调试。

 

到此,Eclipse + CDT + YAGARTO + J-Link,STM32开源开发环境搭建全部完成。

 

 

几种编译环境的比较

1、 Keil uVision + J-link

Keil uVision是ARM公司提供的主要用于微控制器领域的集成开发环境。比较稳定可靠,对各种芯片都有比较好的支持。Keil uVision生成的目标代码效率很高,汇编代码紧凑,容易理解。缺点是Keil uVision需要不菲的授权费,对中小型公司来说不适合用其开发商业软件;Keil uVision的项目构建与配置不是很方便;Keil uVision的代码编辑不是很方便。

 

2、 Eclipse + CDT + YAGARTO + J-link

Eclipse作为开源的开放开发平台,YAGARTO作为开源的GNU开发工具链,结合起来可以提供一个比较好的开源STM32开发环境。Eclipse的源代码编辑环境非常友好,可以加快源代码的编辑速度。Eclipse主要用来开发JAVA,可以通过CDT插件支持C/C++的开发,但是Eclipse臃肿、缓慢,对C/C++的开发支持不是很友好,C/C++源代码编辑环境不如JAVA方便。在Eclipse中安装GNU ARM Eclipse Plug-in插件、配置编译与调试环境比较繁琐,很容易出错,在调试的时候,要先打开J-link GDB Server,再到调试界面进行调试,调试时CPU不能Reset,每次调试都要重新烧写Flash,费时,同时频繁烧写Flash也减短Flash寿命。

3、 Em::Blocks + J-link

Em::Blocks集成开发环境基于Code::Blocks集成开发环境。Code::Blocks是一个开源、免费、跨平台、支持插件扩展的C/C++集成开发环境。Code::Blocks支持多种应用的开发,并且小巧、稳定、可靠、快速,是一款功能非常强大的集成开发环境。Em::Blocks继承了Code::Blocks的优点,只针对嵌入式平台做开发,并针对嵌入式开发环境做了优化。Em::Blocks内嵌了GNU ARM编译器,同时内嵌对J-link等JTAG仿真调试器的支持。在安装Em::Blocks时不需要对GNU ARM和J-link做太多配置。编译代码非常快速。代码编辑、代码提示相对Keil uVision做得很出色,相比Eclipse也毫不逊色。创建工程非常方便,Em::Blocks根据创建工程时选择的处理器自动添加固件库代码,只要添加上自己的项目代码就可以。在调试时,Em::Blocks会自动调用J-link GDB Server,也可以Reset CPU,也可以在RAM中执行程序从而减少烧写Flash。

 

Em::Blocks相对Keil uVision开源、免费,同时工程管理方便,代码编辑、提示都很优秀;Em::Blocks相对Eclipse小巧、快速,内嵌对GNU和J-link的支持,配置非常方便,调试自动调用J-link,可以Reset CPU,大大简化在Eclipse下的操作。Em::Blocks是一款非常强大、对嵌入式开发支持非常友好的集成开发环境。

 

 

时间: 2024-10-26 05:48:09

Eclipse + CDT + YAGARTO + J-Link,STM32开源开发环境搭建与调试的相关文章

Android NDK r8 Cygwin CDT 在window下开发环境搭建 安装配置与使用 详细图文讲解

android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创) 一直想搞NDK开发却一直给其他事情耽搁了,参考了些网上的资料今天终于把环境搭建起来了,把过程记录下来分享给大家. 内容目录: 1.默认基础环境 2.NDK下载与配置 3.安装Cygwin 4.用NDK编译 5.安装CDT插件 6.安装Sequoyah插件 7.JNI编译环境配置 画了一个思维导图让大家一目了然配置过程   -------------------------

baidu-微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(采用 Baidu Eclipse)遇到问题

问题描述 微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(采用 Baidu Eclipse)遇到问题 微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(采用 Baidu Eclipse)采用doget添加代码以下一些步奏就不懂了,请各位大神指教,谢谢!http://blog.csdn.net/bingtianxuelong/article/details/17843111采用这一篇教程的

windows 32位eclipse远程hadoop开发环境搭建_java

本文假设hadoop环境在远程机器(如linux服务器上),hadoop版本为2.5.2 注:本文eclipse/intellij idea 远程调试hadoop 2.6.0主要参考了并在其基础上有所调整 由于我喜欢在win7 64位上安装32位的软件,比如32位jdk,32位eclipse,所以虽然本文中的操作系统是win7 64位,但是所有的软件都是32位的. 软件版本: 操作系统:win7 64位 eclipse: eclipse-jee-mars-2-win32 java: 1.8.0_

android 开发环境搭建Eclipse的配置图解

重要,更新安卓SDK的时候要有梯子,需要滋备hosts文件       在windows安装Android的开发环境不简单也说不上算复杂,本文写给第一次想在自己Windows上建立Android开发环境投入Android浪潮的朋友们,为了确保大家能顺利完成开发环境的搭建,文章写的尽量详细,希望对准备进入Android开发的朋友有帮助.   本教程将分为五个步骤来完成Android开发环境的部署. 第一步:安装JDK. 第二步:配置Windows上JDK的变量环境 . 第三步: 下载安装Eclip

J2ME开发环境搭建 之 EclipseMe

J2ME开发环境搭建 之 EclipseMe   第一节    初识Eclipse Eclipse是一个开发源代码,基于java的可扩展开发平台,它是在OSI(Open Software Initiative 开发源代码计划)认可的通用公共许可证(CPL)版下被授予许可证的集成开发平台(IDE).作为当今最流行的java开发IDE之一,java社群使用Eclipse以及基于Eclipse技术而来的IBM Websphere的开发者已经超过了半数. Eclipse本身只是一个框架和一组响应的服务,

Intellij IDEA 14.1.4 Scala开发环境搭建

主要内容 Intellij IDEA开发环境简介 Intellij IDEA Scala开发环境搭建 Intellij IDEA常见问题及解决方案 Intellij IDEA常用快捷键 1. Intellij IDEA开发环境简介 具体介绍请参见:http://baike.baidu.com/link?url=SBY93H3SPkmcmIOmZ8H60O1k4iVLgOmdqoKdGp9xHtU-Pbdsq2cpn75ZPZPWAJxeUlwr0ravraQzOckh777beq Intelli

《Android应用开发与系统改造实战》——1.5节Android NDK开发环境搭建

1.5 Android NDK开发环境搭建 Android应用开发与系统改造实战 1.5.1 Android NDK简介 Android NDK是编译嵌入在Android应用中的原生代码(C或C++)的工具. Android应用运行在Dalvik虚拟机上.NDK允许开发者用原生代码(C或C++)实现应用的一部分.这将给某些应用带来好处,这种方式可重用代码,而且在某些情况下可加快运行速度. NDK提供了将C和C++源代码生成原生代码库的工具和文件:提供了将原生库嵌入apk文件的方法:提供了兼容An

PHP开发环境搭建详细教程

     首先你需要安装Apache Server,这里以当前最新版Apache Server2.4为例进行说明,可惜官网并没有提供最新版的msi安装包,连编译后的binary二进制压缩包都没提供,不过我已经编译并上传到我的百度网盘,下载地址如下:       Apache Server2.4最新版安装包   下载下来后直接解压到任意目录,如图:  然后你需要安装Apache Server系统服务,先cd 到apacher server2.4/bin下,然后执行如下命令: Java代码   ht

jdk+eclip+android sdk实现Android开发环境搭建

一 相关下载 (1) java JDK下载: 进入该网页: http://java.sun.com/javase/downloads/index.jsp (或者直接点击下载)如下图: 开发环境搭建-jdk环境搭建"> 选择 Download JDK 只下载JDK,无需下载jre. (2)eclipse下载 进入该网页: http://www.eclipse.org/downloads/ (或者直接点击下载:BT下载    HTTP下载) 如下图: 我们选择第一个(即eclipse IDE