lwip在ucos_ii上的移植

lwip在ucos_ii上的移植

ID:10074711

大小:46.50 KB

页数:6页

时间:2018-05-24

lwip在ucos_ii上的移植_第1页
lwip在ucos_ii上的移植_第2页
lwip在ucos_ii上的移植_第3页
lwip在ucos_ii上的移植_第4页
lwip在ucos_ii上的移植_第5页
资源描述:

《lwip在ucos_ii上的移植》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、LwIP在uCOS_II上的移植1与CPU或编译器有关的文件22sys_arch操作系统相关部分3LwIP信号量的实现3LwIP消息队列的实现4LwIP定时器的实现4LwIP线程的创建5LwIP(Light-weightInternetProtocol)是瑞士计算机科学院(SwedishInstituteofComputerScience)的AdamDunkels等开发出来的一套用于嵌入式系统的开放源代码TCP/IP协议栈。一般情况下,LwIP既可移植到操作系统上,又可在无操作系统的情况下独立运行。LwIP实现的主要优点是在保持了TCP/IP协议主要功能

2、的基础上,减少了其对RAM的占用。一般它只要几十KB的RAM和40KB左右的ROM就可以运行,这使得LwIP协议非常适合在嵌入式系统中使用。目前最新版的LwIP已经发展到1.2.0版了。LwIP的主要特点如下:◇支持多网络接口下的IP转发;◇支持网间控制报文协议ICMP(InternetControlMessagesProtocol);◇包含有实验性扩展的用户数据报协议UDP(UserDatagramProtocol);◇包括阻塞控制、RTT估算和快速恢复及快速转发的传输控制协议TCP(TransferControlProtocol);◇具有专门提供的内

3、部回调应用编程接口RawAPI(ApplicationProgrammingInterface),可用于提高应用程序性能;◇带有可选择的Berkeley接口API(多线程情况下);◇可在最新的版本中支持端对端协议PPP(Peer-PeerProtocol);◇新版本中增加了IPfragment的支持;◇能支持动态主机配置协议(DHCP)和动态分配IP地址。LwIP一般由几个模块组成,除TCP/IP协议的实现模块外(IP,ICMP,UDP,TCP),还有许多相关支持模块。这些支持模块包括:操作系统模拟层、缓冲与内存管理子系统、网络接口函数、及一组Inter

4、net校验和计算函数,此外,LWIP还包括一个API概要说明。LwIP的进程模型如图3所示Tftp_threadTcpecho_threadUDPTCPICMPIPIPpacketArppacket传输层网络层网络接口层应用层Tcpip_threadLwIP协议在设计时为了适应不同的操作系统,没有在代码中使用和某一个操作系统相关的系统调用和数据结构,而是在LwIP和操作系统之间增加了一个操作系统的封装层(sys_arch),该封装层主要用于把所有与硬件、操作系统和编译器相关的.c文件和.h头文件独立出来并按要求存放于/arch目录下。这样在移植LwIP到

5、底层操作系统时,只需要改写这个接口里相关的文件即可。图3LwIP进程模型1与CPU或编译器有关的文件与CPU或编译器有关的文件有cc.h、cpu.h和perf.h。在cc.h文件中主要是对数据类型的定义,要求它们与ARM处理器的要求相一致。具体数据定义如下:typedefunsignedcharu8_t;typedefsignedchars8_t;typedefunsignedshortu16_t;typedefsignedshorts16_t;typedefunsignedintu32_t;typedefsignedints32_t;typedefu3

6、2_tmem_ptr_t;另外ARM系统默认以4字节对齐,在ADS编译环境中,结构体是4字节对齐的。但是处理网络数据包时,LwIP是根据结构体中不同数据的长度来读取相应的数据的,所以一定要在定义数据包结构体的时候使用__packed关键字,让编译器放弃原先的字节对齐。具体定义如下:#definePACK_STRUCT_FIELD(x)x#definePACK_STRUCT_STRUCT#definePACK_STRUCT_BEGIN__packed#definePACK_STRUCT_END在cpu.h中主要是对字的大小端进行定义,再次定义为小端模式,定

7、义语句为#defineBYTE_ORDERLITTLE_ENDIAN,而在per.h文件中主要是定义#definePERF_START和#definePERF_STOP(x)。到此与CPU和编译器有关的文件就编写完成了。2sys_arch操作系统相关部分sys_arch.c和sys_arch.h中的内容是与操作系统相关的一些结构和函数,主要可以分为4部分:信号量及相关函数、消息队列及相关函数、定时器相关函数以及创建新线程函数等,因此在sys_arch.c文件中需要把这四部分解决。LwIP信号量的实现LwIP中需要使用信号量进行通信,由于uCOS_II中已

8、经实现了信号量OS_EVENT的各种操作,并且可以满足LwIP通信的各种要求,所

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。