搜索
bottom↓
回复: 14

试用RT-Thread,看门狗进程出问题,请各位高手帮忙分析一下。

[复制链接]

出0入0汤圆

发表于 2010-5-20 22:49:40 | 显示全部楼层 |阅读模式
觉得RT-Thread做得真不错,打算在某项目使用,现在是在试验OS的稳定性。
运行环境:LM3S8938;
开了一个http server进程,一个TCP server进程和一个看门狗进程(详见附件);
运行一天后(TCP server一直有数据收发),多数情况TCP server及 http server进程都没有问题,看门狗进程却会死掉,进程信息如下:
thread  pri  status      sp     stack size max used   left tick  error
-------- ---- ------- ---------- ---------- ---------- ---------- ---
tcpip    0x0c suspend 0x000000b0 0x00000400 0x000001a8 0x0000000b 000
tidle    0x1f ready   0x00000050 0x00000100 0x00000050 0x00000012 000
tshell   0x14 ready   0x00000220 0x00000800 0x000002fc 0x0000005d 000
wdt      0x1e ready   0x00000060 0x00000080 0x00000060 0x00000001 -02
tcps     0x18 ready   0x00000098 0x00000400 0x00000160 0x00000014 000
https    0x19 suspend 0x00000110 0x00000400 0x00000160 0x00000013 000
etx      0x0d suspend 0x00000080 0x00000200 0x00000080 0x0000000c 000
erx      0x0d suspend 0x00000080 0x00000200 0x000000c0 0x00000001 000

第二次死
tcpip    0x0c suspend 0x000000b0 0x00000400 0x00000198 0x0000000f 000
tidle    0x1f ready   0x00000050 0x00000100 0x00000050 0x00000001 000
tshell   0x14 ready   0x000002e8 0x00000800 0x000002fc 0x0000005d 000
wdt      0x1e ready   0x00000060 0x00000080 0x00000068 0x00000002 -02
tcps     0x18 ready   0x00000158 0x00000400 0x00000160 0x0000000e 000
https    0x19 suspend 0x00000110 0x00000400 0x00000114 0x00000014 000
etx      0x0d suspend 0x00000080 0x00000200 0x00000088 0x0000000b 000
erx      0x0d suspend 0x00000080 0x00000200 0x000000c8 0x00000010 000

有一次网络未连接(TCP server)未进行数据收发,一天后shell死掉了,看门狗的时间慢了5~10倍

请各位高手分析分析。

用户进程初始化ourdev_555566.rar(文件大小:3K) (原文件名:application.rar)

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2010-5-20 22:52:54 | 显示全部楼层
还有一个问题就是为啥看门狗程序用的堆栈大小不是固定的?有时多4~8字节

出0入0汤圆

发表于 2010-5-20 23:29:31 | 显示全部楼层
没有发现wdg线程死掉呢.有关error=-2的情况见http://www.rt-thread.org/drupal/node/5

出0入0汤圆

发表于 2010-5-20 23:35:54 | 显示全部楼层
"看门狗的时间慢了5~10倍 "

这个是什么意思?

那个堆栈,多8个字节挺奇怪的。具体压多少栈,这个实际上不是确定的,例如发生抢占的地方不同。但是跑的时间长了以后,数目应该一致才是。

出0入0汤圆

 楼主| 发表于 2010-5-20 23:46:22 | 显示全部楼层
谢谢各位啊

从表面看看门狗是没有死掉,实际灯已经不闪了;那个-2的错误也会一直存在,不像http://www.rt-thread.org/drupal/node/5 所说的情况。


"看门狗的时间慢了5~10倍 " 正常是0.4秒变化一次IO电平;有一次出问题后灯闪的速度3~4秒(目测);

出0入0汤圆

 楼主| 发表于 2010-5-20 23:48:53 | 显示全部楼层
备注:看门狗实际输出没有使能到CPU,所以CPU并没有复位,也就是说看门狗任务仅仅是对两个IO进行电平变化操作,具体可见源代码。

因为这个程序非常简单,所以我也很纳闷

出0入0汤圆

发表于 2010-5-20 23:51:06 | 显示全部楼层
shaolin,你在lm3s的开发板上看看能否复现。

出0入0汤圆

 楼主| 发表于 2010-5-27 23:39:16 | 显示全部楼层
死机的原因应该是我close了两次socket;
但跟踪进去第二次close是识别到错误的,不知道为啥还是会死掉;

另外发现另一个问题,第一次连接使用了5999端口,断开后重新用5999端口无法连接,什么原因?

出0入0汤圆

发表于 2010-5-28 09:32:55 | 显示全部楼层
呃,居然没有关注到这贴,晚上我在我这边尝试复现下

出0入0汤圆

发表于 2010-5-31 08:52:08 | 显示全部楼层
回复【7楼】migrant
死机的原因应该是我close了两次socket;
但跟踪进去第二次close是识别到错误的,不知道为啥还是会死掉;
另外发现另一个问题,第一次连接使用了5999端口,断开后重新用5999端口无法连接,什么原因?
-----------------------------------------------------------------------

楼主是否能将这部分代码贴出来,我这边一直没有能够复现这个现象。

出0入0汤圆

 楼主| 发表于 2010-6-2 23:41:17 | 显示全部楼层
回复【9楼】shaolin
-----------------------------------------------------------------------

点击此处下载 ourdev_559116.rar(文件大小:1K) (原文件名:tcpserver.rar)
点击此处下载 ourdev_559117.zip(文件大小:1023K) (原文件名:TCPUDPDebug_Setup.zip)
不好意思啊,漏了一个文件;
tcpserver.c的86行中打开,用周立功的tcp调试工具连接后再断开就会出错;
86行注释掉之后断开连接就不会出错,但不能用之前的端口号重新连接

出0入0汤圆

发表于 2010-6-7 09:25:49 | 显示全部楼层
死机的原因应该是我close了两次socket;  
但跟踪进去第二次close是识别到错误的,不知道为啥还是会死掉;  
另外发现另一个问题,第一次连接使用了5999端口,断开后重新用5999端口无法连接,什么原因?
--------------------------------------------------------------------------------------

我这边也复现了这个现象,使用一个端口,用lwip_close断开后再立刻重新连接会失败,但是过几秒钟后再连接又能成功。
这个应该是正常现象,使用lwip_close断开这个端口的连接后,这个连接会进入time wait状态,这种状态会持续几秒钟,这这种状态下去重新连接会失败。

出0入0汤圆

发表于 2010-6-7 09:52:22 | 显示全部楼层
这个是正常现象的,在PC上也是这样。

出0入0汤圆

 楼主| 发表于 2010-6-8 22:15:44 | 显示全部楼层
谢谢,close两次后死机的现象有没有复现?

出0入0汤圆

 楼主| 发表于 2010-6-8 22:28:21 | 显示全部楼层
关于使用同一个端口连接的问题,我这里好像跟电脑有关,等待很长时间再连接也不成功,试了以下几个方法都是无法连接:
1.断开网线再插上
2.重启电路板
3.修复电脑的网络
4.禁用电脑网络再启用

只有更改了电脑的IP(比如删除网关IP,删除某个不在一个网段的IP)之后就可以连接了。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-20 13:42

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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