CCS:8.3 1.
NO_SYS (未使用RTOS)
我们开发了一个带有以太网TM4C1294NCPDT的自定义主板,并 通过 修改回送服务器示例,使用LWIP 1.4 实现了TCP服务器。
不使用以太网中断,所有以太网 操作都是通过在 程序的主循环中调用lwIPEthernetIntHandler();来完成的。
与客户端PC的连接正在通过交换机进行。
固件 响应来自客户端 PC的Modbus请求。有多个此类板连接到交换机。 客户端是运行ModbusPol程序的Windows 10 PC。
在lwipopt.c中,速度被强制为10Mbs。
它在很多小时内正常工作,但过了一段时间后不响应客户端。 即使ping失败。 摆脱这种局面的唯一办法是重置微控制器。
工作方案如下:
运行Modbuspol的PC连接到板 上以检查运行情况, 然后断开连接(在运行时拔出电缆)。
几小时后 ,电缆重新连接,ModbusPol再次运行。 大多数时候都正常工作。 但是,微处理器有时甚至对来自PC的ping也不响应。
TM4C1294NCPDT上的固件继续运行以执行其余的作业(如写入SD卡,读取输入等)。
我们尝试了以下解决方法:
1.检查电缆是否已插入。
2.如果已连接,请检查是否在ECHO_SEND函数中发送了任何数据。
3.如果在ECHO_SEND函数中30秒内没有发送数据,请 使用 SysType.Reset()执行软件重置;
这可以正常工作,但 不是理想的解决方案,因为它会干扰 程序的其他功能。
我有以下问题:
1.程序运行时是否可以拔出电缆?
2.我们是否可以解决 在没有 SysType.Reset()的情况下重启服务器的问题?
是否需要调用 netif_set_down和 netif_set_up函数以从情况中恢复?
3.我们可以给 LwIPInit(.)打电话吗? 在同一程序中多次运行?
是否有人建议如何调试程序?
我是Wireshark的新手,但 我正在尝试了解 PC端的情况。
感谢你的帮助。