J-link Commander 命令操作 MCU 连接、调试、烧录、擦除等

【随手笔记】使用J-LINK读写芯片内存数据 在指定地址读8字节数据(内存以8位读)写入指定地址4字节数据(内存以8位写)数据操作都是以16进制(HEX)格式。擦除指定地址范围数据。 阅读详情

一、J-Link Commander 官方文档

1.1 官方文档链接

在这里:

J-Link Commander - SEGGER Knowledge Base

供参考,本文讨论常用的使用办法及技巧。

1.2 打开 J-Link 软件

在C:\Program Files\SEGGER\JLink_V938a\ (你的 J-Link 安装目录) 目录下:

或者在 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\SEGGER - J-Link V9.38a\ 的快捷方式中:

二、通过 J-Link 命令访问 MCU

2.1 查找 J-Link 设备列表

使用 ShowEmuList 命令。

发送:

J-Link>ShowEmuList

返回:

J-Link>showemulist
J-Link[0]: Connection: USB, Serial number: 80200XXXX, ProductName: J-Link EDU Mini, Nickname: <not set>

界面就是这样,之后为了节约篇幅不再截图这个窗口:

2.2 连接目标 MCU

2.2.1 device 命令

device 后面可接 MCU 架构或者 MCU 型号,填写下图中 J-Flash 的 Target Device Settings 有的 Device 即可:

发送:

J-Link>device RISC-V

无返回值

2.2.2 si 命令

设置接口为 JTAG,也可以是 SWD 等,下图为可选的参数:

发送:

J-Link>si JTAG

返回:

J-Link>si JTAG
Selecting JTAG as current target interface.

2.2.3 speed 命令

设置 JTAG 通信速度为 4000 kHz。

发送:

J-Link>speed 4000

返回:

J-Link>speed 4000
Selecting 4000 kHz as target interface speed

2.2.4 connect 命令

连接目标 MCU 并自动检测 JTAG 链中设备位置 -1,-1 是选择所有 J-Link 设备。

发送:

connect -1,-1

返回:

J-Link>connect -1,-1
Device "RISC-V" selected.


Connecting to target via JTAG
ConfigTargetSettings() start
ConfigTargetSettings() end - Took 6us
TotalIRLen = 5, IRPrint = 0x01
JTAG chain detection found 1 devices:
 #0 Id: 0x1000563D, IRLen: 05, RV32
Assuming RISC-V TAP with JTAG-DTM setup
DTM architecture:
  RISC-V JTAG-DTM version: 0.13
  AddrBits: 7
  DataBits: 32
  IdleClks: 7
RISC-V Debug Spec. Version: 0.13
Memory access:
  Via system bus: Yes (8/16/32-bit accesses are supported)
  Via ProgBuf: Yes (8 ProgBuf entries)
  Via abstract command (AAM): May be tried as last resort
DataBuf: 4 entries
  autoexec[0] implemented: Yes
Detected: RV32 core
Temp. halting CPU for feature detection...
HW instruction/data BPs: 8
Support set/clr BPs while running: No
HW data BPs trigger before execution of inst
CSR access via abs. commands: Yes
Compressed instruction support: Yes
Feature detection done. Restarting core...
BG memory access support: Via SBA
Memory zones:
  Zone: "Default" Description: Default access mode
RISC-V identified.

大概意思是,J-Link 通过 JTAG 成功连接到了一个 RISC-V RV32 内核,并正确识别了 RISC-V Debug Module。调试器完成了 CPU 特性探测,确认支持硬件断点、CSR访问、Program Buffer 和系统总线调试等功能。最终输出 RISC-V identified.,说明调试链路已经建立成功,可以正常进行下载、读寄存器和单步调试。

2.2.5 h 命令

h 命令是暂停 CPU (halt)

发送:

h

2.2.6 regs 命令

regs 是查看 CPU 寄存器状态 (PC、通用寄存器等)

发送:

regs

返回:

J-Link>h
pc = 80029C00 sp = 00208370 ra = 80027BE0
gp = 01200800 tp = 012013B8 fp = CC3203D5
t0 = 00000200 t1 = 00000001 t2 = 00000010
t3 = 00020000 t4 = 00008000 t5 = 00000000 t6 = 00000000
a0 = 000927C0 a1 = CC3203D5 a2 = 00000021 a3 = 00000021
a4 = CBF0D874 a5 = CBF0D878 a6 = 00000000 a7 = 00000000
s1 = 00000021 s2 = 01210000 s3 = 0000000A s4 = 00000001
s5 = 00238620 s6 = 00000001 s7 = 00238724 s8 = B000F0F0
s9 = 0023862C s10 = 00000000 s11 = 0023CED8

2.2.7 go 命令

go 命令让 让 CPU 继续运行 (resume)

发送:

go

返回:

Memory map 'after startup completion point' is active

2.2.8 总结

device RISC-V
si JTAG
speed 4000
jtagconf -1,-1
connect
h
regs
go
exit
  • 选择目标芯片为 RISC-V 架构
  • 设置接口为 JTAG (也可以是 SWD 等)
  • 设置 JTAG 通信速度为 4000 kHz (4 MHz)
  • 连接目标 MCU 并自动检测 JTAG 链中设备位置 (IRPre/DRPre 自动识别)
  • 暂停 CPU (halt)或者显示帮助
  • 查看 CPU 寄存器状态 (PC、通用寄存器等)
  • 让 CPU 继续运行 (resume)

新建记事本保存上述内容 改后缀为 riscv-connect.jlink 后,使用 powershell 打开:

& 'C:\Program Files\SEGGER\JLink_V942\JLink.exe' -CommanderScript .\riscv-connect.jlink

此时就可以执行完整的命令了。

三、烧录程序到 MCU

3.1 烧录的命令

3.1.1 loadfile

loadfile 命令可以将 .elf 文件烧录到 MCU 中,因为 .elf 文件已经包括 Flash 偏移地址,所以我们不需要再写入。

发送:

loadfile C:\Users\a2493\Documents\Codex\2026-05-14\jlink-risc-v\pd14_blinky\build_ram\output\demo.elf

3.1.2 setpc

强行修改 CPU 下一条要执行的指令地址,0x0 就是让 CPU 从 0 地址开始执行程序。

发送:

setpc 0x0                    ; 设置程序计数器

3.1.3 sleep

延迟命令,延迟 2500ms。

发送:

sleep 2500

3.2 烧录

烧录后我们先执行 setpc 0x0 让 CPU 跳转到 0:

device HPM6E8YxGNx
si JTAG
speed 4000
connect -1,-1
h
loadfile demo.elf
setpc 0x0
go
sleep 2500
h
regs
go
exit
  • 选择目标芯片
  • 设置接口为 JTAG
  • 设置 JTAG 通信速度 4000 kHz
  • 连接 MCU 并自动检测 JTAG 链位置
  • 暂停 CPU
  • 加载程序
  • 设置程序计数器
  • go让 CPU 运行
  • 等待 2.5 秒
  • 暂停 CPU
  • 查看寄存器状态
  • CPU 继续运行
  • 退出 J-Link

四、调试 MCU

4.2 调试命令

4.2.1 mem32

这是 J-Link读取命令,以 32 位方式读取地址 0xF00D0130 的内存内容,共读取 1 个数据。

mem32 0xF00D0130 1

4.2.2 D

D 命令 和 mem32 命令很接近,都是查看内存。

D 更像内存查看器,会按默认格式显示。

D 0xF00D0130 1

4.2.3 w4

w4 命令是写入 4 字节。

表示通过 J-Link 向 MCU 地址 0xF00D0234 写入一个 32 位数据 0x00004000。

w4 0xF00D0234 0x00004000

五、擦除 MCU

5.1 erase 命令

erase 命令是擦除 flash。

表示擦除 0x80000000 到 0x803FFFFF 之间的 Flash 区域。

erase 0x80000000 0x803FFFFF

5.2 获得擦除大小

在 J-Flash 中创建项目可以在库中查到 MCU 的 FLASH 大小和起始地址:

我们查询到 HPM6E8YxGNx Flash 大小是 4MB,起始地址是 0x80000000 就可以执行全片擦除:

我们使用 connect 命令成功连接到 MCU 后就可以执行擦除命令:

erase 0x80000000 0x803FFFFF

Jlink读取MCU固件 使用jlink和ARM仿真器读取mcu固件 阅读详情

相关推荐

使用J-Link Commander通过J-LINK以命令的形式来访问ARM通用MCU

通常我们的操作是写好程序然后将程序下载到芯片里面,然后运行程序来进行相应的操作,其实还可以使用。硬件之外还需要安装图1所示的软件,根据自己的平台来安装,安装完之后我们这里主要用到的是图2中的。现在软件和硬件都有了,我们来看一下如何用命令的形式来访问ARM通用MCU,这里以。的一页需要多个操作寄存器的命令,这时我们可以把所有这些命令放到一个文件里面,文件扩展名为。和芯片建立联系,联系建立之后就可以开始使用上面的链接提到的命令。所在的目录,如图3所示,然后可以用下面带参数的命令来建立图2的。

caoleiwe的博客 2813

Jlink commander使用方法(附指令大全)

Jlink commander使用方法(附指令大全);Jlinkcmd它可以方便用户在非仿真的情况下,hold内核、单步、全速、设置断点、查看内核和外设寄存器、读取flash代码等等,方便大家拥有最高的权限查看在运行中的MCU情况,查找非IDE仿真情况下,MCU运行异常的原因。

粉色挖掘机的博客 5万+

J-Link Commander命令行烧录HEX文件技巧:比GUI更高效的STM32开发方式

本文详细介绍了使用J-Link Commander命令行工具烧录STM32 HEX文件的高效方法。通过解析核心命令、构建自动化脚本,并与GUI方式进行对比,阐述了命令行在批量操作、自动化集成和CI/CD流程中的显著优势,为追求极致效率的嵌入式开发者提供了一套可靠的自动化工作流解决方案。

docker7nomad的博客 828

使用Jlink读取单片机内部程序

Jlink工具作为常用的调试工具,其亦可以单独下载文件到MCU,需要借助JFLASH工具,下载地址如下 https://www.segger.com/downloads/jlink/ 直接下载jlink软件或者单独下载J-FLASH都可以,只是需要下载的时候同意一下相关协议(影响不大) 安装后,图标如下 2.工程配置 打开Jflash软件,如下图,与一般工具类似需创建相应的工程 4.连接芯片 如果选择的是SWD模式,就要连接SWDIO、SWCLK、GND这三根线,连接...

位文杰的博客 1万+

手把手教你用J-Link调试MM32 MCU:从驱动安装到成功烧录

本文详细介绍了使用J-Link调试灵动微电子MM32系列MCU的全流程,从驱动安装到成功烧录。涵盖硬件连接、IDE配置(Keil MDK和IAR EWARM)、烧录实战技巧及常见问题解决方案,帮助开发者高效完成SWD调试和程序烧录。

weixin_30316097的博客 471

利用J-Link Commander实现ARM MCU的高效批量操作

本文详细介绍了如何利用J-Link Commander工具对ARM MCU(如STM32F103ZE)进行高效的批量操作。通过命令行脚本,开发者可以自动化完成Flash擦写、寄存器配置、内存数据导出等任务,显著提升在研发调试、生产烧录及故障分析场景下的工作效率。

ol789012的博客 420

Jlink 命令【常用命令】

几个常用命令: usb--------连接目标板 r----------重启目标板 halt-------停止cpu运行的程序 loadbin----加载可执行的二进制文件 g----------跳到代码段地址执行 s----------单步执行(调试用) setpc-----设置pc寄存器的值(调试用) setbp-----设置断点 Regs-------读寄存器组织,该命令会把所有的寄存器显示出来 wreg-------写寄存器 mem--------读内存 ...

流风回雪的博客 1万+

J-Link烧录瑞萨RA MCU全攻略:从环境搭建到问题排查

在嵌入式开发中,程序烧录是将编译后的二进制代码写入微控制器(MCU)非易失性存储器的关键步骤,其核心原理是通过调试接口(如SWD/JTAG)与芯片内部Flash控制器进行通信,完成擦除、编程和校验操作。这项技术的价值在于它是连接软件与硬件的桥梁,确保了产品功能的最终实现。在工业控制、消费电子和物联网设备等广泛的应用场景中,高效可靠的烧录流程是保障量产效率和固件质量的基础。本文以广泛使用的J-Link调试器和瑞萨RA系列MCU(如RA2E1)为例,深入解析**SWD接口**的硬件连接要点与**Keil MDK

weixin_30292745的博客 363

J-Link下载器 —— 驱动及工具

J-Scope是Jlink的一个强大的功能,可以在MCU运行时,实时查看全局变量的值,并以图形化显示,就像示波器一样。2、打开程序文件: 点击File->Open data file,打开要烧写的字库文件,支持多种格式的文件,由于是选择的Bin文件,没有起始地址,所以手动输入烧写的起始地址,这里填写0就可以了。1、连接SPI Flash芯片: 点击Target->Connect,如果连接成功的话,会在底部输出连接信息,会显示Flash芯片的型号,生产厂家,Flash ID等等信息。

改变自己现在能改变的,珍惜自己现在所拥有的 4646

基于QT与J-Link Commander的嵌入式烧录工具开发实践

在嵌入式系统开发中,固件烧录是连接软件与硬件、验证功能实现的关键环节。其核心原理是通过调试接口(如SWD/JTAG)与目标芯片的Flash存储器进行通信,完成程序的擦除、写入与校验。高效的烧录工具不仅能提升开发调试效率,更是自动化测试与批量生产的技术基础。通过封装底层硬件操作指令,提供友好的图形界面,开发者可以快速完成程序更新,缩短开发周期。本文以广泛应用的J-Link调试器为例,深入探讨如何利用其命令行工具J-Link Commander,结合QT框架构建一个轻量级、跨平台的图形化烧录工具。该方案特别适用

weixin_30608503的博客 436

J-Link连接失败根因分析:SWD握手协议与国产MCU调试接口解锁

J-Link调试连接失败本质是SWD(Serial Wire Debug)协议握手异常,而非软件配置错误。其核心原理在于物理层链路建立、IDCODE识别、调试端口使能三阶段严格校验。技术价值体现在快速定位硬件设计缺陷、固件兼容性瓶颈及Boot模式配置失误,显著提升GD32、STM32等Cortex-M芯片的烧录成功率与量产导入效率。典型应用场景覆盖嵌入式开发调试、国产MCU产线烧录、FAE现场故障排查。本文聚焦J-Link与MCU间SWD握手失败现象,结合GD32F303CC等高频型号,系统解析信号完整性、

weixin_34265814的博客 390

本文为嵌入式开发新手提供J-Link调试器的入门指南,涵盖安装、连接、基础调试命令等必备技能。

第一次拿到J-Link时,先观察接口类型(常见有USB和20pinJTAG接口),配套光盘里有驱动和文档。在Windows上安装驱动时,如果遇到设备管理器显示黄色感叹号,可能需要手动指定驱动路径。在资源有限的MCU上,硬件断点非常宝贵(通常只有4-6个)。刚开始可能会觉得J-Link命令复杂,但按这个路线坚持实践两周,就能掌握80%的日常调试需求。的虚拟环境很适合新手:不用买硬件就能模拟J-Link操作,内置的AI助手能实时解答问题。特别是它的交互式命令练习功能,每步操作都有提示,对建立基础概念特别友好。

BlackironLynx23的博客 731

告别Keil图形界面:用J-Link Commander脚本实现CX32L003的自动化烧录与加密

本文详细介绍了如何利用J-Link Commander命令行脚本实现CX32L003芯片的自动化烧录与加密,提升嵌入式开发效率。通过构建批处理文件和J-Link脚本,开发者可以摆脱Keil图形界面的限制,实现批量生产中的高效、可靠操作,同时支持芯片加密与解锁功能。

weixin_30265103的博客 436

使用J-Link烧录瑞萨RA芯片:从算法配置到问题排查全指南

在嵌入式开发中,程序烧录是将编译后的机器码写入微控制器(MCU)内部Flash存储器的关键步骤,其核心在于调试器与芯片底层协议的通信。这一过程依赖于特定的Flash编程算法,该算法定义了擦除、编程和校验的时序与命令。对于采用ARM Cortex-M内核的瑞萨RA系列MCU,虽然内核通用,但其Flash控制器具有厂商特定性,因此需要匹配专用的烧录算法文件(如.FLM格式)。使用行业标准的J-Link调试器进行烧录,能提供高兼容性与稳定性,尤其适用于开发调试与量产环节。本文以瑞萨RA MCU为例,详细解析了如何

weixin_30423977的博客 354

基于QT与J-Link Commander的嵌入式固件烧录工具开发实践

嵌入式开发中,固件烧录是连接软件与硬件的重要环节,其核心原理是通过调试接口将编译后的二进制代码写入目标芯片的非易失性存储器。传统烧录方式依赖专用软件,但在自动化测试、批量生产等场景下,往往需要更灵活、可集成的解决方案。通过封装SEGGER J-Link调试器的命令行工具,结合QT框架的跨平台GUI能力,可以构建高度定制化的烧录工具。这种方法不仅实现了对Hex、Bin等常见固件格式的稳定编程与校验,还能深度集成项目特定的验证逻辑,并与CI/CD流水线无缝对接。本文以STM32项目为例,详解如何利用QT的进程交

weixin_30414305的博客 399

利用J-Link Commander批处理脚本高效操作ARM MCU的实战指南

本文详细介绍了如何利用J-Link Commander批处理脚本高效操作ARM MCU,包括环境搭建、脚本编写、实战技巧及性能优化。通过自动化脚本实现批量烧录、测试和诊断,显著提升STM32F103ZE等ARM MCU的开发效率,特别适合产线批量处理和自动化测试场景。

weixin_42520573的博客 144
上一篇: 伺服控制的负载转矩扰动观测器 (TL DOB) 简谈
下一篇: 配置 CodeX 环境的 Simlink AI 工具链
崔佳宇_
崔佳宇_ 优质创作者: 嵌入式与硬件开发技术领域 优质创作者: 嵌入式与硬件开发技术领域
博客等级 码龄10年 1万+粉丝 173原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值