📄 自由风os梦工厂--实时操作系统uc-0s ii下tcp-ip协议栈的实现.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0048)http://half.nease.net/ucos/article/ucostcpip.htm -->
<HTML><HEAD><TITLE>自由风OS梦工厂--实时操作系统uC/0S II下TCP/IP协议栈的实现</TITLE><!-- InstanceBegin template="/模板/Document.dwt" codeOutsideHTMLIsLocked="false" -->
<META
content="嵌入式系统,ucos,ucos ii,uc/os,vxworks,linux,os,arm,ppc,x86,embed,操作系统,单片机,实时操作系统,驱动,文件系统,网络,计算机,tcpip,总线,通信,郭景峰,崔卿,自动控制"
name=Keywords>
<SCRIPT language=JavaScript type=text/JavaScript><!--function MM_reloadPage(init) { //reloads the window if Nav4 resized if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) { document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }} else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();}MM_reloadPage(true);//--></SCRIPT>
<!-- InstanceBeginEditable name="doctitle" --><!-- InstanceEndEditable -->
<META http-equiv=Content-Type content="text/html; charset=gb2312"><!-- InstanceParam name="OptionalRegion1" type="boolean" value="true" --><LINK
href="自由风OS梦工厂--实时操作系统uC-0S II下TCP-IP协议栈的实现.files/format.css" type=text/css
rel=stylesheet>
<META content="MSHTML 6.00.2737.800" name=GENERATOR></HEAD>
<BODY>
<TABLE cellSpacing=0 cellPadding=0 width=750 align=center border=0>
<TBODY>
<TR>
<TD align=middle width=150 height=55><A
href="http://www.textclick.com/viewmain.asp?name=guojingfen"><IMG
height=50 src="自由风OS梦工厂--实时操作系统uC-0S II下TCP-IP协议栈的实现.files/logo.gif"
width=150 border=0></A></TD>
<TD colSpan=2 height=55>
<DIV align=right>
<OBJECT
codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0
height=50 width=595 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000><PARAM NAME="movie" VALUE="/flash/Head.swf"><PARAM NAME="quality" VALUE="high">
<embed src="/flash/Head.swf" quality="high"
pluginspage="http://www.macromedia.com/go/getflashplayer"
type="application/x-shockwave-flash" width="595"
height="50"></embed></OBJECT></DIV></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=750 align=center border=0>
<TBODY>
<TR>
<TD bgColor=#f7f7f7>
<TABLE cellSpacing=0 cellPadding=0 width=750 align=center border=0>
<TBODY>
<TR>
<TD colSpan=2 height=30>当前位置<IMG height=8
src="自由风OS梦工厂--实时操作系统uC-0S II下TCP-IP协议栈的实现.files/arrow.gif"
width=12><A href="http://half.nease.net/main.htm">首页</A><IMG
height=8 src="自由风OS梦工厂--实时操作系统uC-0S II下TCP-IP协议栈的实现.files/arrow.gif"
width=12><!-- InstanceBeginEditable name="navigate" --><A
href="http://half.nease.net/ucos/index.htm">uC/OS-II</A><IMG
height=8 src="自由风OS梦工厂--实时操作系统uC-0S II下TCP-IP协议栈的实现.files/arrow.gif"
width=12><A href="http://half.nease.net/ucos/article.htm">技术应用</A><!-- InstanceEndEditable --></TD>
<TD width=160 height=30>
<DIV align=center><IMG height=14
src="自由风OS梦工厂--实时操作系统uC-0S II下TCP-IP协议栈的实现.files/home.gif" width=14
align=absMiddle> <A
onclick="this.style.behavior='url(#default#homepage)';this.setHomePage('http://half.nease.net')"
href="http://half.nease.net/ucos/article/ucostcpip.htm#"
target=_self>设为首页</A> <IMG height=13
src="自由风OS梦工厂--实时操作系统uC-0S II下TCP-IP协议栈的实现.files/fav.gif" width=15
align=absMiddle> <A
href="javascript:window.external.addfavorite('http://half.nease.net','自由风OS梦工厂--嵌入式系统开发')">收藏本站</A></DIV></TD></TR>
<TR>
<TD width=150 bgColor=#000000 height=1></TD>
<TD width=450 bgColor=#000000 height=1></TD>
<TD width=150 bgColor=#000000 height=1></TD></TR>
<TR>
<TD vAlign=top align=middle colSpan=3>
<P> </P>
<TABLE cellSpacing=0 cellPadding=0 width=700 border=0>
<TBODY>
<TR>
<TD bgColor=#cccccc height=25>
<DIV align=center><FONT size=4><!-- InstanceBeginEditable name="title" --><FONT
size=4><STRONG>实时操作系统uC/0S II下TCP/IP协议栈的实现</STRONG></FONT><!-- InstanceEndEditable --></FONT></DIV></TD></TR>
<TR>
<TD bgColor=#ebebeb height=30>
<DIV align=center><!-- InstanceBeginEditable name="smalltitle" -->2003-08-09[中][摘][文]<FONT
color=#0000ff></FONT><!-- InstanceEndEditable --></DIV></TD></TR>
<TR>
<TD height=40>声明:<FONT
color=#c60d0d>本网站资源来自本站原创、网友来稿和摘自别处等途径,在此敬告各位网友,下载和使用时要充分尊重作品版权,对来自不同途径的资源请分别参照<A
href="http://half.nease.net/info/declare.htm"
target=_blank>相关声明</A>严格执行。本站拒绝一切具有商业化色彩的使用与下载。万望注意,特此声明!</FONT></TD></TR></TBODY></TABLE>
<TABLE borderColor=#000000 cellSpacing=0 cellPadding=0 width=700
border=1>
<TBODY>
<TR>
<TD borderColor=#ffffff bgColor=#666666 height=20>
<TABLE cellSpacing=0 cellPadding=0 width=700 border=0>
<TBODY>
<TR>
<TD width=25>
<DIV align=center><FONT face=Wingdings
color=#ffffff>1</FONT></DIV></TD>
<TD width=652> </TD>
<TD width=23>
<DIV align=center><A
href="javascript:window.close()"><FONT face=Wingdings
color=#ffffff>x</FONT></A></DIV></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD vAlign=top borderColor=#ffffff align=middle
height=120><BR><!-- InstanceBeginEditable name="EditRegion1" -->
<TABLE cellSpacing=0 cellPadding=0 width=600 border=0>
<TBODY>
<TR>
<TD>
<P class=p4><SPAN class=p7>摘要: </SPAN></P>
<P class=p4><SPAN
class=p7>结合ez80和ARM7两种系统上的具体实现,说明了如何在嵌入式实时操作系统uC/0SII上移植实现LwIP这套TCP/IP协议栈,使uC/0S
II成为支持网络的RTOS。</SPAN></P>
<P><SPAN class=p7>关键词: uC/0S
II,TCP/IP,LwIP,网络设备驱动</SPAN><BR></P>
<UL>
<LI class=p4>1 引言 </LI></UL>
<P><SPAN
class=p4>随着嵌入式系统与网络的日益结合,在嵌入式实时操作系统中引入TCP/IP协议栈,以支持嵌入式设备接入网络,成为嵌入式领域重要的研究方向。uC/0S
II是近年来发展迅速的一个开放源码实时操作系统,但它只是一个实时的任务调度及通信内核,缺少对外围设备和接口的支持,如没有文件系统、网络协议、图形界面。笔者在多个嵌入式项目的开发过程中,以开源TCP/IP协议栈LwIP为基础,给uC/0S
II加上了网络支持。下面就以uC/0S II +LwIP分别在8位MCU ez80和32位MCU
ARM7TDMI上的实现为例进行说明。<BR>需要说明的是,笔者使用的ez80系统是Zilog公司的ez80190开发板,自带网络芯片。而ARM7系统是使用笔者参与开发的Skyeye,一个基于GDB的ARM7TDMI指令级软件仿真器。Skyeye小组最近为Skyeye加上了软件模拟的Ne2k兼容网络芯片,可以运行带网络支持的μcLinux和uC/0S
II。以下的全部相关程序和代码都可以在Skyeye网站(hpclab.cs.tsinghua.edu.cn/~skyeye/)下载。</SPAN></P>
<UL>
<LI><SPAN class=p4>2 基于uC/0S II的网络平台概述</SPAN> </LI></UL>
<P><SPAN class=p4>嵌入式操作系统uC/0S
II是一个公开源代码的占先式多任务的微内核RTOS,其性能和安全性可以与商业产品竞争。uC/0S
II的特点可以概括为以下几个方面:公开源代码,代码结构清晰、明了,注释详尽,组织有条理,可移植性好。可裁剪,可固化。内核属于抢占式,最多可以管理60个任务。uC/0S
II自1992年的第一版(uC/0S)以来已经有好几百个应用,是一个经实践证明好用且稳定可靠的内核。目前国内对uC/0S
II的研究和应用都很多。<BR>TCP/IP是Internet的基本协议,以其实用性、高效性已经成为事实上的工业标准。嵌入式设备要与Internet网络直接交换信息,就必须支持TCP/IP协议。目前嵌入式设备上TCP/IP方案有很多种,但面向低端应用的开源嵌入式网络平台还很少见。<BR>uC/0S
II是一个富有开放色彩的RTOS,只要买一本书就可获得源代码,对学校和教育的使用完全免费,商业应用的费用相对也很低。但是它目前的一些第三方TCP/IP支持都是完全商业化的,用户需要付费才能获得,很少给出源代码,这影响了uC/0S
II的研究和推广。通过把开放源代码的TCP/IP协议栈LwIP移植到uC/0S
II上来,就获得了一套可免费研究、学习的嵌入式网络软件平台。系统示意图如图1:</SPAN></P>
<P align=center><SPAN class=p4><IMG height=194
src="自由风OS梦工厂--实时操作系统uC-0S II下TCP-IP协议栈的实现.files/ucostcpip.jpg"
width=287><BR>图1 uC/0S II+LwIP系统示意图</SPAN></P>
<UL>
<LI><SPAN class=p4>3 开源TCP/IP协议栈LwIP简介</SPAN> </LI></UL>
<P><SPAN class=p4>LwIP是瑞士计算机科学院(Swedish Institute of
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -