正在做一个STM32F407的项目,调试freertos+lwip的时候,花了好多时间都解决不了长时间ping的问题。
ping 1472bytes的包,运行大概1~2个小时后板子的反应就变慢,比如刚开始是<1ms, 越到后面就越慢,接近1000ms以上。
最开始的现象是ping 1472长度的包,过不了多久就ping不通,但减少ping的长度到900就又可以。后来把系统时钟从100M调到120M,好像可以解决这个问题。
刚刚接触LWIP,目前版本是1.3.2,是借用网上207的源码,目前看来freertos还是比较稳定的。曾尝试改用LWIP1.4.1, 但网络没调通而放弃。
已经为这个问题焦虑了快1个星期了,尝试改了一些参数,但都无果。那位兄弟做过或碰到类似的问题,指教1、2,莫元100奉送!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
这个问题我之前也发觉的,但是没有解决,运行一段时间之后还是死机;我是按官方DEMO板子的程序修改如下:
{
struct pbuf *p;
for( ;; )
{
if(xSemaphoreTake(s_xSemaphore, emacBLOCK_TIME_WAITING_FOR_INPUT)==pdTRUE)
{
TRY_GET_NEXT_FRAGMENT:
p = low_level_input( s_pxNetIf );
if (p != NULL)
{
if (ERR_OK != s_pxNetIf->input( p, s_pxNetIf))
{
pbuf_free(p);
p=NULL;
}
else
{
xSemaphoreTake( s_xSemaphore, 0);
goto TRY_GET_NEXT_FRAGMENT;
}
}
}
}
}
一周热门 更多>