SMARTARM2200 ADS工程在IAR EWARM 5.3上的移植(5)-ZLG-TCPIP的移植

板子自带的TCPIP协议栈ZLG-TCPIP的性能可以说一般,代码质量也不高,而且采用的是查询而不是中断方式.不过初学TCPIP研究一下相比其他复杂的协议栈还是容易点.
这里就简单描述下ADS移植到IAR的过程,因为改动的代码并不多,就不详细介绍了.关于ZLG-TCPIP更深入的介绍可以参考《ARM嵌入式系统软件开发实例(一)》,之后会详细介绍LwIP的移植过程以及网卡驱动
可以到http://download.csdn.net/source/1547554下载到该工程的源代码,之后有少许改动,不过并不影响运行,如果需要可以与我联系,共同探讨.
1.移植过程很简单,把ADS中的ZLG-TCPIP文件夹复制到IAR下,在工程中添加其中的代码,在app.c中创建相应uCOSII任务.实现数据类型等的定义.编译有错误会提示你进行查漏补缺.
2.在app.c中的App_TaskCreate创建了一个Task_ZLGTCPIP_Init任务,该任务进行ZLG-TCPIP的初始化,网卡的初始化,ZLG-TCPIP任务和测试任务的创建,最后不停进行网卡数据包的查询.

Task_ZLGTCPIP_Init:

Rec_Packet()从网卡接收到数据包后,会调用Rec_Ethernet_Packed进行数据包的分析,判断是ARP还是IP包,如果是IP包送到IP_PROCESS处理,并判断出是ICMP/TCP/UDP包,如果是ICMP包就icmp_process,如果是TCP/UDP则发送信号量有TaskC和TaskB进行处理

4.TaskB和TaskC, TaskB和TaskC等待到IP_PROCESS发送的信号量后就交由UDP/TCP层去处理.对应的函数为Udp_Process和Process_Tcp1
TaskB:

TaskC:


5.ping的效果并不理想,因为采用的是查询方式,后来用LwIP采用中断的方式可以达到2-3ms

 

关于另一个ZLG例子-ZLGGUI可以在http://download.csdn.net/source/1599837下到IAR的工程,ZLG-GUI功能比较简单,就不深入研究了,将来可以好好研究下MiniGUI和uC-GUI

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值