RT-Thread调试STM32F107,发现一个问题:--》
刚刚用RT-thread,对其内核还不是很了解。 我现在碰到一个问题了,似乎很严重:当用HTTP进行连接到网络的时候(我建立一个任务,http_test()函数,每隔一段时间便连接到一个网站如:www.hao123.com)
一般可以正常连接,但是成功率有点低。成功连了2,3次之后,以太网就死掉了,再怎么也PING不通了?
这样,我怀疑是硬件问题: 所以我把这个任务去掉,PC一直PING它,十几分钟,似乎都没什么问题,偶尔掉一下,这说明不一定是硬件问题
问题出在哪了呢?
如何解决?
PING 图:
http://cache.amobbs.com/bbs_upload782111/files_33/ourdev_580709WBGF1R.jpg
(原文件名:ping.jpg) 你这个time太长了吧,而且变化也挺大的,是否加了打印还是什么其他东西? 加了打印,发现去掉FINSH会好点,但一样会死掉,关键是PING不通!
如果不加http_test(),PING通多长都没问题,至少说没见PING不通的问题,
TIME这种变化不正常?
关键的问题,它为什么会死掉呀?是不是rtprintf有影响? 我去掉看看 加不加finsh shell应该没影响,毕竟finsh shell不会主动输出打印东西。
通常情况下,time应该是<1ms (enc28j60大概是=1ms的样子),并且非常稳定不会出现丢包,这样基本上的硬件是好的。你这个问题,如果排除了硬件的问题,那么就极可能是http_test代码的问题。 你说的非常稳定,是在什么情况下测试的?
是硬件直接PC网口相吗?
我的是在局域网测试的
虽然TIME有点不稳定,(可能和所在网络有关系,公司的网络一直不稳定),但不至于会死掉呀
下面是我用PC PING PC的网络情况:
http://cache.amobbs.com/bbs_upload782111/files_33/ourdev_580765RE1X05.jpg
(原文件名:PC.jpg)
也差不多 差太多了吧,你们的局域网有很多网络冲突?我这边上局域网依然是<1ms的。
电脑直接连接开发板试试 我分别跑了RTT,和不跑RTT,硬件直接连PC网口,PING测试,均是<1ms,可以说明硬件基本没问题了吧,
我遇到的问题是: 当我在RTT上测试http_test(),网络运行一阵子后,会死掉(PING)不通,在这以后,再也PING不通了,重新复位,问题重复.
如果是这样的话,难道需要每次重新初始化ETH?
ffxz ?怎么解决?
我是有点怀疑程序中和其他模块有冲突(或者说协调得不是很好)造成.但我现在还找不出问题的确切点在哪里
没有RTT的情况:
http://cache.amobbs.com/bbs_upload782111/files_33/ourdev_580779KLO0LQ.jpg
(原文件名:No_RTT.jpg)
跑了RTT的情况:
http://cache.amobbs.com/bbs_upload782111/files_33/ourdev_580780ICJ7FG.jpg
(原文件名:RTT.jpg) 没有rtt?用lwip裸奔?
另外。。你就说死掉,但是没见代码也没见log。。这也没法诊断问题呀
先把lwip的DEBUG_xxx打开看看log吧 那应该是http_test代码的问题,自行检查下代码。 是的,我用回复【7楼】mbbill
没有rtt?用lwip裸奔?
另外。。你就说死掉,但是没见代码也没见log。。这也没法诊断问题呀
先把lwip的debug_xxx打开看看log吧
-----------------------------------------------------------------------
我分别作了RTT和LWIP裸奔的情况来测试,没有发现硬件有问题
不过我现在已经解决问题了,初步测试发现可以长时间连网了,问题可能是,我自己开的线程优先级有点问题,
阻塞了LwIP核心线程的运行。
现在的测试结果:
http://cache.amobbs.com/bbs_upload782111/files_33/ourdev_580816A31PJD.jpg
(原文件名:test.jpg) 回复【8楼】ffxz
那应该是http_test代码的问题,自行检查下代码。
-----------------------------------------------------------------------
ffxz回复得真快啊,不觉间,在我楼上了 ^_^
说的很对!^_^ 确实是自己开的线程有问题。 hi,这个到最后是怎么解决的啊,我现在用还是有问题的
页:
[1]