发新帖本帖赏金 50.00元(功能说明)我要提问
返回列表
打印
[MM32生态]

J-Link使用妙招——远程在线调试、下载、查看日志

[复制链接]
2583|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
#申请原创#   @21小跑堂

1、前言
    在项目开发过程中,常有到客户现场才能复现的问题和现象;时间紧、距离远,难道我们就只能出差到现场才能解决问题吗?本篇文章教你如何实现远程调试代码、远程下载程序、以及远程打印日志的操作方法。

    在实现远程操作前,我们在远程端需要先准备一个J-Link工具、在电脑上安装J-Link驱动程序(https://www.segger.com/downloads/jlink)、以及花生壳软件(https://hsk.oray.com/download),软件的下载安装过程,这里都不演示了,都是根据软件安装向导,默认进行安装就可以了。下面我们就来分享一下具体实现步骤。

2、远程端(服务端)
2.1.在安装J-Link驱动时,会自动安装好附带J-Link支持的其它生态工具软件,我们使用的工具软件是J-Link Remote Server

2.2.通过J-Link工具将远程的电脑与开发板进行连接,给开发板供电,准备好硬件调试环境

2.3.在远程电脑上打开J-Link Remote Server软件,如下所示:

在J-Link connection我们选择USB连接方式,Server setting我们选择Use LAN方式,Listening port使用默认的19020端口(内网端口号),然后点击OK

2.4.如下图所示,在窗口中我们勾选Show log选项用于查看一些日志,这个时候远程电脑端连接的J-Link就准备就绪了,等待客户端的连接;同时在Client connection string一栏中显示了当前J-Link所连接电脑的内网IP地址


2.5.当前J-Link远程服务器还是一个局域网(内网)地址,如何将局域网(内网)地址映射到外网可访问的地址呢?我来借助花生壳工具,通过内网穿透功能,添加映射,配置如下所示:

内网的主机就是刚刚J-Link Remote Server上提示的Client connection string中提示的IP地址,端口号填写19020,然后点击确定。

2.6.在添加好映射后,我们进行一下诊断操作,这个时候会自动诊断外网与内网的通讯建立情况,如下所示:

在诊断结果中,会显示当前外网可访问的IP地址,这个IP地址和自动生成的外网端口号,就是我们后面需要配置的信息。

2.7.当有客户端通过J-Link Remote Server成功连接后,软件的log窗口就会有相应信息打印提示:


3、本地端(客户端)
3.1.我们使用KEIL集成开发环境作为调试软件,首先将调试工具修改为J-Link,如下所示:


3.2.然后点击Setting按钮,在弹出的窗口左下角,将Interface连接方式修改为TCP/IP,在TCP/IP中填写外网IP地址和外网端口号,然后点击Connect,就可以连接到远程的J-Link上,并且还识别到了硬件开发板上的芯片,如下图所示:


3.3.这个时候,待程序编译好,点击下载按键,就可以远程下载程序了;这个时候也可以点击Debug按钮,进行远程在线调试;


4、J-Link RTT Viewer打印日志
4.1.在软件代码中添加SEGGER RTT功能,这们我们就可以通过SWD接口来作为日志打印接口了

4.2.在客户端打开J-Link RTT Viewer软件,点击弹出的配置窗口中,Connection to J-Link选择TPC/IP方式,后面填入外网IP地址和外网端口号,选择远程开发板对应的芯片型号,选择接口方式等参数的配置,点击OK


4.3.待连接到远程J-Link,就可以通过SWD接口查看打印的日志了


5、扩展
5.1.J-Link附带的生态软件工具在连接J-Link的时候都支持USB或者是TCP/IP的连接方式,我们还可以实现使用J-Flash远程下载程序等等功能应用

5.2.如果是内网两台电脑通过J-Link Remote Server进行远程操作,就不需要使用到花生壳的内网穿透功能了,直接使用J-Link所连接电脑的内网IP地址就可以了

5.3.如果你使用的带有LAN口的J-Link,那就可以省去J-Link Remote Server这个软件了,因为在J-Link连接到网络后,就会通过DHCP自动获取一个内网IP地址,或者也可以人为给J-Link指定一个内网IP地址;这个时候可以根据你的应用场景再去配置是需要借助花生壳工具就可以了

5.4.有小伙伴会问,我通过向日葵、ToDesk这类软件可以连接远程的电脑,同样可以远程调试、下载程序和查看打印日志呀,和你这个实现方式有啥区别呢?连接远程电脑,需要远程电脑上安装有KEIL开发环境,软件代码也是远程电脑上的,相当于把远程电脑当作本地电脑来使用;而本文是分享的方式,不需要远程电脑安装开发环境,软件代码这些都是在本地电脑上。

使用特权

评论回复

打赏榜单

21小跑堂 打赏了 50.00 元 2025-03-13
理由:恭喜通过原创审核!期待您更多的原创作品~~

评论
21小跑堂 2025-3-13 13:58 回复TA
通过J-Link Remote Server软件,进行远程调试,一定程度上解决无法到达现场的情况下进行代码的调试和烧录。 
沙发
guijial511| | 2025-3-3 21:41 | 只看该作者
选用带以太网接口的高级版JLINK

使用特权

评论回复
板凳
huquanz711| | 2025-3-4 08:29 | 只看该作者
可以直接使用以太网接口版的JLINK

使用特权

评论回复
地板
xld0932|  楼主 | 2025-3-5 12:09 | 只看该作者
guijial511 发表于 2025-3-3 21:41
选用带以太网接口的高级版JLINK

带以太网接口的高级版JLINK,有点小贵的

使用特权

评论回复
5
xld0932|  楼主 | 2025-3-5 12:11 | 只看该作者
huquanz711 发表于 2025-3-4 08:29
可以直接使用以太网接口版的JLINK

普通的就是USB接口的版本,只需要通过J-Link驱动自带的J-Link Remote Server软件,也能实现太网接口版的JLINK功能,可以节省工具成本哈

使用特权

评论回复
6
[鑫森淼焱垚]| | 2025-3-13 14:46 | 只看该作者
好文

使用特权

评论回复
发新帖 本帖赏金 50.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:上海灵动微电子股份有限公司资深现场应用工程师
简介:诚信·承诺·创新·合作

76

主题

3022

帖子

37

粉丝