这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » ZLG,TCP,IP,Bug ZLG_TCP/IP Bug很多,哎,都进来看看!

共2条 1/1 1 跳转至

ZLG,TCP,IP,Bug ZLG_TCP/IP Bug很多,哎,都进来看看!!!

院士
2006-09-17 18:14:16     打赏
ZLG,TCP,IP,Bug ZLG_TCP/IP Bug很多,哎,都进来看看!!!



关键词: 很多     进来     看看    

院士
2006-12-22 22:43:00     打赏
2楼
问 我就是上次说做PhoenixOS操作系统的

     前几天无聊买了2200的开发板,第一个看的程序就是ZLG_TCP/IP,然后将他移植到了PhoenixOS操作系统上了,所有任务在一个优先级上,按SCHED_RR调度,效率比uCOS是高的多,

     后来我改了代码,初始化了外部中断2(高电平方式,不能采用上升沿),和8019的中断控制部分,(在第零页和第一页的相关寄存器上,)采用中断方式,效率提高到:PING命令的反应时间在1ms以内。在我的操作系统上使用OSKill(),和OSSignal()方式接收中断,(POSIX接口),效率至少比ZLG给的示范高出100倍,

     再说说BUG,哎!无奈,遍地都是,大部分导致效率低下,举个例子:大家看看 ARP.C 中 Arp_Request()哎!简直是!这种错误也犯!类似的还有很多

                       hanhui03@163.com 可以联系到我 1: 难怪zlg的人说,开发板肯定不好用,难怪zlg的销售人说,开发板tcp肯定不好用,要商用的最好买他们的tcp、ip的商业模块那才行。 2: 其实我认为他们提供lwIP移植比他们提供zlg/ip好多了 3: 写一个tcp是很麻烦的最麻烦的就是tcp的流控制了,实现是很麻烦的,比如说接收到的一个tcp报的seq正好和上次接收到的一样,也许很多人就会丢弃这个包,但也有可能这个包是新旧数据的组合,应该判断是不是上次接收的一个副本,如果你丢弃这个包,之后发送ack就可能一直再请求这个包,这样就通信不了,因为你并不知道对方的tcp协议栈是怎么工作的,所以要考虑很多

一个优秀的tcp的编写是很麻烦的,难道绝对不亚于写一个os,楼主就不要奢求很多了,你想想你的2200板子才买了多少钱啊 4: 另外LPC的ARM7我感觉不大适合用中断实现tcp/IP因为中断电平也要时间的,你PING在1MS内,这并不说明什么,这个是第一个接收到报的反映时间,但不能反映处理时间,如果用中断,假如8019 100%运作,那么1s内就会发送1000个左右的 1K大小的包,相当于1MS发送或接收一个包,每个包都会产生中断电平,这个电平判断也要时间的, 5: 用uip ping的反应时间<0.4ms,linux下测试 6: 完全可以!!!    首先谢谢大家顶贴!!!!!

嗨 eleven11

    如果原封不动ZLG/IP 上升沿根本不可能,可是如果你将 ZLG/IP 通过关中断来互斥8019的算法,改为用互斥信号量,就极大的缩短了关中断的时间,我的PhoenixOS本身用的就是新型三坐标调度算法,(关中断时间短)这样就保证了,如果缓冲区足够多,就可以实时地接收所有8019中断,和包数据,这个我是试过的,用我改进后的TCP/IP协议栈,大概每10ms左右向8019发一个包,可能是icmp udp 或是 tcp ,结果一切工作正常,(没有丢包现象,我把以太网接收,和IP_PROCESS())写成了两个线程,这样以太网数据报基本上是随到随收!!!

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]