实时操作系统μCOSII下TCPIP协议栈的实现-Read.doc

实时操作系统μCOSII下TCPIP协议栈的实现-Read.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实时操作系统μCOSII下TCPIP协议栈的实现-Read

实时操作系统μC/OS II下TCP/IP协议栈的实现 摘要: 结合ez80和ARM7两种系统上的具体实现,说明了如何在嵌入式实时操作系统μC/OSII上移植实现LwIP这套TCP/IP协议栈,使μC/OS II成为支持网络的RTOS。 关键词: μC/OS II,TCP/IP,LwIP,网络设备驱动 引言 随着嵌入式系统与网络的日益结合,在嵌入式实时操作系统中引入TCP/IP协议栈,以支持嵌入式设备接入网络,成为嵌入式领域重要的研究方向。μC/OS II是近年来发展迅速的一个开放源码实时操作系统,但它只是一个实时的任务调度及通信内核,缺少对外围设备和接口的支持,如没有文件系统、网络协议、图形界面。笔者在多个嵌入式项目的开发过程中,以开源TCP/IP协议栈LwIP为基础,给μC/OS II加上了网络支持。下面就以μC/OS II +LwIP分别在8位MCU ez80和32位MCU ARM7TDMI上的实现为例进行说明。 需要说明的是,笔者使用的ez80系统是Zilog公司的ez80190开发板,自带网络芯片。而ARM7系统是使用笔者参与开发的Skyeye,一个基于GDB的ARM7TDMI指令级软件仿真器。Skyeye小组最近为Skyeye加上了软件模拟的Ne2k兼容网络芯片,可以运行带网络支持的μcLinux和μC/OS II。以下的全部相关程序和代码都可以在Skyeye网站(hpclab.cs.tsinghua.edu.cn/~skyeye/)下载。 1 基于μC/OS II的网络平台概述 嵌入式操作系统μC/OS II是一个占先式多任务的微OS,其性能安全可以与商业产品竞争。μC/OS II结构清晰、明了,组织有条理μC/OS II自1992年的第一版(μC/OS)以来已经有好几百个应用,是一个经实践证明好用且稳定可靠的内核。目前国内对μC/OS II的研究和应用都很多。 TCP/IP是Internet的基本协议,以其实用性、高效性已经成为事实上的工业标准。嵌入式设备要与Internet网络直接交换信息,就必须支持TCP/IP协议。目前嵌入式设备上TCP/IP方案有很多种,但面向低端应用的开源嵌入式网络平台还很少见。 μC/OS II是一个富有开放色彩的RTOS,只要买一本书就可获得源代码,对学校和教育的使用完全免费,商业应用的费用相对也很低。但是它目前的一些第三方TCP/IP支持都是完全商业化的,用户需要付费才能获得,很少给出源代码,这影响了μC/OS II的研究和推广。通过把开放源代码的TCP/IP协议栈LwIP移植到μC/OS II上来,就获得了一套可免费研究、学习的嵌入式网络软件平台。系统示意图如图1: 图1 μC/OS II+LwIP系统示意图 2 开源TCP/IP协议栈LwIP简介 LwIP是瑞士计算机科学院(Swedish Institute of Computer Science)的Adam Dunkels等开发的一套用于嵌入式系统的开放源代码TCP/IP协议栈。LwIP的含义是Light Weight(轻型)IP协议。LwIP可以移植到操作系统上,也可以在无操作系统的情况下独立运行。LwIP TCP/IP实现的重点是在保持TCP协议主要功能的基础上减少对RAM的占用,一般它只需要几十K的RAM和40K左右的ROM就可以运行,这使LwIP协议栈适合在低端嵌入式系统中使用。 LwIP的特性如下: 支持多网络接口下的IP转发 支持ICMP协议 包括实验性扩展的的UDP(用户数据报协议) 包括阻塞控制,RTT估算和快速恢复和快速转发的TCP(传输控制协议) 提供专门的内部回调接口(Raw API)用于提高应用程序性能 可选择的Berkeley接口API(多线程情况下) 我们目前使用的是LwIP的最新稳定版V0.5.3。有关LwIP的详细内容,可以参考其代码和网站上的文档。 4 LwIP在μC/OS II下的实现 4.1 概述 LwIP协议栈在设计时就考虑到了将来的移植问题,因此把所有与硬件、OS、编译器相关的部份独立出来,放在/src/arch目录下。因此LwIP在μC/OS II上的实现就是修改这个目录下的文件,其它的文件一般不应该修改。下面分几部份分别说明相应文件的实现原理和过程。具体的代码限于篇幅没有给出,Skyeye网站上有完整的代码和说明。 4.2 与CPU或编译器相关的include文件 /src/arch/include/arch目录下cc.h、cpu.h、perf.h中有一些与CPU或编译器相关的定义,如数据长度,字的高低位顺序等。这应该与用户实现μC/OS II时定义的数据长度等参数是一致的。 #define BYTE_ORDER LITTLE_ENDIAN //ARM7默

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档