嵌入式技术论坛
直播中

王涛

8年用户 1296经验值
私信 关注
[问答]

RTT032+LWIP在复杂网络环境下崩溃该怎么办呢

各位前辈同好,请帮我看一下这个问题:
环境是STM32F107+DP83848
RTT 0.3.2 +lwip
网络中有若干不同类型的设备,计算机IP相机交换机.....
有组播包在网络中传递.

我的板子如果在"干净"的环境(计算机对联线/独立交换机)中运行,则运行1周以上没有发现故障.
但是如果在上面说的环境中,则不停的出现
pbuf_free: p->ref > 0
Assertion: 563 in ......
etlwipsrccorepbuf.c, thread tcpip
而且,随机的发生
hard fault on thread:tcpip
然后挂掉,等待看门狗动作.

我的应用中,只有一个UDP 5000端口的少量数据接收,和对网络上一台服务器的UDP client数据发送.

崩溃的状态


有人能帮我吗?
在"干净"的环境中运行很正常,是否可以理解为,我如果在接收部分做好过滤,只接收PING/ARP/自己的特定端口包,就可以在这个环境中"存活"呢?

如果这样,应该如何做?STM32F107的MAC还是在lwip层做?


回帖(2)

王杰

2022-4-6 17:34:36
各位前辈同好,请帮我看一下这个问题:
环境是STM32F107+DP83848
RTT 0.3.2 +lwip
网络中有若干不同类型的设备,计算机IP相机交换机.....
有组播包在网络中传递.

我的板子如果在"干净"的环境(计算机对联线/独立交换机)中运行,则运行1周以上没有发现故障.
但是如果在上面说的环境中,则不停的出现
pbuf_free: p->ref > 0
Assertion: 563 in ......
etlwipsrccorepbuf.c, thread tcpip
而且,随机的发生
hard fault on thread:tcpip
然后挂掉,等待看门狗动作.

我的应用中,只有一个UDP 5000端口的少量数据接收,和对网络上一台服务器的UDP client数据发送.
[img]https://club.rt-thread.org/uploads/3364_7f8926364998bc36def5613dad00846a.jpg[/img]
崩溃的状态
[img]https://club.rt-thread.org/uploads/3364_ce256e406e76355434f707e47f9e6183.jpg[/img]

有人能帮我吗?
在"干净"的环境中运行很正常,是否可以理解为,我如果在接收部分做好过滤,只接收PING/ARP/自己的特定端口包,就可以在这个环境中"存活"呢?

如果这样,应该如何做?STM32F107的MAC还是在lwip层做?


举报

李超

2022-4-6 17:35:18
网络启动后,网口灯连续闪亮,在finsh中看到频繁输出pbuf_free
#561 /* all pbufs in a chain are referenced at least once */
#562 LWIP_ASSERT("pbuf_free: p->ref > 0", p->ref > 0);

这个现象连续出现
最终,随机的,发生上面截图中那个现象.
举报

更多回帖

发帖
×
20
完善资料,
赚取积分