uC/TCP-IP分析

不管在使用socket的任何时候出现了以下任何一个严重的错误代码,socket必须立即closed()。 NET_SOCK_ERR_NOT_USED NET_SOCK_ERR_INVALID_FAMILY NET_SOCK_ERR_INVALID_PROTOCOL NET_SOCK_ERR_INVALID_TYPE NET_SOCK_ERR_INVALID_STATE NET_SOCK_ERR_FAULT

LPC2366 uC/OS & uC/TCP-IP

最近调试LPC2366+uC/OS+uC/TCPIP,因为是从别人那里拿来的的代码。烧写进去可以ping通。 但是连接远端服务器后不能连续发送,必须要等一段时间(100ms)的延时在发,不然跑着跑着程序会挂掉。 于是埋头google、看源码、调试参数、查文档。依然不行,只能解决到延时10ms发送出错后可以恢复。但是2366发送网络报文依然很慢。 折腾了1个星期。 今天终于试了最后一招(其实还有最最后一招),我们的代码是用git管理的。 git reset --hard OLD_VERSION 测试通过。 心态啊、心态。。。 PS: 最最后一招就是我去PORT Micriμm的2378的TCPIP工程。 最最最后一招就是买ZLG的协议栈。 优秀的开发风格和项目管理是做好项目的第一步。

Micriμm TCP/IP收数据跑死

同事遇到的。 现象是使用Micriμm的TCP/IP协议栈接收网络数据时,接收任务跑死,但是其他任务,如一个定时打印的任务仍然可以正常运行。所以判定如下: 程序不会有取指或取数据异常,有的话程序会什么信息都不会有; 程序不会死在中断里,理由同上; 接收任务一定是pend在一个信号量上面了,不然不会出不来; 最后发现原来Micriμm使用单独的一个进程处理网络报文,类似与linux的Tasklet。而为这个进程开辟的堆栈空间太小,导致堆栈溢出,无法post信号量。   Q:Micriμm μCOS II的任务在堆栈溢出的时候不会导致整个系统跑死?还是溢出的时候正好没有干扰到其他进程?