?? 自由風(fēng)os夢工廠--實(shí)時操作系統(tǒng)uc-0s ii下tcp-ip協(xié)議棧的實(shí)現(xiàn).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>自由風(fēng)OS夢工廠--實(shí)時操作系統(tǒng)uC/0S II下TCP/IP協(xié)議棧的實(shí)現(xiàn)</TITLE><!-- InstanceBegin template="/模板/Document.dwt" codeOutsideHTMLIsLocked="false" -->
<META
content="嵌入式系統(tǒng),ucos,ucos ii,uc/os,vxworks,linux,os,arm,ppc,x86,embed,操作系統(tǒng),單片機(jī),實(shí)時操作系統(tǒng),驅(qū)動,文件系統(tǒng),網(wǎng)絡(luò),計算機(jī),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="自由風(fēng)OS夢工廠--實(shí)時操作系統(tǒng)uC-0S II下TCP-IP協(xié)議棧的實(shí)現(xiàn).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="自由風(fēng)OS夢工廠--實(shí)時操作系統(tǒng)uC-0S II下TCP-IP協(xié)議棧的實(shí)現(xiàn).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>當(dāng)前位置<IMG height=8
src="自由風(fēng)OS夢工廠--實(shí)時操作系統(tǒng)uC-0S II下TCP-IP協(xié)議棧的實(shí)現(xiàn).files/arrow.gif"
width=12><A href="http://half.nease.net/main.htm">首頁</A><IMG
height=8 src="自由風(fēng)OS夢工廠--實(shí)時操作系統(tǒng)uC-0S II下TCP-IP協(xié)議棧的實(shí)現(xiàn).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="自由風(fēng)OS夢工廠--實(shí)時操作系統(tǒng)uC-0S II下TCP-IP協(xié)議棧的實(shí)現(xiàn).files/arrow.gif"
width=12><A href="http://half.nease.net/ucos/article.htm">技術(shù)應(yīng)用</A><!-- InstanceEndEditable --></TD>
<TD width=160 height=30>
<DIV align=center><IMG height=14
src="自由風(fēng)OS夢工廠--實(shí)時操作系統(tǒng)uC-0S II下TCP-IP協(xié)議棧的實(shí)現(xiàn).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>設(shè)為首頁</A> <IMG height=13
src="自由風(fēng)OS夢工廠--實(shí)時操作系統(tǒng)uC-0S II下TCP-IP協(xié)議棧的實(shí)現(xiàn).files/fav.gif" width=15
align=absMiddle> <A
href="javascript:window.external.addfavorite('http://half.nease.net','自由風(fēng)OS夢工廠--嵌入式系統(tǒng)開發(fā)')">收藏本站</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>實(shí)時操作系統(tǒng)uC/0S II下TCP/IP協(xié)議棧的實(shí)現(xiàn)</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>本網(wǎng)站資源來自本站原創(chuàng)、網(wǎng)友來稿和摘自別處等途徑,在此敬告各位網(wǎng)友,下載和使用時要充分尊重作品版權(quán),對來自不同途徑的資源請分別參照<A
href="http://half.nease.net/info/declare.htm"
target=_blank>相關(guān)聲明</A>嚴(yán)格執(zhí)行。本站拒絕一切具有商業(yè)化色彩的使用與下載。萬望注意,特此聲明!</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>結(jié)合ez80和ARM7兩種系統(tǒng)上的具體實(shí)現(xiàn),說明了如何在嵌入式實(shí)時操作系統(tǒng)uC/0SII上移植實(shí)現(xiàn)LwIP這套TCP/IP協(xié)議棧,使uC/0S
II成為支持網(wǎng)絡(luò)的RTOS。</SPAN></P>
<P><SPAN class=p7>關(guān)鍵詞: uC/0S
II,TCP/IP,LwIP,網(wǎng)絡(luò)設(shè)備驅(qū)動</SPAN><BR></P>
<UL>
<LI class=p4>1 引言 </LI></UL>
<P><SPAN
class=p4>隨著嵌入式系統(tǒng)與網(wǎng)絡(luò)的日益結(jié)合,在嵌入式實(shí)時操作系統(tǒng)中引入TCP/IP協(xié)議棧,以支持嵌入式設(shè)備接入網(wǎng)絡(luò),成為嵌入式領(lǐng)域重要的研究方向。uC/0S
II是近年來發(fā)展迅速的一個開放源碼實(shí)時操作系統(tǒng),但它只是一個實(shí)時的任務(wù)調(diào)度及通信內(nèi)核,缺少對外圍設(shè)備和接口的支持,如沒有文件系統(tǒng)、網(wǎng)絡(luò)協(xié)議、圖形界面。筆者在多個嵌入式項目的開發(fā)過程中,以開源TCP/IP協(xié)議棧LwIP為基礎(chǔ),給uC/0S
II加上了網(wǎng)絡(luò)支持。下面就以uC/0S II +LwIP分別在8位MCU ez80和32位MCU
ARM7TDMI上的實(shí)現(xiàn)為例進(jìn)行說明。<BR>需要說明的是,筆者使用的ez80系統(tǒng)是Zilog公司的ez80190開發(fā)板,自帶網(wǎng)絡(luò)芯片。而ARM7系統(tǒng)是使用筆者參與開發(fā)的Skyeye,一個基于GDB的ARM7TDMI指令級軟件仿真器。Skyeye小組最近為Skyeye加上了軟件模擬的Ne2k兼容網(wǎng)絡(luò)芯片,可以運(yùn)行帶網(wǎng)絡(luò)支持的μcLinux和uC/0S
II。以下的全部相關(guān)程序和代碼都可以在Skyeye網(wǎng)站(hpclab.cs.tsinghua.edu.cn/~skyeye/)下載。</SPAN></P>
<UL>
<LI><SPAN class=p4>2 基于uC/0S II的網(wǎng)絡(luò)平臺概述</SPAN> </LI></UL>
<P><SPAN class=p4>嵌入式操作系統(tǒng)uC/0S
II是一個公開源代碼的占先式多任務(wù)的微內(nèi)核RTOS,其性能和安全性可以與商業(yè)產(chǎn)品競爭。uC/0S
II的特點(diǎn)可以概括為以下幾個方面:公開源代碼,代碼結(jié)構(gòu)清晰、明了,注釋詳盡,組織有條理,可移植性好。可裁剪,可固化。內(nèi)核屬于搶占式,最多可以管理60個任務(wù)。uC/0S
II自1992年的第一版(uC/0S)以來已經(jīng)有好幾百個應(yīng)用,是一個經(jīng)實(shí)踐證明好用且穩(wěn)定可靠的內(nèi)核。目前國內(nèi)對uC/0S
II的研究和應(yīng)用都很多。<BR>TCP/IP是Internet的基本協(xié)議,以其實(shí)用性、高效性已經(jīng)成為事實(shí)上的工業(yè)標(biāo)準(zhǔn)。嵌入式設(shè)備要與Internet網(wǎng)絡(luò)直接交換信息,就必須支持TCP/IP協(xié)議。目前嵌入式設(shè)備上TCP/IP方案有很多種,但面向低端應(yīng)用的開源嵌入式網(wǎng)絡(luò)平臺還很少見。<BR>uC/0S
II是一個富有開放色彩的RTOS,只要買一本書就可獲得源代碼,對學(xué)校和教育的使用完全免費(fèi),商業(yè)應(yīng)用的費(fèi)用相對也很低。但是它目前的一些第三方TCP/IP支持都是完全商業(yè)化的,用戶需要付費(fèi)才能獲得,很少給出源代碼,這影響了uC/0S
II的研究和推廣。通過把開放源代碼的TCP/IP協(xié)議棧LwIP移植到uC/0S
II上來,就獲得了一套可免費(fèi)研究、學(xué)習(xí)的嵌入式網(wǎng)絡(luò)軟件平臺。系統(tǒng)示意圖如圖1:</SPAN></P>
<P align=center><SPAN class=p4><IMG height=194
src="自由風(fēng)OS夢工廠--實(shí)時操作系統(tǒng)uC-0S II下TCP-IP協(xié)議棧的實(shí)現(xiàn).files/ucostcpip.jpg"
width=287><BR>圖1 uC/0S II+LwIP系統(tǒng)示意圖</SPAN></P>
<UL>
<LI><SPAN class=p4>3 開源TCP/IP協(xié)議棧LwIP簡介</SPAN> </LI></UL>
<P><SPAN class=p4>LwIP是瑞士計算機(jī)科學(xué)院(Swedish Institute of
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -