这段时间在玩STM32,但官方库的代码也确实是有点多,记忆力有点不太好了。突然就想起了以前用Eclipse的那个代码提示功能,谷歌了一段时间,

(一)安装编译环境

1.下载和安装JAVA虚拟机

因为Eclipse是基于Java的,所以Linux下也可以运行,同时使用Eclipse时,需要确认计算机是否有Java虚拟机的环境,如果没有,登陆甲骨文网http://www.oracle.com/index.html,下载JAVA

JDK安装包,本人使用64bit的WIN7,所以下载了jdk-8u51-windows-x64.exe。要注意,在WIN7/XP下安装完JavaJDK后,并不是完成了,还要自己手动配置环境变量,详情可以百度《配置JAVA环境变量的配置》。

117831594_1_20171201103227295

2.下载和安装Eclipse

JAVA环境配置好后,登陆www.eclipse.org  下载 C/C++ 的Eclipse IDE,免安装,解压即可用(前提是JAVA环境配置好了)

117831594_2_20171201103227561

3.Eclipse下的CDT插件的安装

接下来,就是插件的安装了,首先安装的CDT,,下载地址http://www.eclipse.org/cdt/,本人下载的是cdt-master-7.0.2.zip

安装方式:打开Eclipse->Help->Install New software,在弹出的窗口点"Archive",然后选择刚刚下载的CDT压缩包,再点OK。

然后勾选所有项目,按NEXT,等待即可

117831594_3_20171201103227827

117831594_4_20171201103227967

117831594_5_2017120110322892

勾选全部后,一路按"NEXT"

117831594_6_20171201103228530

4.GNU ARM Eclipse 插件安装

CDT装完以后就可以安装GNU ARM Eclipse Plug-in:http://sourceforge.net/projects/gnuarmeclipse/,ilg.gnuarmeclipse.repository-2.7.1-201503211846.zip,安装方式与CDT插件安装方式相同,目前的版本已经支持基于 GDB SEGGER  JLINK 以及 GDB OpenOCD的调试。

5.安装交叉编译工具链

5.然后就是安装交叉编译工具链了。目前有好几种Windows环境下的ARM交叉编译工具链,如 CodeSourcery Lite Edition(被Mentor收了), GNU ARM Tools for Embedded,Yagarto GCC, Linaro GCC, 由于是针对Cortex-M, 采用的都是 arm-none-eabi版本。本人使用gcc-arm-none-eabi-4_9-2015q1-20150306-win32.exe

(环境变量的配置在最后讲)

6.windows 7 下的make工具下载与安装安装,环境变量配置

最后,需要安装make工具,否则后面Eclipse无法配置而导致报错。

下载的是sed安装文件,目前sed安装后不包含make.exe工具

因此需要下载一个make工具make.exe拷贝到安装后GnuWin32的bin目录下,并在环境变量Path中添加bin目录的路径

117831594_7_20171201103228670

安装过后,无论是make工具还是GNU编译器,都是需要配置环境变量,详情如下

117831594_8_20171201103228749

注意,在系统变量中,需要将编译器的Bin路径都放进去,注意两个路径之间需要用" ; "隔开,

例如,我 的系统变量的路径是这样的:C:\Program Files (x86)\GNU Tools ARM Embedded\4.9 2015q3\bin

在eclipse中,还需要对make工具和编译工具的路径进行添加,如下

117831594_9_20171201103228999

117831594_10_20171201103229295

打开Eclipse,点击NEW->C Project

117831594_11_20171201103229717

命名好工程的名字,并且选择工程类型,工程类型处有各种模板,本次选择空的工程,选择“Empty project”,右边是选择前边所安装的交叉编译工具,选择Cross

ARM GCC

选择完成后,点击“NEXT”

117831594_12_20171201103229952

一路点击"NEXT"

当安装好交叉编译工具后,Eclipse会自动导入工具在系统中的位置,如下,最后点击FINISH

117831594_13_20171201103230202

工程初步建立。

在工程目录下新建一个【USER】和【startup】文件夹

将固件库复制到工程目录下,STM32的固件库,可以在www.stmcu.org 或者ST的官网上均有下载。本人使用V3.5版本的STM32F10x_StdPeriph_Lib_V3.5.0。

117831594_14_20171201103230452

本人使用STM32F103ZET6,对复制到工程目录下的固件库文件操作如下

复制\ stm32\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template目录下的 main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h 到【USER】文件夹复制\stm32\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template\TrueSTUDIO\STM3210E-EVAL下的stm32_flash.ld到工程目录下(打开可以看到,这个链接文件是针对于STM32F103ZET6的,固每种不同型号的STM32 MCU,需要更换此文件)复制\stm32\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\TrueSTUDIO下的startup_stm32f10x_hd.s到工程目录下,并且将后缀.s从小写更换为大写.S(因为本次使用STM32F103ZET6大容量MCU,故使用此文件

删除工程目录下的\stm32\STM32F10x_StdPeriph_Lib_V3.5.0的【Project】和【Utilities】文件夹,至此,文件增删完成,在Eclipse的工作区中选择该工程,然后按F5刷新,文件会自动导入工程

117831594_15_20171201103230639

此时,还未可以进行编译,因为工程配置还没有完成,配置如下

选中工程->右键->Properties->C/C++ Build->Settings

117831594_16_20171201103230795

选中CROSS ARM C Compiler->Preprocessor  添加两个宏  STM32F10X_HD 和USE_STDPERIPH_DRIVER,表明使用大容量MCU和使用外围固件库

添加头文件路径

117831594_17_20171201103231202

添加链接文件,选择从固件库复制出来的stm32_flash.ld(打开该链接文件,可以看出是针对于STM32F103ZET6的)

117831594_18_20171201103231483

点击【Toolchains】选卡,把安装的交叉编译工具路径下的bin文件夹路劲填上

117831594_19_20171201103231842

这个时候,来到了一个最关键的地方,我坑了1天多,点击Environment->PATH,在这里,添加GNUWIN32的路径 C:\Program Files (x86)\GnuWin32\bin(路径是我自己的),因为工程需要make工具,有的交叉编译工具会自带Make工具,但我使用的这个没有,如果没有加上,会出现找不到"make.exe"错误(上面提到的技能make.exe拷贝到GnuWin32\bin目录下相关)

117831594_20_20171201103232405

完成后对【USER】文件夹下的Main.c进行修改,因为没有包含任何DEMO文件,所以需要删除MAIN.C下调用的函数,清理干净后,可以进行编译,出现了如下错误

117831594_21_20171201103232670

经谷歌,寻找歪果仁讨教后,ERROR:register may not be the same -- strexb r3,r2,[r3]等错误的解决方法如下

打开工程文件\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport下的core_cm3.c,找到

__ASM volatile ("strexb %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) );

__ASM volatile ("strexh %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) ); 两行,更改如下

__ASM volatile ("strexb %0, %2, [%1]" : "=&r" (result) : "r" (addr), "r" (value) );

__ASM volatile ("strexh %0, %2, [%1]" : "=&r" (result) : "r" (addr), "r" (value) );

修改完成后,保存!注意,请再选中工程项目,刷新F5,再一次编译。刷新是很重要的。

至此,基于Eclipse的STM32工程建立,完成

(二)配置调试下载

在Eclipse下想要调试STM32等单片机,需要J-LINK或者ST-LINK,相对来说,可能J-LINK的教程会比较多一些,

但手头上只有ST-LINK,物尽其用,想要在Eclipse下配置调试工具,请参考一下博文

感谢上面博文的作者。

1.安装ST-LINK Utility

2.配置ST-LINK V2 工具

以下步骤是在Windows下进行的,Linux请参考【参考资料】

在Eclipse中,RUN->External Tools->External Tools configurations,对Program右键,新建选项卡,自行命名,只需更改【Main】和【Commom】选项卡,参数如图下

117831594_22_20171201103233139

117831594_23_20171201103233467

3.配置Openocd

如果是WIN7 64bit,请选择0.7.0版本,0.8.0会有BUG

3-1.解压到不含中文的路径(并且不能包含空格字符的路径中,注意:不能再Program File路径下)

3-2.在目录里openocd-0.7.0\scripts\interface 文件夹下,找到stlink-v2.cfg,并复制到工程目录下(因为我是使用ST-LINK V2的)

3-3.在目录里openocd-0.7.0\scripts\target文件夹下,找到stm32f1x_stlink.cfg,并复制到工程目录下(因为我是使用stm32f1x系列的,并且是非官方DEMO开发板,官方开发板配置请参考下方【参考资料】的博文)

3-4.跟配置ST-LINK的时候一样,RUN->External Tools->External Tools configurations,对Program右键,新建选项卡,自行命名,只需更改【Main】选项卡,其他选项卡为默认,参数栏必须按图填写,因为有先后之分,参数如图下

117831594_24_20171201103233874

4.设置DEBUG 选项

4-1.Run->Debug configurations,新建GDB openocd Debugging选项卡

4-2.【MAIN】选项卡,选择工程名称和工程生成的ELF文件目录

117831594_25_20171201103234233

4-3.【Debug】选项卡配置如下(此为关键点)

Openocd SETIP选项下的路径是openocd-x64-0.7.0.exe的路径

Openocd Setup选项下的Config option,需要填写上方两个.cfg文件的绝对路径,变量是无效的,并且注意,填写是有先后顺序之分的,务必按图上填写。(两个路径之间用空格隔开,因此路径本身的文件名不能包含空格)

GDB Client SETUP选项下的路径是arm-none-eabi-gdb.exe的路径

117831594_26_20171201103234670

至此,连上ST-LINK,点击DEBUG,即可进行调试

5.参考资料

stm32运行java虚拟机_windows下的基于Eclipse的STM32开发调试环境搭建相关推荐

  1. 基于Kubernetes1.20.1版本开发调试环境搭建

    接下来的一段时间将要学习Kubernetes源码,为了更好的查看源码和调试程序,因此搭建了一个Kubernetes开发调试环境,该环境可以结合断点调试理解代码的运行过程. 准备虚拟机并安装必要软件 $ ...

  2. 基于wampserver和Eclipse for PHP Developers的PHP开发调试环境搭建

    一.系统环境 OS:Windows7 sp1 64 Apache:2.4.23 MySQL:5.7.14 PHP:5.6.25 二.软件准备 1.WampServer 下载地址:http://www. ...

  3. WIN10 + VS2015 + WDK10 + SDK10 + VM虚拟机驱动开发调试环境搭建

    为什么80%的码农都做不了架构师?>>>    一.准备工作 1 系统环境:Win10系统 2 开发工具:VS2015 3 驱动开发工具:WDK10 4 Windows SDK:SD ...

  4. 基于QEMU-aarch64学习UEFI(EDK2)-1环境搭建

    基于QEMU-aarch64学习UEFI(EDK2)-1环境搭建 文章目录 基于QEMU-aarch64学习UEFI(EDK2)-1环境搭建 一.环境搭建 1.虚拟机Ubuntu系统安装 2.dock ...

  5. linux设备驱动开发之环境搭建(基于exynos4412)

    第一章 linux设备驱动开发之环境搭建(基于exynos4412) 目录 第一章 linux设备驱动开发之环境搭建(基于exynos4412) 1.搭建开发板运行环境 1.1.交叉开发模式 安装交叉 ...

  6. PHP开发调试环境配置(基于wampserver+Eclipse for PHP Developers )

    因为项目需求,需要开发PHP的项目,所以不得不花点时间开始学习PHP,过程非常要抓狂,还没有开始开发已经被一大堆复杂的环境搭建搞疯了 经过多方实验,决定将过程记录下来,也为了让很多跟我一样从零开始学习 ...

  7. vscode-armgcc-openocd搭建STM32开发调试环境

    环境配置 一. vscode插件安装 1. 打开vscode, 进入扩展搜索页面 2. 搜索安装: Embedded IDE, Cortex-Debug 二. arm-gcc, openocd安装 a ...

  8. ffmpeg编译gb28181_RTSP/GB28181协议/海康SDK/Ehome协议视频上云网关EasyCVR视频平台在linux环境下ffmpeg源码单步调试环境搭建...

    目前TSINGSEE青犀视频研发的视频上云服务平台EasyCVR已经可集成海康EHome私有协议,并且在前文中我也跟大家讲过EHome协议的配置和调用流程,有兴趣的可以阅读一下:配置及协议介绍.Eho ...

  9. g++ linux 编译开栈_Linux下编写C++服务器(配置C++编译调试环境)

    Linux下编写C++服务器(配置C++编译调试环境) 安装好linux虚拟机,确定能上网后,我们可以开始编写C++程序了,但在这之前我们需要下载编译器和调试器 下载gcc 1.在终端输入yum se ...

最新文章

  1. java B2B2C springmvc mybatis多租户电子商城系统(五):熔断监控Hystrix Dashboard和Turbine...
  2. android 连接mysql orm_Android ORM框架 GreenDao 的使用详解
  3. prerenderspaplugin 打包完成后如何让百度收录_如何提高网站流量、排名?
  4. 移动端HTML5长按图片会选中页面中某个位置的文字
  5. 中科大计算机学院博士导师,中科大计算机学院招生导师
  6. 微众银行在联邦推荐算法上的探索及应用(文末附PPT下载链接)
  7. PDE6 Transport with decay
  8. ubuntu14.04安装tensorflow-gpu
  9. 如何在R中使用range()?
  10. For循环案例---九九乘法表
  11. python datetime处理时间
  12. html颜色代码表,html中黄色代码是什么
  13. 3d建模公司可视化建模数字孪生应用
  14. 全系列三极管应用参数
  15. Essential Matrix 的求解算法--Nister 五点算法以及原理
  16. 球员题(查询+添加+排序)
  17. 微信设置换个字体,格调瞬间起来了
  18. Excel シートインポート、Excel シートエクスポート
  19. 深度学习三巨头之Yann LeCun(杨立昆)简介
  20. MYSQL5.7(64位)安装包及安装步骤

热门文章

  1. 最详细的Android Bitmap回收机制(从2.3到7.0,8.0)
  2. 英特尔宣布推出新的“ Compute Stick”-一种笔式驱动器大小的PC
  3. 郭逸淵:4月7日比特幣(BTC)以太坊(ETH)行情分析及布局思路
  4. Window操作系统基本知识
  5. 80年代后最佳阵容之巴西篇
  6. redis恢复阿里云rdb文件
  7. 高精地图对自动驾驶来说有多重要?
  8. Deep Learning L教程(六)
  9. 电脑上总显示宽带连接服务器怎么办啊,电脑显示宽带已连接网页打不开怎么办...
  10. 我分析了上万个微信红包数据,得到了这些发现(附数据集)