amobbs.com 阿莫电子技术论坛

标题: stm32h7+lwip运行中小概率ping不通,求救! [打印本页]

作者: achild    时间: 2022-5-10 15:05
标题: stm32h7+lwip运行中小概率ping不通,求救!
本帖最后由 achild 于 2022-5-10 16:56 编辑

如题,lwip在运行过程中小概率ping不通了,然后就一直不ping通了。因为是小概率我这边很难复现。有没有什么好的策略保证长时间运行网络不会卡死。
找了一下,没找到lwip的反初始化函数。因为lwip初始化里面new了很多的线程,感觉应该不能多次调用。如果确定了网口有问题,如何重新进行lwip的软初始化。
作者: 亽亼    时间: 2022-5-10 16:01
PHY的复位引脚加个滤波电容看下。
作者: achild    时间: 2022-5-10 16:36
亽亼 发表于 2022-5-10 16:01
PHY的复位引脚加个滤波电容看下。
(引用自2楼)

系统共用的硬件Reset。有滤波电容,很稳定
作者: dellric    时间: 2022-5-10 17:04
WIFI 和 ETH 共存网络吗?如果用WIFI 上网,ETH用有线带H7,那么把WIFI关一下就OK了
作者: achild    时间: 2022-5-10 17:19
本帖最后由 achild 于 2022-5-10 17:20 编辑
dellric 发表于 2022-5-10 17:04
WIFI 和 ETH 共存网络吗?如果用WIFI 上网,ETH用有线带H7,那么把WIFI关一下就OK了 ...
(引用自4楼)


我这只有一个eth啊。正常是不是不应该出现ping不通的情况啊!
作者: dellric    时间: 2022-5-10 17:20
你查查笔记本上是不是在用WIFI上网?如果在用ETH上网,而H7和ETH在一个网段,那就是你的H7的问题了

作者: achild    时间: 2022-5-10 17:22
本帖最后由 achild 于 2022-5-10 17:23 编辑
dellric 发表于 2022-5-10 17:20
你查查笔记本上是不是在用WIFI上网?如果在用ETH上网,而H7和ETH在一个网段,那就是你的H7的问题了
...
(引用自6楼)


我发给用户了,用户说偶尔出现ping不通的情况。我这试了半天。很难复现。所以我想索性不行就软重启,再不行就硬重启
作者: qwe2231695    时间: 2022-5-10 17:49
运行多久后出现? UDP TCP 业务数据量大不大?
作者: achild    时间: 2022-5-11 09:37
本帖最后由 achild 于 2022-5-11 09:39 编辑
qwe2231695 发表于 2022-5-10 17:49
运行多久后出现? UDP TCP 业务数据量大不大?
(引用自8楼)


设备给出去调试,那边测了半天就出现一次ping不通,数据量的话很小,频率也不大,几十秒发个几包数据,最大的估计也就十几K,没有开udp,只用了tcp。
因为之前调设备的时候初始化,发现phy的寄存器里面读到状态有时会link_down,但是一般等个1~2秒就link_up,不知道跟这个有没有关系
作者: shuiluo2    时间: 2022-5-11 09:45
LWIP某些情况下会进入for的死循环,搜搜坛子里的帖子看看
作者: achild    时间: 2022-5-11 11:28
shuiluo2 发表于 2022-5-11 09:45
LWIP某些情况下会进入for的死循环,搜搜坛子里的帖子看看
(引用自10楼)

找了个远古贴,看了下,lwip进入for的死循环主要是因为关闭连接时多次释放了同一块pcb内存块。试了一下,高频断开-连接-断开-连接。。。。。难以复现。我感觉这些问题在2.1.2版本中应该都修订完了。
作者: achild    时间: 2022-5-11 11:44
qwe2231695 发表于 2022-5-10 17:49
运行多久后出现? UDP TCP 业务数据量大不大?
(引用自8楼)

我想在想如果出现长时间数据发送失败就重启。因为我的lwip初始化是用stm32cube自动生成的。调用MX_LWIP_Init直接进行的初始化。
问题:
怎么进行单独的lwip的软复位。
作者: achild    时间: 2022-5-11 11:44
shuiluo2 发表于 2022-5-11 09:45
LWIP某些情况下会进入for的死循环,搜搜坛子里的帖子看看
(引用自10楼)

我想在想如果出现长时间数据发送失败就重启。因为我的lwip初始化是用stm32cube自动生成的。调用MX_LWIP_Init直接进行的初始化。
问题:
怎么进行单独的lwip的软复位。
作者: xmlbb    时间: 2022-5-11 11:58
achild 发表于 2022-5-11 11:44
我想在想如果出现长时间数据发送失败就重启。因为我的lwip初始化是用stm32cube自动生成的。调用MX_LWIP_I ...
(引用自13楼)

别呀,先想办法找到问题再考虑解决方案。

除非实在没办法,但是目前来讲应该还是有些办法定位问题的嘛,比如说跑到客户那里调试,比如改软打日志反馈等等。
作者: liyang121316    时间: 2022-5-11 13:46
LWIP有内部回环吧看看是不是软件库的问题,然后从外面ping就是看看物理连接(PHY芯片,网线)是否有问题,单位数据量提高,并换根好网线试试。
作者: achild    时间: 2022-5-11 14:38
xmlbb 发表于 2022-5-11 11:58
别呀,先想办法找到问题再考虑解决方案。

除非实在没办法,但是目前来讲应该还是有些办法定位问题的嘛, ...
(引用自14楼)


需要长时间测试,而且我这边无法复现,先把看门狗用起来,长时间连不上就直接重启。做一个低保,也凑合能用
作者: achild    时间: 2022-5-11 14:40
liyang121316 发表于 2022-5-11 13:46
LWIP有内部回环吧看看是不是软件库的问题,然后从外面ping就是看看物理连接(PHY芯片,网线)是否有问题, ...
(引用自15楼)

lwip2.1.2感觉口碑挺好的。有些网上说的bug,我这边工作模式都不会触发。应该没啥问题。至于说硬件,只能试一试了。
作者: liyang121316    时间: 2022-5-11 15:14
achild 发表于 2022-5-11 14:40
lwip2.1.2感觉口碑挺好的。有些网上说的bug,我这边工作模式都不会触发。应该没啥问题。至于说硬件,只能 ...
(引用自17楼)

有时网线不好也会极小概率丢帧。
作者: achild    时间: 2022-5-12 15:14
今天测试的时候突然发现通讯断了。卧槽,然后发现,不是网络断了,是一个任务飞了。虽然还没找到在哪飞的,先把任务heap加大一点。慢慢找
作者: saccapanna    时间: 2022-5-12 18:39
目前使用  2.0.3 感觉很稳定,长期运行的设备暂时没有反馈以太网问题。




欢迎光临 amobbs.com 阿莫电子技术论坛 (https://www.amobbs.com/) Powered by Discuz! X3.4