标签:
转载自:http://www.cnblogs.com/amanlikethis/p/3803736.html,
只是按照自己环境修改了一些东西而已
安装软件
安装eclipse IDE for C/C++ developers(自行安装)
安装插件ilg.gnuarmeclipse.repository-2.12.1-201604190915.zip
安装JLink驱动(可以使用beb包安装JLink_Linux_V600i_x86_64.deb)
安装插件ilg.gnuarmeclipse.repository-2.12.1-201604190915.zip
打开Eclipse->help->install new software
不勾选这项会快一些
使用JLink的命令行下载程序
使用这个命令进入JLink的命令形式,$JLinkExe -device STM32F103ZE -Speed 4000 -IF JTAG -JTAGConf -1,-1
后面的参数(可以在JLink命令形式中设置):
-device STM32F103ZE 选择设备
-Speed 4000 选择JLink速度
-IF JTAG 选择接口(JTAG,SWD)
-JTAGConf -1,-1 (忘记了哈哈)
J-Link>h
停止运行
J-Link>connect
连接设备
J-Link>loadbin filename(根据当前目录) 0x08000000
加载程序
J-Link>g
运行
J-Link>qc
退出
不过我的必须重启才可以运行(不知到为什么)
使用Eclipse下载
建立下载脚本(就是几句JLink命令了)
在工程目录写下led,jlink文件,内容如下
connect
loadbin 要下在文件(包括路经) 0x08000000
r
g
qc
打开eclipse->run->external tools configurations
可以看见led,jlink作为一个参数脚本文件(-CommanderScript ./led.jlink)
其实也就是在运行JLinkExe时出来一些设置之外要运行的命令,其实就是用命令行下载时我们自己敲的JLink指令。
loadbin 要下在文件(相对于${workspace_loc:/led}的路经) 0x08000000 可以通过修改这里,修改我们要下载的文件。
使用命令行调试
启动JLinkGDBServer
$ JLinkGDBServer -device STM32F103ZE -speed 4000 -IF JTAG
有些版本的JLink驱动直接$ JLinkGDBServer就可以了
使用arm-none-linux-gdb调试
#gedit ~/.gdbinit
set auto-load safe-path /
在当前用户目录下创建.gdbinit文件
笔者的当前用户是root,所以在root目录下创建.gdbinit初始化文件
在工程文件夹下的Debug目录中创建.gdbinit文件
target remote :2331
set mem inaccessible-by-default off
monitor speed auto
monitor endian little
monitor reset
monitor flash device = STM32F103ZE
monitor flash breakpoints = 1
monitor flash download = 1
load
monitor reg sp = (0x08000000)
monitor reg pc = (0x08000004)
break ResetHandler
break main
continue
需要说明的是:由于当前版本的Jlink驱动不支持STM32F103VET6,所以选择STM32F103ZE来代替。
在另一份终端中输入arm-none-eabi-gdb 文件名.elf 进行调试
eclipse调试
还是先设置JLinkGdbServer
打开eclipse->run->external tools configurations
其实和命令行一样,就是在启动/usr/bin/JLinkGDBServer时传入参数-device STM32F103ZE -speed 4000 -IF JTAG
点击运行
和终端输出一样,其实这就是eclipse将终端集成进来了而已
配置Eclipse调试选项
Debugger->Run-->Debug Configurations-->GDB Hardware Debugging -->Debugger
Startup
在Initialization Commands中输入检测参数
monitor flash device = STM32F103ZE
monitor flash download = 1
monitor flash breakpoints = 1
monitor clrbp monitor endian little
monitor speed 5 monitor reset
monitor sleep 100
monitor speed auto
monitor writeu32 0xE000ED08 = 0x00000000
再在Run Commands中输入命令
monitor reg r13 = (0x08000000)
monitor reg pc = (0x08000004)
break ResetHandler
break main
continue
标签:
原文地址:http://blog.csdn.net/u013209302/article/details/52443397