huniugg 发表于 2013-4-26 21:33:58

请教一个关于LWIP的问题

我用的平台是FL2440的,所以发到这里,不知道合不合适
我移植了ucosii+lwip,arp能够正常响应,能够收到IP包,但ping不通
于是打印调试信息,显示每个IP包的ID号,发现很奇怪的是,上位机发的乱七八糟的UDP,SSDP等协议包都能正常接收,但就是ICMP包收不到
desc: 01-00-5e-7f-ff-fa                source: 00-50-c2-10-20-30        type: 0x0800        id: 0x02a1

desc: 01-00-5e-00-00-fc        source: 00-50-c2-10-20-30        type: 0x0800        id: 0x02a2

desc: 01-00-5e-7f-ff-fa                source: 00-50-c2-10-20-30        type: 0x0800        id: 0x02a4

desc: ff-ff-ff-ff-ff-ff                source: 00-50-c2-10-20-30        type: 0x0800        id: 0x02a5

desc: 01-00-5e-7f-ff-fa                source: 00-50-c2-10-20-30        type: 0x0800        id: 0x02a6

desc: 01-00-5e-7f-ff-fa                source: 00-50-c2-10-20-30        type: 0x0800        id: 0x02a7


从上面图中看出,id=0x02a3的ICMP发出来,下位机没收到,而前后连续的0x02a1,0x02a2,0x02a4,0x02a5,0x02a6,0x02a7包都能收到
这个问题我之前移植UIP的时候也遇到过,没解决很困惑

自己跑裸机程序,写了一个简单的arp协议程序能正常收到ICMP包并相应。

这个问题折腾我好久了,盼各位给点点播,谢谢{:biggrin:}

huniugg 发表于 2013-4-27 21:09:27

本帖最后由 huniugg 于 2013-4-28 08:19 编辑

解决了,能收到ICMP包了,
原因是我没有初始化dm9000的MAC寄存器,估计是硬件过滤掉了与mac地址不相符的包,详细的我还没有弄清楚到底是哪里的设置问题
广播包和多播包能正常接收,这样看下来就是启用了单播包的过滤
另外,我之前移植了uip也是这个问题,配置了mac寄存器,然后ping通了
目前就是这样子,后面再有新发现我再来更新一下,希望给后来人一个启示吧
这两天折腾死了,郁闷。。。。
页: [1]
查看完整版本: 请教一个关于LWIP的问题