OPENTCP的整个移植+调试终于完成了,ARP、ICMP、TCP、UDP、HTTP几个常见的协议都没什么问题了,并且也实现了一个简单的网口到串口转换。
所谓“山重水复疑无路,柳暗花明又一村”,我可是深刻地体会到了。把OPENTCP整个搬过来,再把和44B0相关的底层驱动写了之后就扔了三个多月,从上周开始调,看那一堆乱七八糟的问题头都疼,折腾了好几天没什么头绪。再捣腾了两天终于可以PING通了,ARP包、ICMP包收发正常之后,UDP,HTTP,TCP也相继很快都解决了!
不过在最后调试TCP的客户端时一直不通。找了半天原因,最终发现是因为Tcp.c中的tcp_connect函数中有点小bug:
tcp_connect函数的最后三句是:
tcp_sendcontrol(sochandle);
tcp_newstate(soc, TCP_STATE_SYN_SENT);