对于某些项目,可能无法调试在身边调试设备:电路板可能位于另一个房间、另一个站点或无法进行物理访问甚至危险的地方。在这种情况下,基于IP的调试器非常有用:只要我可以访问其IP地址,就可以正常工作。即使电路板正在移动或旋转,它也是一个出色的解决方案:将其连接到WLAN接入点,我仍然可以像在身边一样使用它。
但是,如果我的调试器仅连接到USB怎么办?本文介绍如何将USB调试器转换为基于IP的调试解决方案:这样我就可以轻松地从远程调试开发板,连接到网络:
基于IP的USB调试器进行调试
但基于IP的调试器比基于USB的调试器更昂贵。
局域网端口
这样的调试器是一项非常好的投资,但是如果你没有这样的调试器呢?
概观 下面的框图显示了如何设置到开发板的远程调试连接:
远程调试
服务器PC配置GDB服务器,为运行与本地(USB)调试器进行通信。这样,任何带有Eclipse和GDB Client的主机PC都可以通过TCP / IP连接到它并调试开发板。
前提条件 我只需要: ● SEGGER J-Link或P&E Multilink调试器。可以是任何外部器或使用评估板调试器电路(例如J-Link OpenSDA或P&E OpenSDA) ● 连接到此调试器的主机。该主机需要在网络上可访问 ● 具有J-Link或P&E支持的Eclipse CDT,例如GNU MCU Eclipse插件或NXP MCUXpresso IDE。
服务器PC 在服务器PC上,我需要启动GDB服务器。
对于Segger,我可以使用JLinkGDBServerCL(Command Line)或JLinkGDBServer(GUI)。在Windows上,它使用GUI显示配置:
J-Link GDB服务器配置
然后它将等待远程调试器连接:
GDB服务器等待连接
对于P&E,我必须启动'pegdbserver_console':
恩智浦MCUXpresso IDE 10.3.1中的pegdbserver_console.exe
您需要在下一步中知道该主机的主机名(或IP地址)。在本例中,主机使用的IP地址:192.168.0.112。
主机PC 在主机PC上,使用带有GNU MCU Eclipse插件的Eclipse CDT,取消选中“start the J-Link GDB Server locally”并输入远程IP地址(默认端口为2331):
GNU MCU Eclipse中的远程调试
在MCUXpresso IDE 10.3.1中输入IP地址,使用手动服务器启动并禁用“start server”选项:
MCUXpresso IDE 10.3.1中的远程调试
对于P&E,也有类似的设置:
PEMicro远程GDB设置
远程调试 有了这个,我可以调试远程目标,因为它将在本地连接。 SEGGER Server将显示如下连接状态:
连接到GDB服务器
有了这个,我可以做远程调试:
使用NXP MCUXpresso IDE进行远程调试
总结 基于IP的远程调试非常容易。我需要在一台机器上运行P&E或SEGGER GDB服务器,然后我可以从任何地方连接到该服务器,然后调试该开发板,而无需物理访问它。这对于在机器上共享电路板或者如果无法访问该电路板特别有用。如果手头没有基于IP的调试器,这应该是一个非常可行的解决方案。当然,对于高延迟网络,这将影响调试性能,但方案是可行的。 |