JLink工具箱:深入理解与实践

JLink_Windows_V754d_x86_64.exe安装后生成的工具集如下:
目录

一、J-Flash Lite(烧录工具)

首先硬件连接:J-link的SWD的接口对应连接MCU SWD接口,GND\SWCLK\SWDIO\VCC(VCC可以不接);
安装J-Link驱动或者Segger IDE的前提下,在开始菜单搜索“J-Flash”,打开,通常连接正确的话可以自动识别Device类型;

点ok打开以下界面,Erase Chip,Done之后->···浏览要烧录的hex或者bin文件->Program Device,Done;

二、J-Flash SPI(烧录工具)

使用JLink来烧写或者读取SPI Flash存储器,JLink软件包含的工具中,有一个是JFlashSPI工具,这就是一个烧写和读取SPI存储器的工具了。
与Jflash差不多。走的通道不同。
1连接SPI Flash芯片:
点击Target->Connect,如果连接成功的话,会在底部输出连接信息,会显示Flash芯片的型号,生产厂家,Flash ID等等信息。
2打开程序文件:
点击File->Open data file,打开要烧写的字库文件,支持多种格式的文件,由于是选择的Bin文件,没有起始地址,所以手动输入烧写的起始地址,这里填写0就可以了。
3下载
点击Target->Auto下载程序到Flash芯片内。下载完成后,会在底部窗口显示下载成功的信息,可以看出烧写速度还是比较快的,170KB的字库文件,用时不到1秒钟。
4程序文件的读取
和读写单片机程序一样,也是支持读取SPI Flash芯片程序的.

三、J-Flash(烧录工具)

可以用来刷写程序、读取、校验、擦除Flash。
同上。
J-Flash可以芯片解锁
关键步骤!由于芯片已经采用了读保护,直接读写是不会成功的,我之前用keil烧写,能读出芯片型号,但下载时就总报错,所以一定要先对芯片解锁,大概需要10s左右

四、J-Link Commander(调试工具)

Jlink可以通过commander命令调试口或者比较多现场实时的数据以及调试信息。提高开发效率,获取代码现场数据,缩短定位bug的时间。
JLINK Commander使用方法:
1连接JLink到设备,并安装好对应的驱动,
2打开Jlink Commander 终端
3输入connect命令
4按照提示输入:?
5系统会弹窗并提示选择对应平台,以富芮坤8018为例,这里选择Cortex M3
6选择接口为SWD,并设置传输速率
7界面显示识别到了Cortex M3 ,便连接上了目标板.
8此时我们就可以使用jlink commander命令来进行调试
commander 命令可参考segger官方说明文档:
https://wiki.segger.com/J-Link_Commander

常用的命令有halt,go,mem(mem8,mem16, mem32), write(write1, write2, write4 )
halt 停止运行 无 停止运行后,会显示PC指针,SP地址等信息。
go 运行 无
mem 读取内存地址 起始地址 读取长度 可以结合map文件读取对应变量的值。
Write 写对应地址 起始地址 读取长度 结合map文件写入变量的值。

o halt 命令是可以与go命令配合使用,执行halt命令后,设备会停止运行,并再commander终端显示当前寄存器的数值。里面可以重点关注PC指针,SP指针和R14寄存器值。

五、J-Link Configurator(固件升级)

固件版本问题:联网更新J-LinkARM驱动程序后无法使用J-Link仿真器了。具体就是有时接入J-Link到电脑时,会弹出一个消息说“J-Link驱动程序有更新,建议下载更新”,然后点击了“确认”更新后,问题来了,J-Link不能下载程序了,提示说说J-Link固件是盗版。看来问题原因是J-Link的固件代码不能支持更新后的驱动程序,解决方法可以有两种,一种是将固件代码升级,固件烧写要用到SEGGER的J-LinkConfigurator工具,步骤可以搜下具体的烧写步骤,而且要确定好升级的固件版本。第二种方法是将更新的驱动程序卸载掉,下载一个原来版本的J-Link驱动程序安装了。

目前大家手中的JLINKv8经常出现的问题,可以总结为如下三点:
1 LJINK上的指示灯不亮。
2插上JLINK后USB无法识别。
3使用新版keil或者iar升级固件后提示clone。
对于第一、二个问题,原因一般都是内部固件意外损坏或丢失,需要重新烧录固件,关于如何烧录固件,推荐网上一篇非常好的教程《JLINK v8固件烧录指导》.
对于第三个问题,是因为软件检测到JLINK非正版(正版的JLINK几百元乃至上千元),自然不会让你烧程序了。解决办法如下:
第一步,重新烧录固件,具体参照《JLINK V8固件烧录指导》进行固件烧写。(烧写固件使用J-LINKV8.bin)。
第二步,安装Setup_JLinkARM_V450l(若安装其它版本的,仍建议安装此版本,已安装版本不用卸载,否则可能会出现刚烧写好固件就提示Clone的情况)。
第三步,连接仿真器到电脑上,打开J-Link Commander(刚安装版本的),提示升级时点击取消,若仿真器正确识别,就可以在命令行键入命令如下:
exec setsn=XXXXXXXX (XXXXXXXX代表16进制,值随意设定)
最后,关闭JLink Commander,使用 J-Link Configurator,进行固件升级,此时就不会提示clone了。

六、J-Link DLL Updater(驱动更新)

问题:安装最新J-LINKV7.64驱动后,每次debug都会弹出 J-link V7.64C Warning : the connected probe appears to be a j-link clone的错误
分析:这是由于keil MDK 安装文件夹…/ARM/segger 下的j-link驱动文件在安装J-LINK7.64时被更新成高版本,或者keil MDK 自带的 j-link驱动版本太高;这个文件夹下的文件就会识别认为 V9 J-LINK 仿真器是盗版。
如何知道keil MDK 下 j-link驱动版本:如图 dll: 就是keil MDK的 j-link 驱动版本

解决方法:选择低版本J-LINK驱动重新安装。
1先下载低版本的J-LINK驱动 ,比如 V6.56;官网网址:https://www.segger.com/downloads/jlink/#J-LinkSoftwareAndDocumentationPack
2 卸载原先高版本的J-LINK驱动(安装路径里会有卸载程序,直接点击即可 ,uninstall.exe)
3 点击 下载好的V6.56 J-LINK 进行安装
4 左下角 win 图标会有 j-link dll updater V6.56的程序,点击OK 即可更新keil MDK segger 文件夹的文件为低版本,如图
5 最后重启keil MDK

七、J-Link GDB Server(gdb调试)

熟悉Linux调试的应该了解GDB调试,类似于MDK的在线调试,可设置断点/查看变量等。

八、J-Link JTAGLoad(调试工具)

JTAGLoad是一个工具,可以用来打开和执行svf(串行向量格式)文件 JTAG边界扫描测试。文件中的数据将通过J-Link / J-Trace发送给目标。
SVF是边界扫描矢量的标准格式,可用于不同的工具和目标。SVF文件包含人类可读的ASCII SVF语句,由SVF命令、要发送的数据、预期的响应、响应的掩码或其他信息。
JTAGLoad支持以下SVF命令:
• ENDDR • ENDIR • FREQUENCY • HDR • HIR • RUNTEST • SDR • SIR • STATE • TDR • TIR
SVD文件允许更复杂的任务,基本上通过JTAG可以完成的所有任务以及扫描链中的设备,比如配置FPGA或将数据加载到内存中。

九、J-Link License Manager(许可证管理器)

如果想用JFlash下载程序,还需填加license,
1打开JFlash->Help->License,增加license
打开Jlink_ob注册神器_2019.exe填写SN号,生成license

2打开JLinkLicenseManager.exe,添加license。RDI、FlashBP、FlashDownload、J-Flash分别添加4次。

正确添加license后即可正常使用jlink
可解决:ERROR: Could not read unit serial number!

十、J-Link Registration(注册)

注册你的产品有几个好处:
(1)注册确认您的产品是一个真实的SEGGER设备。
(2)您可以确保获得产品更新和新发布的通知,因为他们是可用的。
(3)获得支持的特权。

十一、J-Link Remote Server(远程调试工具)

J-Link远程服务器允许通过TCP/IP远程使用J-Link / J-Trace。这使您从另一台计算机连接并完全使用J-Link / J-Trace。性能是略低于直接USB连接(约10%)。
J-Link TCP-IP Server,J-Link驱动自带的一款TCP-IP服务器,通过它可以实现多台PC机通过以太网共享一个J-Link(我们可以把这种模式当成一种客户机\服务器模式,插有J-Link并且运行了TCP-IP Server的主机为服务器,其他为客户机,),且最好的应用就是远程下载调试了,非常方便,相信看到这的好多网友已经想到了它的应用了,哈哈,那下面看完了使用方法就可以简单的试一试了,因为本篇算是软件介绍的文章,所以技术含量偏少些,主要是扩展下知识面了,下面就直接进入正题了:
1.首先“柴米油盐”要准备齐全,呵呵,其实很少的东西——两台计算机(都要联网)、一个J-Link(插在主机上)、IAR6.3(安装在客户机上)、目标板(带JTAG口的K60最小系统板)、电源,然后就OK了,很简单
2. 在主机上插好J-Link和目标板,并且供电,同时打开J-Link TCP-IP Server软件(注意顺序)
3.服务器已经打开(其实是处于一种侦听状态,默认端口为19020,有过网络编程经历的都懂的,socket),这时没有客户机连入,所以是无连接状态,这是我们需要在客户机上打开IAR例程,然后设置如下图(找到主机IP地址,同时建议主机关闭防火墙)
4.设置如下之后,点击IAR调试按钮,从客户机向主机(上图填好的IP地址)发起连接,这时主机可能会弹出窗口或者不弹,弹出的话点击确认即可,然后可以在主机上看到已经连接成功,并且客户机上IAR也已经进入调试界面,
5.连接成功之后,就可以在客户机这边正常调试工作了,放心,跟单机USB的方式是一样的,而且这时程序已经下载到芯片里面了,然后你就可以随性发挥了。

十二、J-Link RTT Client(日志工具)

J-Link RTT Client可以充当 Telnet 客户端,但在调试会话关闭时会尝试自动重新连接到 J-Link。
使用J-Link RTT Client观察时,设备先上电,并且确定SWD连接正常,然后打开J-Link RTT Client和J-Link RTT Logger软件,然后设置一下配置,配置方式按下面的的链接提到的配置就可以了。设置时,如果使用默认选项,就直接按“Enter键”就可以了。设置完J-Link RTT Logger后J-Link RTT Logger窗口会自己关闭,然后在Keil上面点击“Debug”,并运行,就可以在J-Link RTT Client软件中看到串口接收的数据了。后面再使用J-Link RTT Client观察时,如果配置不需要改变,好像就不用使用J-Link RTT Logger配置了。
使用J-Link Viewer时,设备先上电,打开软件,并参考下图配置,点击"确认",就可以在窗口观察到数据了。

十三、J-Link RTT Logger(日志工具)

同上,可以代替串口显示日志。
使用 J-Link RTT Logger可以读取来自上行通道 1 的数据并将其记录到文件中。
例如,可用于向主机发送性能分析数据。 J-Link RTT Logger 与 J-Link 建立专用连接,可独立使用,无需运行调试器。
J-Link RTT Logger 的源代码可用作将 RTT 集成到其他 PC 应用程序(如调试器)的起点,并且是 J-Link SDK 的一部分。

十四、J-Link RTT Viewer(日志工具)

同上,可以代替串口显示日志。
J-Link RTT Viewer是在调试主机上使用RTT功能的Windows GUI应用程序。RTT Viewer可以独立使用,打开自己与J-Link的连接,并与正在运行的调试会话目标或并行,连接到它并使用现有的J-Link连接。
RTT Viewer支持RTT的主要功能:
1通道0上的终端输出
2将文本输入发送到通道0
3最多16个虚拟终端,只有一个目标通道
4控制文本输出:彩色文本,擦除控制台
5在通道1上记录数据,本文主要讲解J-Link RTT Viewer的使用。

十五、J-Link STM32 Unlock(STM32工具)

J-Link STM32 Unlock (JLinkSTM32.exe)是一个可以使用的免费命令行工具关闭STM32设备的硬件看门狗,可以通过编程激活选项字节。此外,J-Link STM32指挥官不安全的读保护STM32设备通过重新编程的选项字节。
命令行选项
-IP 选择IP作为连接到J-Link的主机接口。默认的主机USB接口。
-SelectEmuBySN 通过USB连接指定S/N的J-Link
-Speed 启动J-Link STM32解锁工具与给定的初始接口速度。
-SetPowerTarget 通过引脚19启用目标电源。
-SetDeviceFamily 指定设备族无
-Exit J-Link STM32 Unlock会自动关闭
在调试stm32芯片的时候经常会出现下载不进去,出现类似下面的错误,这个时候就要怀疑是不是芯片被异常锁死了;

1.JLINK烧录器解锁:这是最简单的方法
SEGGER 的JLink ARM V4.08l包中的,Processor Specific Utilities->J-Link STM32 Unlock 工具就可以解锁;
2.ISP升级解锁:
通过串口,设置BOOT0为1,BOOT1为0,进入ISP升级模式,发送解除读写保护即可解锁。

十六、J-Link STR9 Commander(配置工具)

J-Link STR91x Commander (JLinkSTR91x.exe)是一个可用于配置的工具
STR91x内核。它允许一些STR9特定的命令,比如:
•将配置寄存器设置为从银行0或1启动。
•擦除flash扇区。
•读写flash的OTP扇区。
•通过设置扇区保护位来写保护单个闪存扇区。
•通过设置安全位来防止flash通过JTAG进行通信。
命令执行的所有操作,不包括写入OTP扇区和擦除,可以撤销。这个工具可以用来擦除控制器的闪光,即使是在程序在flash中,导致CPU内核停止。
当启动STR91x commander时,将执行一个命令序列使MCU进入Turbo模式。
在启用Turbo模式时,会设置一个专用的测试模式信号,并控制GPIOs在输出。在发送下一条JTAG指令之前,IOs一直保持这种状态。”(圣微电子)启用Turbo模式是保证所有命令正常运行的必要条件STR91x指挥官。

十七、J-Link SWO Viewer(日志工具)

使用SWO显示目标器的终端输出销。接收SWO数据的刺激端口可以使用端口复选框0到31。可以与调试器并行使用,也可以单独使用。这是特别是在使用调试器时,没有内置对SWO的支持比如大多数基于GDB / GDB+Eclipse的调试环境。
SWD:Serial Wire Debug,串行线调试
SWO:Serial Wire Output,串行线输出
SWV:Serial Wire Viewer,串行线查看器
ITM:Instrumentation Trace Macrocell,指令跟踪宏单元
SWO引脚可以理解为UART的Tx引脚,如果不连接此引脚,则(SWV)终端不会接收打印信息。

十八、J-Mem(内存工具)

J-Mem是一个显示和修改RAM和SFRs(特殊功能)的GUI应用程序寄存器)的目标系统运行时。
J-Mem是J-Link软件包的一部分,适用于Windows、Linux和macOS。
当启动J-Mem时,会弹出一个配置对话框,让您选择所需的配置连接J-Link和目标器。
J-Mem的用户界面显示了来自JLink目标的内存区域的内容连接到。此外,还将显示与目标器连接的详细信息在状态栏中。
使用“Go To”字段,可以设置内存窗口中显示的第一个地址。的编辑字段右侧的按钮返回到以前选择的地址。
使用“Go To”字段右侧的红色按钮,可以设置访问宽度。的每个按钮内的数字指的是一次访问的字节数。这表示1表示8位接入,2表示16位接入,4表示32位接入。
通过单击access width按钮旁边的图标,可以填充内存范围自定义值。

十九、J-Scope(虚拟示波器)

J-Scope是SEGGER公司推出的,可以在目标MCU运行时,实时分析数据并图形化显示的软件。它不需要SWO或目标上的任何额外引脚等功能,但使用可用的标准调试端口。J-Scope可以以类似示波器的方式显示多个变量的值。它读取elf或axf文件并允许选择多个变量进行可视化。只需将目标微控制器连接到J-Link并启动J-Scope。只需几个步骤即可配置J-Scope,并选择要显示的符号。配置可以存储在项目文件中,以便于重复使用和移植。在J-Scope中选择的每个符号都可以单独配置。上下移动图形以更改零基线或更改其分辨率。选择是在图表中显示符号还是仅在监视面板中显示其值。分析收集的数据,滚动可视化图形,放大和缩小或将数据保存到文件中以供进一步分析。J-Scope可以与调试环境并行使用,并扩展IDE的调试体验。J-Scope是Jlink的一个强大的功能,可以在MCU运行时,实时查看全局变量的值,并以图形化显示,就像示波器一样。它是通过SWD接口或者JTAG接口,读取axf文件来选择要显示的变量。
使用参考:
https://blog.csdn.net/qq_23852045/article/details/108837881?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166245764916800182166034%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=166245764916800182166034&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-3-108837881-null-null.142v46pc_rank_34_1&utm_term=J-Scope&spm=1018.2226.3001.4449

二十、Remove J-Link(删除J-Link)

删除J-Link。

物联沃分享整理
物联沃-IOTWORD物联网 » JLink工具箱:深入理解与实践

发表评论