Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
Network
f407+lwip2.0.2 +rtt4.0.0+tcp 服务器 死机问题 (已解决)
发布于 2019-02-28 14:00:52 浏览:3099
订阅该版
* 本帖最后由 sync 于 2019-3-1 09:32 编辑 * ``` ```**测试环境:**f407+8720 接入办公室路由器做tcp服务器,用自己的笔记本做tcp客户端 ``` \ | / - RT - Thread Operating System / | \ 4.0.0 build Feb 28 2019 2006 - 2018 Copyright by rt-thread team lwIP-2.0.2 initialized!```**故障现象:** 开机进程如下 ```thread pri status sp stack size max used left tick error -------- --- ------- ---------- ---------- ------ ---------- --- tshell 20 running 0x00000084 0x00000800 25% 0x00000009 000 phy 30 suspend 0x00000094 0x00000400 19% 0x00000002 000 tcpip 6 suspend 0x000000c4 0x00000400 59% 0x0000000e 000 etx 8 suspend 0x00000094 0x00000600 09% 0x00000010 000 erx 7 suspend 0x00000094 0x00000600 35% 0x0000000f 000 tidle0 31 ready 0x00000054 0x00000100 32% 0x0000001c 000 main 10 suspend 0x0000008c 0x00000800 36% 0x0000000e 000```将官方例程tcp服务器 放入单独线程tcpserv中 然后开始测试 tcp客服端每间隔200ms发送一次数据 ```[13:38:30.818]发→◇This is TCP Server from RT-Thread.□ [13:38:30.825]收←◆This is TCP Server from RT-Thread. [13:38:31.021]发→◇This is TCP Server from RT-Thread.□ [13:38:31.029]收←◆This is TCP Server from RT-Thread. [13:38:31.228]发→◇This is TCP Server from RT-Thread.□ [13:38:31.237]收←◆This is TCP Server from RT-Thread. [13:38:31.432]发→◇This is TCP Server from RT-Thread.□ [13:38:31.441]收←◆This is TCP Server from RT-Thread. [13:38:31.639]发→◇This is TCP Server from RT-Thread.□ [13:38:31.649]收←◆This is TCP Server from RT-Thread. [13:38:31.833]发→◇This is TCP Server from RT-Thread.□ [13:38:31.845]收←◆This is TCP Server from RT-Thread. [13:38:32.036]发→◇This is TCP Server from RT-Thread.□ [13:38:32.049]收←◆This is TCP Server from RT-Thread. [13:38:32.240]发→◇This is TCP Server from RT-Thread.□ [13:38:32.247]收←◆This is TCP Server from RT-Thread. [13:38:32.444]发→◇This is TCP Server from RT-Thread.□ [13:38:32.451]收←◆This is TCP Server from RT-Thread. [13:38:32.650]发→◇This is TCP Server from RT-Thread.□ [13:38:32.659]收←◆This is TCP Server from RT-Thread. [13:38:32.850]发→◇This is TCP Server from RT-Thread.□ [13:38:32.857]收←◆This is TCP Server from RT-Thread. [13:38:33.056]发→◇This is TCP Server from RT-Thread.□ [13:38:33.065]收←◆This is TCP Server from RT-Thread. [13:38:33.257]发→◇This is TCP Server from RT-Thread.□ [13:38:33.264]收←◆This is TCP Server from RT-Thread. [13:38:33.459]发→◇This is TCP Server from RT-Thread.□ [13:38:33.471]收←◆This is TCP Server from RT-Thread.```**经过若干时间后,十几分钟,或者1小时,或者2小时后,笔记本的tcp客户端就收不到F407上Tcp服务器的返回数据了。** ```[13:47:57.609]发→◇This is TCP Server from RT-Thread.□ [13:47:57.820]发→◇This is TCP Server from RT-Thread.□ [13:47:58.024]发→◇This is TCP Server from RT-Thread.□ [13:47:58.224]发→◇This is TCP Server from RT-Thread.□ [13:47:58.426]发→◇This is TCP Server from RT-Thread.□ [13:47:58.629]发→◇This is TCP Server from RT-Thread.□ [13:47:58.830]发→◇This is TCP Server from RT-Thread.□ [13:47:59.037]发→◇This is TCP Server from RT-Thread.□ [13:47:59.239]发→◇This is TCP Server from RT-Thread.□ [13:47:59.449]发→◇This is TCP Server from RT-Thread.□ [13:47:59.642]发→◇This is TCP Server from RT-Thread.□ [13:47:59.845]发→◇This is TCP Server from RT-Thread.□ [13:48:00.051]发→◇This is TCP Server from RT-Thread.□ [13:48:00.251]发→◇This is TCP Server from RT-Thread.□ [13:48:00.461]发→◇This is TCP Server from RT-Thread.□ [13:48:00.661]发→◇This is TCP Server from RT-Thread.□ [13:48:00.862]发→◇This is TCP Server from RT-Thread.□ [13:48:01.064]发→◇This is TCP Server from RT-Thread.□ [13:48:01.274]发→◇This is TCP Server from RT-Thread.□ [13:48:01.476]发→◇This is TCP Server from RT-Thread.□ [13:48:01.675]发→◇This is TCP Server from RT-Thread.□ [13:48:01.881]发→◇This is TCP Server from RT-Thread.□ [13:48:02.078]发→◇This is TCP Server from RT-Thread.□ [13:48:02.287]发→◇This is TCP Server from RT-Thread.□ [13:48:02.492]发→◇This is TCP Server from RT-Thread.□ [13:48:02.691]发→◇This is TCP Server from RT-Thread.□ [13:48:02.896]发→◇This is TCP Server from RT-Thread.□``` **原因分析:** 经过多次测试发现,每次故障发生后, 命令ps结果如下: ```thread pri status sp stack size max used left tick error -------- --- ------- ---------- ---------- ------ ---------- --- tcpserv 5 suspend 0x000001bc 0x00000400 77% 0x00000005 000 tshell 20 running 0x00000084 0x00000800 25% 0x00000007 000 phy 30 suspend 0x00000094 0x00000400 19% 0x00000002 000 tcpip 6 suspend 0x000000c4 0x00000400 64% 0x00000001 000 etx 8 suspend 0x00000094 0x00000600 09% 0x0000000b 000 erx 7 ready 0x0000007c 0x00000600 35% 0x00000010 000 tidle0 31 ready 0x00000054 0x00000100 32% 0x00000019 000 main 10 suspend 0x0000008c 0x00000800 36% 0x0000000e 000``` list_mailbox,命令返回结果 如下:mailbox entry size suspend thread -------- ---- ---- -------------- mbox3 0000 0010 1:tcpserv mbox2 0000 0010 0 mbox0 0000 0016 1:tcpip etxmb 0000 0016 1:etx **erxmb 0010 0016 0** 正常时,应该如下: ```mailbox entry size suspend thread -------- ---- ---- -------------- mbox3 0000 0010 1:tcpserv mbox2 0000 0010 0 mbox0 0000 0016 1:tcpip etxmb 0000 0016 1:etx
erxmb 0000 0016 1:erx
``` 我将8720和笔记本的网口用网线直连,都使用固定ip 这次发生故障后,打印信息如下: ```msh >list_mailbox mailbox entry size suspend thread -------- ---- ---- -------------- mbox3 0000 0010 1:tcpserv mbox2 0000 0010 0 mbox0 0008 0016 0 etxmb 0000 0016 1:etx erxmb 0000 0016 1:erx msh >ps thread pri status sp stack size max used left tick error -------- --- ------- ---------- ---------- ------ ---------- --- tcpserv 5 suspend 0x000001bc 0x00000400 77% 0x00000004 000 tshell 20 running 0x00000084 0x00000800 25% 0x00000001 000 phy 30 suspend 0x00000094 0x00000400 19% 0x00000002 000 tcpip 6 ready 0x000000ac 0x00000400 64% 0x00000004 -02 etx 8 suspend 0x00000094 0x00000600 09% 0x00000002 000 erx 7 suspend 0x00000094 0x00000600 25% 0x00000003 000 tidle0 31 ready 0x00000044 0x00000100 32% 0x00000014 000 main 10 suspend 0x0000008c 0x00000800 27% 0x0000000e 000``` **疑问:** **1.erx线程不是应该一致等待邮箱信号吗?什么情况下会造成线程始终处于挂起状态,不再等待邮箱信号了呢?****2.tcpip线程也有挂起的情况,且不再等待邮箱信号了,这是啥原因呢?** **解决 **昨天修改了程序这处,结果稳定运行了一晚上:lol ![1551402219(1).png](/uploads/201903/01/092903lrtrlqy91s4ryy13.png)测试发现线程死机时,rt_mb_recv里面的参数timeout等于1,我增加上面红框内的语句后,让timeout最小等于10,就可以正常运行了 问题算是解决了,但原因却不明白,哪位大佬能解释下吗?
查看更多
7
个回答
默认排序
按发布时间排序
15260983113
2019-03-15
这家伙很懒,什么也没写!
mark
15260983113
2019-03-15
这家伙很懒,什么也没写!
在做同样的功能,f407+lwip2.0.2 +rtt4.0.0 配置完env工具,下载后,不能正常上网。帖子在这边,[https://www.rt-thread.org/qa/thread-10602-1-1.html](https://www.rt-thread.org/qa/thread-10602-1-1.html) 请问是什么问题
sync
2019-07-29
这家伙很懒,什么也没写!
给自己的帖子 结个尾,上面的程序后面仍然工作不稳定,因工作原因,放置了好久了。 这几天有空重新下载了RtThread 后,重新测试这个tcpserv发现比之前运行好多了,对比文件发现,bsp\stm32\libraries\HAL_Drivers\drv_eth.c 文件更新过,之前 程序网口只能握手10Mbps还是半双工 [D/drv.emac] link up [D/drv.emac] 10Mbps [D/drv.emac] half-duplex 现在状态正常了如下: [D/drv.emac] link up [D/drv.emac] 100Mbps [D/drv.emac] full-duplex 目前长时间测试tcpserv未发现线程有死机情况:)
流云舒语
2019-11-27
这家伙很懒,什么也没写!
我也遇到这个问题,我想问一下你这样改能长期工作吗?为什么这么改呢?
流云舒语
2019-11-27
这家伙很懒,什么也没写!
>给自己的帖子 结个尾,上面的程序后面仍然工作不稳定,因工作原因,放置了好久了。 >这几天有空重新下载了Rt ... --- 我还是使用的老板本的驱动,rt_thread 3.1.0 + lwip2.1.0
sync
2019-11-28
这家伙很懒,什么也没写!
建议驱动都使用最新的,稳定版本的,或者自己对照下,自己的使用的驱动和新版本的差异在哪里,手动修改下,然后再测试
流云舒语
2019-12-02
这家伙很懒,什么也没写!
>建议驱动都使用最新的,稳定版本的,或者自己对照下,自己的使用的驱动和新版本的差异在哪里,手动修改下, ... --- 驱动已经在rt2.2中稳定运行了,只是不清楚在rt3.1.2中怎么会遇到这个问题。目前去掉此断言也运行了3天,就是不知道后续会产生什么问题
撰写答案
登录
注册新账号
关注者
0
被浏览
3.1k
关于作者
sync
这家伙很懒,什么也没写!
提问
12
回答
412
被采纳
78
关注TA
发私信
相关问题
1
lwip1.4.1连接经常会断开无法连接上,可以ping通
2
LPC1768:RTT+LWIP+webserver用IE刷网页出现硬件中断错误(已经解决)
3
求一些LWIP开发的经验,目前ping一直不稳定。
4
stm32f207+dp83848无法ping通
5
RTT下的LWIP传递机制
6
rtt内lwip的socket是否是线程安全?
7
Lwip+enc28j60无法ping通
8
坑爹的rtconfig.h lwip关掉了checksum
9
花了一个晚上,把RT2.0的LWIP、网卡驱动、文件系统整合起来了,发现一点小问题
10
lwip例程中udp发送时如何指定源端口发送到指定目的地端口
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
STM32H7R7运行CherryUSB
2
RT-Smart首次线下培训,锁定2024 RT-Thread开发者大会!
3
使用RC522软件包驱动FM1722
4
常量数据类型和表达式陷阱分享
5
进行i2c驱动移植的经验总结
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
xiaorui
1
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部