天南地北客
发表于: 2017-2-6 11:01:17 | 显示全部楼层

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


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

connected-in-tunnel-mode.png


概述

在本文中,我将介绍如何使用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的调试器:

segger-remote-server.png


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

jlinkremoteserver-binaries.png


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

waiting-for-connection.png


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

segger-remote-server-command-line-version.png


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

ipconfig1.png


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

segger-remote-server-ip-address.png


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

client-connected.png


命令行选项

命令行版本和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选项或在提供选择调试器的对话框中进行选择。


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

port-specified-for-j-link-remote-connection.png


“隧道”模式

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

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

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

  1. JLinkRemoteServer.exe -UseTunnel
复制代码

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

segger-tunnel-server-connection.png


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

segger-tunnel-server.png


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

ip-connection-with-tunnel.png


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

connected-in-tunnel-mode (1).png


总结

通过使用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/

跳转到指定楼层
huaiqiao
发表于: 2017-2-7 14:16:01 | 显示全部楼层

这一功能MDK好像没有哦,Eclipse却有的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 12 | 回复: 14



手机版|

GMT+8, 2024-3-29 04:42 , Processed in 0.100104 second(s), 9 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表