eclipse+arm_gcc+Jlink的stm32开发调试环境搭建
1 搭建eclipse的编辑环境 (用于C/C++开发)
1.1 安装 java
1.1.1 下载 java
下载 java,下载地址: https://java.com/en/download/manual.jsp
下图以Windows 64位操作系统为例,点击下载
1.1.2 默认选项安装 java
下载完成后,使用默认选项安装,即可。
1.1.3 检查 java是否安装成功
打开CMD,输入
java -version
注意中间有空格。
如果可以正常打印出版本号,即安装成功。(下图安装的是java1.8.0版本)
1.2 安装eclipse
1.2.1 下载 eclipse
在eclipse官网可下载:https://www.eclipse.org/downloads
实测Luna,Mars,Oxygen版本都可以用来开发。
但选择镜像时,最好下载 Eclipse IDE for C/C++ Developers,无需在线安装。
附上我使用的oxygen C/C++版本的下载链接:eclipse-cpp-oxygen-3a-win32-x86_64.zip
没有选择最新的版本,因为新版本会比较大。下载时选择国内的镜像会快很多,下图
1.2.2 安装 eclipse
如果下载的是 Eclipse IDE for C/C++ Developers ,无需安装,解压后直接可以用
1.2.3 打开 workspce
选择一个文件夹作为workspce打开
成功打开eclipse主界面,安装成功!
1.3 安装CDT
安装CDT有两种方法,
第一种是在线安装, 网上相关的教程很多, 不再赘余.
以下是第二种方式, 离线安装CDT.
离线安装的好处是, 可以用国内的镜像下载安装包, 速度更快. 而且, 如果电脑没有连接外网, 也只能用这种方式.
下载CDT安装包, 路径 https://www.eclipse.org/cdt/downloads.php
CDT需要与eclipse版本对应, 我用的是oxygen版本, 所以下载了cdt-9.4.3
在eclipse中点击 help->Install New Software…
点击Add, 选择cdt的根路径
勾选安装全部CDT的功能,
取消勾选Contact all update sites during install to find require software.
点击Next开始安装, 整个安装过程大概10~20分钟, 之后有些选项, 直接点击Next就可以
安装完成后重启eclipse, CDT插件就可以使用了
2 搭建eclipse+arm_gcc的编译环境 (用于ARM MCU开发)
2.1 安装ARM开发工具链(gcc-arm-none-eabi)
使用ARM-GCC工具链,下载地址:gcc-arm-none-eabi
工具链:一般由编译器、连接器、解释器和调试器组成
我下载了8.2.1版本,解压后是这些内容,下图。
2.2 make工具
需下载make工具,本文以cs-make为例
2.3 设置环境变量
需要设置windows的环境变量,用来定位工具链和make的路径,以便eclipse编译代码时索引可执行文件。
环境变量值需根据上面2.2、2.3步骤实际安装路径设置,下面为示例。
变量名 | 变量值 | 说明 |
---|---|---|
GCC_BASE | D:\GNUARM\8.2.1-1.2-20190119-1237 | GCC工具链的安装路径 |
GCC_VERSION | 8.2.1 | GCC 工具链版本 |
MAKE_BASE | D:\GNUARM\Common | make工具的安装路径 |
2.4 在eclipse中设置编译环境
新建makefile工程需要根据使用的make工具写makefile脚本,内容比较多,这里不展开说明,以一个现有的makefile工程为例示范设置编译环境的方法。
2.4.1 导入makefile工程到workspace
打开eclipse,点击 File->Import->c/c+±>makefile_project
2.4.2 设置编译命令
点击Project->Properties->C/C++Build
设置Build command框内为: ${MAKE_BASE}/cs-make
2.4.3 设置编译命令模式
点击Project->Properties->C/C++General -> Preprocessor Include Path ->Providers
其中有一个选项 CDT GCC Build Output Parser 要勾选, 勾选后下面会有一些配置。
需设置Compiler command pattern框内为: arm-none-eabi-gcc
2.4.4 测试编译环境
点击Project->Build Project
若没有编译器或编译命令错误的提示,则编译环境搭建完成,下图。
3 搭建eclipse+Jlink的调试环境 (针对STM32 MCU)
3.1 安装Jlink调试驱动
Jlink驱动可从 segger 官网下载,Segger官网
下载后默认选项安装即可,
3.2 设置Jlink-GDB服务启动入口
点击 Run -> External Tools -> External Tool Configurations
右键Program -> New, 添加 J-Link GDB Server
配置 Main这一页的参数:
- 在Location框内填入J-Link GDB Server可执行文件的路径+名称,下图示例为:C:\Program Files (x86)\SEGGER\JLink\JLinkGDBServer.exe
- 在Working Directory框内填入J-Link GDB Server可执行文件的路径,下图示例为:C:\Program Files (x86)\SEGGER\JLink
注: 以上需填入你在3-1步骤Jlink实际安装路径
3.3 设置调试方式
点击Run->Debug Configurations
双击左侧的GDB Hardware Debugging,依次配置右边的选项页。
Main选项页:
在C/C++ Application框内填入编译完成后的elf文件名,elf文件名一般在makefil文件中定义,下图示例为build\output.elf 。
Debugger选项页:
- GDB Command框内填入工具链GDB可执行文件的路径,下图示例为:D:\GUNARM\8.2.1-1.2-20190119-1237\bin\arm-none-eabi-gdb.exe
- JTAG Device选择 Macraigor USB2Demon
- Host name为:localhost
- Port number:2331
Startup选项页:
在Initialzation Commands中,勾选Halt,取消Reset and Delay
点击下方的Apply按钮,配置完成。
3.4 调试步骤
先启动Jlink GDB Server,
1 选择USB
2 选择待调试MCU的类型
3 选择调试接口(SWD、JTAG)
4 适当降低调试速率
点击OK
选择要调试的工程, 然后点击左侧调试按钮
3.5 安装EmbSysregView插件 (扩展功能, 可不安装)
EmbSysregView插件用来读取MCU寄存器的数据, 并不是软件调试的必要功能. 如果开发单片机的BSP模块, 可以安装这个插件
EmbSysregView插件下载 :
官方下载地址 (需要翻墙)
CSDN下载地址 (无需翻墙)
插件使用
将EmbSysregView的4个文件放到eclipse/dropins路径下, 然后重启eclipse
进入调试界面, 点击Window-> Show View -> Other -> Debug -> EmSys Registers
下图为打开的调试窗口, 双击要监控的寄存器, 寄存器上有三个小绿点代表正在监控