资源描述:
《uCOS下LwIP协议栈的移植和测试》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、您的论文得到两院院士关注嵌入式软件应用文章编号:1008-0570(2008)08-2-0079-02μC/OSII下LwIP协议栈的移植和测试PortingLwIPintoμC/OSIIandTesting(郑州大学)程明余中华苏艳苹郭小飞CHENGMingYUZhong-huaSUYan-pingGUOXiao-fei摘要:把嵌入式系统连接到Internet已经成为嵌入式系统一个重要发展方向。本文讨论如何在实时操作系统μC/OSII下移植LwIP协议以及测试移植后的结果,使μC/OSII成为支持网
2、络通信的实时操作系统。关键词:嵌入式系统;μC/OSII;LwIP中图分类号:TP393文献标识码:BAbstract:ToconnectembeddedsystemtoInternetisbecominganimportantdirectionofembeddedsystemresearch。ThisarticlediscribeshowtoportLwIPintotheReal-timeOSofμC/OSIIandtesttheportingresult。Intheend,theμC/OSIIbe
3、comesaRe-al-timeOSthathasInternetcommunicationablity.Keywords:EmbeddedSystem;μC/OSII;LwIP技1引言术为了实现嵌入式系统终端连入互联网,而有必要为其引入了网络功能。μC/OSII是一个源代码开放的实时操作系统,但创是它只是一个实时的任务调度及通信内核,并没有集成TCP/IP通信协议,为了实现网络功能,需要在μC/OSII移植一个轻量新级的TCP/IP通信协议LwIP。本文主要论述μC/OSII下通信协议LwIP的移植
4、以及测试。图1嵌入式系统结构图LwIP在设计时为了适应不同的操作系统,并没有在代码中2LwIP简介使用和某个特定的操作系统相关的系统调用和数据结构,而是LwIP(lightweightIP)是瑞士计算机科学院的Adam在LwIP和操作系统之间提供了一个接口层(sys_archinter-Dunkels等开发的一套开放TCP/IP协议栈源代码。LwIP既可以face),该接口主要实现的功能包括数据类型的定义、存储模式移植到操作系统上,又可以在无操作系统的情况下独立运行。的选择、任务间的同步、时间和内存的
5、管理等。因此,完成LwIPLwIP实现的重点是在保持TCP/IP协议主要功能的基础上减少在μC/OSII移植,我们就是要通过修改这个接口层来实现。同对RAM的占用,这使LwIP适合在低端嵌入式系统中使用。其时,还要根据自己所要实现的具体目的,可以对LwIP协议栈进主要特点如下:行一定的裁减。(1)支持多网络接口下得IP转发;3.2和CPU以及编译器相关的一些头文件(2)支持ICMP协议;这些头文件包括cc.h、cpu.h、perf.h等,在这里都定义(3)包括试验性扩展的UDP;了和使用的CPU以及编
6、译器相关的内容,如数据类型,存(4)包括简单的拥塞控制,RTT估算和快速恢复和快速转储模式的选择,这些和用户实现μC/OSII时定义的数据类发的TCP;型等是一致的。(5)提供专门的内部回调接口(RawAPI)用于提高应用程#defineBYTE_ORDERLITTLE_ENDIAN//小端存储模式序性能;typedefunsingnedcharu8_t;//数据类型定义(6)可选择的Berkeley接口API;typedegchars8_t;3LwIP协议栈移植到μC/OSII操typedefuns
7、ingnedshortu16_t;作系统的具体实现typedefshorts16_t;3.1嵌入式系统结构和LwIP接口typedefunsingnedintu32_t;整个嵌入式系统的结构如图1所示,由ARM微处理器、网卡、typedefints32_t;网络设备驱动、μC/OSII操作系统、LwIP协议栈和应用程序组成。3.3和操作系统μC/OSII相关的函数与操作系统相关的函数主要是信号量、消息队列、定时器余中华:教授硕士生导师函数和创建新进程函数。下面将逐一论述移植过程中对它们要基金项目:河南
8、省教育厅自然科学研究基金(2007510018)项目名称:基于场电子发射的平板显示驱动研究求和实现。《PLC技术应用200例》邮局订阅号:82-946360元/年-79-嵌入式软件应用中文核心期刊《微计算机信息》(嵌入式与SOC)2008年第24卷第8-2期3.3.1LwIP信号量的实现};LwIP使用信号量实现进程间的通信,由于μC/OSII中已structsys_timeouts{经实现了信号量OS_EVENT的各种操作,并且可以满足LwIPstru