openocd配合J-link下载调试程序

openocd配合J-link下载调试程序

  • 前言
    • 一、硬件工具和软件
    • 二、配置环境与下载代码
      • 1、配置环境
      • 2、下载代码
    • 三、常用命令

前言

文章仅为个人学习记录或所遇到的问题记录,谢谢!

一、硬件工具和软件

硬件:
1、J-link V9
?过J-link连接操作芯片
2、STM32F103ZET6
?以STM32F103ZET6为例

软件:
1、OpenOCD-20231002-0.12.0
?openocd软件可以到官网上下载
2、zadig-2.6
?zadig修改j-link驱动,修改后配合openocd使用
3、MobaXterm
?输入命令

二、配置环境与下载代码

1、配置环境

步骤1:
打开zadig,选择Option->List All Device,在下拉框中找到BULK interface,选择修改的驱动为winusb,点击replace driver,等待驱动修改成功。如果后续想再使用j-link驱动调试烧录程序,需要重新安装j-link驱动
在这里插入图片描述
步骤2:
到openocdshareopenocdscriptsinterface文件夹下找到jlink.cfg文件,使用笔记本打开输入以下命令。对连接接口进行配置
在这里插入图片描述

步骤3:
打开windows命令行,将路径修改到openocd->bin(bin文件下有openocd.exe文件),输入命令openocd -v,可以获得openocd的版本信息。路径为绝对路径
在这里插入图片描述
在这里插入图片描述
步骤4:
输入openocd -f <jlink.cfg文件路径> -f <stm32f1x.cfg文件路径>,
jlink.cfg文件在下载的openocdshareopenocdscriptsinterfacejlink.cfg下,
stm32f1x.cfg文件在openocdshareopenocdscripts argetstm32f1x.cfg下。
两个路径都为绝对路径。
出现以下信息,表明openocd已经通过jlink获取到芯片的信息
在这里插入图片描述
步骤5:
打开MobaXterm,选择session->Telnet,名字输入localhost,端口名输入4444,进入以下界面就可以正常输入命令进行操作了
在这里插入图片描述
在这里插入图片描述

2、下载代码

环境配置好后,如果烧录文件为hex文件,输入program ?<hex文件路径>。如果烧录文件为bin文件,输入program?<bin文件路径>?<bin文件烧录地址>

在下载完成后,输入reset对芯片进行复位。代码就可以正常运行了。

注意:
(1)hex文件路径:路径为hex的绝对路径
(2)这里hex和bin文件的绝对路径中间以 " / "表示下级目录,windows中以 " "表示下级路径,如果提示找不到烧录文件,请查看符号是否正确

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/2e15a44feb1e44618f9aed6954f8fe6e.pn

在这里插入图片描述

三、常用命令

命令 说明
halt 内核暂停运行
resume 内核恢复运行
reset 复位芯片
program <文件路径><烧录地址> 烧录代码
init; reset init;flash erase_address <FLASH起始地址><FLASH大小> 芯片FLASH擦除
mdw<地址><长度> 按字读取数据
mww<地址><长度> 按字写入数据
help 获取命令说明

如果想获取openocd其他命令信息,请在命令行中输入help命令,获取openocd命令说明。