硬汉嵌入式论坛

 找回密码
 立即注册
查看: 138|回复: 6
收起左侧

[RL-TCPnet] 求助:使用RL-NET,网络通信问题。

[复制链接]
回帖奖励 90 个金币 回复本帖可获得 10 个金币奖励! 每人限 1 次

3

主题

10

回帖

19

积分

新手上路

积分
19
发表于 2025-9-16 11:44:17 | 显示全部楼层 |阅读模式
大家好,我最近发现开发的网络板有偶发的通信问题,具体情况如下:

项目概况:MCU STM32H743; PHY芯片 LAN8720A;操作系统:rtx5;网络组件 RL-NET;H743作为TCP服务器,pc机作为TCP客户端,最多支持PC机创建4个客户端通信。
具体问题:PC机和H743 通过网线直连,TCP建立连接正常通信,将PC机休眠。等10分钟后再开电脑,PC机就ping不通H743,只能重启743才能解决问题。但是在通信过程中拔掉网线,等10分钟后再插上网线,743的网络驱动正常,只需要重新建立连接就能正常使用。
排查情况:将使用的NET库改为调试模式,调试等级设置为err,发现休眠再打开时和拔插网线的打印信息一样,如下:
000.0 SYS:Init Network 7.15.0
000.0 SYS:Init complete
000.0 SYS:SetOption ETH0, MAC-Addr
000.0 SYS:SetOption ETH0, IP4-Addr
000.0 SYS:SetOption ETH0, IP4-Mask
000.0 SYS:SetOption ETH0, IP4-DefGW
000.0 SYS:GetOption ETH0, MAC-Addr
231.0 ETH-ERR:Send 0, Link down
235.0 ETH-ERR:Send 0, Link down
239.0 ETH-ERR:Send 0, Link down
243.0 ETH-ERR:Send 0, Link down
247.0 ETH-ERR:Send 0, Link down
251.0 ETH-ERR:Send 0, Link down
255.0 TCP-ERR:Socket 2, No Retries left
255.0 ETH-ERR:Send 0, Link down


所以我目前的疑问是:1.电脑休眠为什么会导致ping不通问题,2.拔插网线和休眠的不同点在哪



回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
118335
QQ
发表于 2025-9-16 16:26:21 | 显示全部楼层

回帖奖励 +10 个金币

休眠模式是否会进来这个函数的link down



回复

使用道具 举报

3

主题

10

回帖

19

积分

新手上路

积分
19
 楼主| 发表于 2025-9-17 15:43:03 | 显示全部楼层
eric2013 发表于 2025-9-16 16:26
休眠模式是否会进来这个函数的link down

昨天搞错了,PC休眠和断开网线只要时间够长都会导致后边ping不通,断开网线后743的网口灯灭了,就会打印这个Link is down。在PC唤醒或者插网线时,会打印Link is up;但是还是ping不通。我翻看了咱们的网络例程,里边有link down后重新复位网络的操作,我准备把这个加到我的程序里,应该就能解决问题。我的问题是在做例程时也遇到了类似的问题吗?才会在程序添加复位网络操作。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
118335
QQ
发表于 2025-9-17 16:19:51 | 显示全部楼层
lhh 发表于 2025-9-17 15:43
昨天搞错了,PC休眠和断开网线只要时间够长都会导致后边ping不通,断开网线后743的网口灯灭了,就会打印 ...

凡是这种掉线类问题,统一此贴方案解决。非常好使

【实战经验分享】一劳永逸的解决网线随意热插拔问题
https://forum.anfulai.cn/forum.p ... 5386&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

3

主题

10

回帖

19

积分

新手上路

积分
19
 楼主| 发表于 7 天前 | 显示全部楼层
eric2013 发表于 2025-9-17 16:19
凡是这种掉线类问题,统一此贴方案解决。非常好使

【实战经验分享】一劳永逸的解决网线随意热插拔问题 ...

确实是按照这个帖子该问题就解决了。但是我这又有一个问题。其中有一台设备运行一段时间会报NET_ERROR_MEM_ALLOC的错,我的NET_MEM_POOL_SIZE设置的是12000;现在已经将这个设置改大在测试了。如何知道设置多大合适呢,或者获取已经使用的内存池的尺寸。
回复

使用道具 举报

3

主题

10

回帖

19

积分

新手上路

积分
19
 楼主| 发表于 7 天前 | 显示全部楼层
已经开启了DBG_MEM在测试了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
118335
QQ
发表于 6 天前 | 显示全部楼层
lhh 发表于 2025-9-19 14:56
确实是按照这个帖子该问题就解决了。但是我这又有一个问题。其中有一台设备运行一段时间会报NET_ERROR_ME ...

12K有点小,这个是由你创建的资源多少决定的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-9-26 19:33 , Processed in 0.043224 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表