使用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版本都支持一些命令行参数:
- Command line options:
- UseTunnel - Starts J-Link Remote Server in tunneling mode
- port - Select the remote port to listen on
- SelectEmuBySN - Select the J-Link to connect to by its S/N
默认情况下,它使用端口号19020。如果我有多个调试器连接到服务器主机,使用不同的端口号,我就可以运行多个Segger J-Link服务器。 例如,我可以使用端口19021:
- JLinkRemoteServerCL.exe -port 19021
使用多个Segger调试器连接到主机,我可以通过SelectEmuBySN选项或在提供选择调试器的对话框中进行选择。
在调试设置中,我必须使用下列方式指定端口:
<ignore_js_op>
“隧道”模式
如果我在同一个网络并且可以连接到服务器的IP地址,上述方法正常工作。 在过去,我使用VNC、dyndns或VPN连接。 但是这通常需要相当复杂的设置,特别是如果我不是网络的管理员。 一个更简单的方法是使用“UseTunnel”选项:
- UseTunnel - Starts J-Link Remote Server in tunneling mode
我可以像这样使用该选项:
- 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/
浙公网安备 33010602011771号