准备入手IP4或者IP4S

手机翻盖用了好久了。最近不知道怎么回事,内放又出了问题,老是嗞啦嗞啦的。听不清楚。只能外放。 苹果商城终于有了8G版的。什么时候能出32G的啊。IP4S估计无望了。到时候又是抢个厉害

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的协议栈。 优秀的开发风格和项目管理是做好项目的第一步。

Cross-compile tcpdump

tcpdump是用来debug网络的无上利器,虽然我不怎么会用。但是嵌入式板子上面还是带一个好。 看了busybox好像没有移植过去。看来只能自己编译了。 第一步当然要去下载最新版本。点击进入官网 tcpdump分为2块,一块是libpcap,一块是tcpdump。 编译libpcap 解压。我们不需要can,不需要bluetooth,指定linux版本为2.6。执行: [crayon-69cea441b432f743711387/] 编译tcpdump 解压。运行: [crayon-69cea441b4335232536964/] 编译出来的tcpdump是不需要libpcap的。 That's all.

uC/TCP-IP NetSock_Conn返回超时

由于项目要求需要使用uC/TCP-IP做一个TCP Client端连接服务器。 出现了以下问题,烧写完程序后可以连接服务器,但是MCU复位后执行到NetSock_Conn会返回超时。 交叉编译了tcpdump,查看网络信息后发现出现超时的时候3次握手不完整。 使用netstat -a发现握手截至在FIN_WAIT1。当系统终止掉这次握手或者复位后,MCU总是可以连接到服务器,但是重连总是失败,错误码为超时。 google了基本没有人提到这个错误。初步结论可能是配置有误。但是增加了任务堆栈、调整任务优先级也没有效果。 之前有做过RM9200,于是打开代码发现都是使用的Server端。没有Client端。没办法,分别找了我们使用的MCU和RM9200的官方代码。终于在RM9200的code里面的Conn之前发现这样一条命令: [crayon-69cea441b45f2352731165/] 看名字就知道是设置连接超时,grep TTCP_CFG_MAX_CONN_TIMEOUT_MS发现为30000。依葫芦画瓢,问题解决。 原因就是系统默认的超时时间太短造成的。

Cross-crompile minicom

minicom需要ncurses,如果你的交叉编译环境自带的话会省很多事情。否则需要先编译ncurses。 不然会出现如下的错误信息: [crayon-69cea441b46d7030454249/] 从http://www.gnu.org/software/ncurses/ncurses.html下载ncurses [crayon-69cea441b46da269762850/] 因为我们指定了prefix,ncurses会到错误的地方(prefix/share/terminfo)找terminfo。执行minicom的时候就会出现如下的错误信息: No termcap entry for vt102 所以需要修改TERMINFO默认寻找路径。 [crayon-69cea441b46db128610102/] 修改TERMINFO_DIRS和TERMINFO宏为"/usr/share/terminfo" [crayon-69cea441b46dc849435267/] [crayon-69cea441b46dd087903621/] 从http://alioth.debian.org/projects/minicom/下载minicom [crayon-69cea441b46de363396953/] [crayon-69cea441b46df720931266/] 就可以获得minicom 最后拷贝libncurses.so到/lib,拷贝文件/usr/share/terminfo/v/vt102即可。