使用J-Link Remote Server远程调试电路板

转:https://www.yiboard.com/thread-663-1-1.html

 

对于CubeSat项目,我们只有一个可用的单板。 但是,多个大学和开发人员需要访问该电路板以开发和调试固件。 我们不能简单地到处运输该电路板:这会需要很多时间,而且在运输过程中没有人可以使用电路板。

 

在Segger J-Link软件J-Link Remote Server中有一个很好的功能,它允许通过网络共享调试连接。 它甚至可以很好地在不同的网络之间工具,不需要进行复杂的防火墙设置:

<ignore_js_op>

 

 

概述

在本文中,我将介绍如何使用J-Link软件和带GNU ARM Eclipse J-Link插件的Eclipse共享一个用于调试的电路板。

我使用以下版本:

     ■    主机:可以是Linux / Windows / Mac(我使用Windows 10)

     ■    Segger J-Link仿真器,通过SWD / JTAG连接到电路板

     ■    Segger J-Link软件:V6.12g

     ■    GNU ARM Eclipse J-Link插件:v4.1.2.201701141320

     ■    Eclipse Kinetis Design Studio:V3.2.0

 

Segger Remote Server

要从同一网络中的任何其他机器访问该电路板,我必须在主机上运行“Segger Remote Server”可执行文件,该主机通过J-Link调试器连接到电路板。 使用服务器主机的IP地址,我可以通过客户端主机使用电路板,就像一个正常的基于TCP / IP的调试器:

<ignore_js_op>

 

 

要运行Segger Remote Server,在Windows上有两个二进制文件:命令行版本(CL)和GUI版本。

<ignore_js_op>

 

 

它直接连接到附在服务器主机上的J-Link:

<ignore_js_op>

 

 

如果使用命令行版本,现象也是一样:

<ignore_js_op>

 

 

要连接到服务器,我需要使用服务器主机的IP地址(例如在Windows上使用ipconfig命令):

<ignore_js_op>

 

 

现在从另一台机器来调试该电路板,我需要做的是在Eclipse调试器启动对话框中指定该IP地址:

<ignore_js_op>

 

 

这样一来,我就可以调试该电路板了,因为我有一个可用的启用TCP / IP的调试器:-)。

<ignore_js_op>

 

 

命令行选项

命令行版本和GUI版本都支持一些命令行参数:

  1. Command line options:
  2. UseTunnel     - Starts J-Link Remote Server in tunneling mode
  3. port          - Select the remote port to listen on
  4. SelectEmuBySN - Select the J-Link to connect to by its S/N
复制代码

默认情况下,它使用端口号19020。如果我有多个调试器连接到服务器主机,使用不同的端口号,我就可以运行多个Segger J-Link服务器。 例如,我可以使用端口19021:

  1. JLinkRemoteServerCL.exe -port 19021
复制代码

 

使用多个Segger调试器连接到主机,我可以通过SelectEmuBySN选项或在提供选择调试器的对话框中进行选择。

 

在调试设置中,我必须使用下列方式指定端口:

<ignore_js_op>

 

 

“隧道”模式

如果我在同一个网络并且可以连接到服务器的IP地址,上述方法正常工作。 在过去,我使用VNC、dyndns或VPN连接。 但是这通常需要相当复杂的设置,特别是如果我不是网络的管理员。 一个更简单的方法是使用“UseTunnel”选项:

  1. UseTunnel     - Starts J-Link Remote Server in tunneling mode
复制代码

 

我可以像这样使用该选项:

  1. JLinkRemoteServer.exe -UseTunnel
复制代码

 

然后它会以隧道模式启动服务器。 使用这种方式,它连接到一个位于jlink.segger.com的外部服务器:

<ignore_js_op>

 

 

通过从客户端主机连接到Segger隧道服务器,我可以调试电路板板,因为它位于本地网络:

<ignore_js_op>

 

 

对于来自客户端主机的连接,我必须指定Segger序列号:

<ignore_js_op>

 

 

这样我可以通过隧道模式来调试电路板:

<ignore_js_op>

 

 

总结

通过使用Segger Remote Server软件,我可以有一个基于TCP / IP的调试器,并且使用gdb和Eclipse远程调试电路板。 所有我需要的仅仅是一个Segger调试器、一台主机以及运行Segger Remote Server软件。 使用隧道模式,它甚至可以在网络之间工作,并允许在远程开发人员之间共享电路板。 当然,这不如在桌面上有一个电路板,但是比到处运输电路板更好。

 

参考链接:

■    J-Link Remote Server:https://www.segger.com/jlink-remoteserver.html

■    GNU ARM Eclipse调试:http://gnuarmeclipse.github.io/debug/

posted @ 2018-07-10 00:38  boblan  阅读(3232)  评论(0)    收藏  举报