问题描述

       之所以说是填坑,是因为之前写了一篇关于这个双核数据采集系统的调试记录,问题的具体表现是系统会在运行一段时间后(随机不定时,长了可能将近两小时,短则几分钟),突然间就不向电脑发送数据了,用wireshark抓取的话,也是发完最后一包后,又开始ARP的广播了,并且ping不通板子,但是两个核都还在正常运行,可以打印出相应的信息,并没有卡死在某个地方。

问题的解决

       直接说结论!是PL端的时序问题导致的,当时在做模拟数据时,因为PL部分是另一个人写的,当时还没有想着优化时序问题,当时也是想当然觉得PL的时序应该怎么都影响不到PS端的网络连接,但现实狠狠地打了我的脸。

       修改前的时序:

【ZYNQ 开发】填坑!双核数据采集系统LWIP TCP发送,运行一段时间不再发送且无法ping通的问题解决-LMLPHP

       修改后的时序:
【ZYNQ 开发】填坑!双核数据采集系统LWIP TCP发送,运行一段时间不再发送且无法ping通的问题解决-LMLPHP

       当然时序的优化不是我做的,具体怎么做我不太清楚,有需要的可以自行百度查询。但结果就是把这个时序优化后,PS端的网络就不会断了,目前最长测试了16个小时,没有问题。

一些启发

       ZYNQ毕竟还是FPGA的结合体,虽然更多的认为PL是PS的“外设”,但一定不要忘了两者是会相互影响的,做PS端的人出现了诡异的问题,不妨也换个角度,质疑一下是不是PL的一些东西导致的,而不是自己在内耗,不要像我一样,白白浪费了两个月。

09-24 02:51