📄 自由风os梦工厂--嵌入式实时操作系统uc-os-ii的应用与新发展.htm
字号:
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>回顾嵌入式RTOS在我国应用与推广的历程,几年前,RTOS的概念还很少为嵌入式系统工程师接受。这是由于8位单片机时代,应用程序相对简单,设计者使用RTOS的意识不强;另一方面,商业RTOS软件过于昂贵。两年前的这个时候,笔者应《电子产品世界》之邀,在"嵌入式2000"学术研讨会上提出,以免费的RTOS-uC/OS的学习与应用为突破口,提倡"学习RTOS,使用RTOS",不久以后,《uC/0S-II
the Real Time
Kernel》一书的中译本出版了。一些著名的大学开始用uC/0S-II作教材给研究生讲述RTOS。 </P>
<P
class=p4>两年来,笔者看到很多国内关于嵌入式系统应用的杂志,都刊登了关于uC/OS,uC/0S-II移植与应用的文章。这些刊物对RTOS嵌入式应用的推广功不可没。mC/OS以及uC/0S-II在国内普及与推广的意义首先是提高了嵌入式工作者对RTOS的认知度,强化了学习使用RTOS的观念与意识,其后才是mC/OS、uC/0S-II本身的实用价值。mC/OS、uC/0S-II是一个小的实时内核,源码公开,有详尽的解释。正是因为其小,才便于研究、理解和掌握。
</P>
<P
class=p4>两年来,笔者除给在校生上课外,也应邀为社会上的用户、公司举办过培训与讲座,从用户反映的问题来看,主要涉及"移植";与"应用"这两个方面。以下,笔者就如何开发基于uC/0S-II的应用软件和移植过程中使用的C编译器问题提出一些建议,并简要介绍μC/0S-II的最新版本<SPAN
class=p4>V.2.52和uC/0S-II一书的第二版,供读者参考。 </SPAN></P>
<UL>
<LI class=p4>如何开发基于uC/0S-II的应用软件 </LI></UL>
<P
class=p4>基于uC/0S-II的应用软件由于uC/0S-II的商业价值得到了认可,一些基于uC/0S-II的商业软件也可以买到,如TCP/IP协议栈、蓝牙通信软件、红外通信软件等(见UCOS-III.com网站)。我们这里说的是如何自己开发这类应用软件。以TCP/IP协议栈为例,如果需要全套的TCP/IP功能,可以直接使用嵌入式Linux
,如mCLinux、
RTEMS等。以mCLinux为例,内核本身要占用512KB内存,TCP/IP部分也有70B至80KB。mC/OSII特定的是一个小内核,本身占用内存在10KB量级上。对于特定的应用,嵌入uC/0S-II的产品往往只需要TCP/IP中某一小部分。参照TCP/IP协议标准和一些公开出版的图书,以及网上的源码资源,自己写这一部分并非十分困难。举例说来,如果用户已经完成了一套基于uC/0S-II的单片机控制系统,而单片机仍有一定的剩余负荷可支持网络通信,用户希望能通过Internet网远程控制该系统。在硬件上,可以通过RS-232和Modem拨号上网,也可以加一片网络接口芯片如RTL8019直接上网。软件开发方面,TCP/IP的标准可以从www.rfc-editor.org中找到,一本不错的参考书,是英国人jemy
Bentham所著《TCP/IP Lean Web Servers for Emb-edded
Systems》。这本约400页的书后所附光盘中有实现一个瘦服务器的全部源代码。书中以Microchip的8位单片机PIC16CF6为例,实现了单片机通过Modem拨号上网的功能。参照上述资料,我们在8位、16位、32位
Motorola单片机上也实现了通过RTL8019
Internet网接口芯片直接上网的功能。在写这些软件时,我们发现,在uC/0S-II下写TCP/IP通信软件,比传统的前后台系统要方便很多。单片机要在完成原来控制系统功能的前提下,同时实现网络通信,又是发送又是接收,没有RTOS支持简直不可想象。从代码长度看,实现基本功能的TCP/IP协议栈只需要大约7KB目标代码,比使用mCLinux显然有优势。上面提到的瘦服务器(Lean
Server)
一书是一本畅销书,其第二版已经出版了,据悉机械工业出版社已购买了中译本版权,希望不久的将来能见到该书的中译本。</P>
<UL>
<LI class=p4>uC/0S-II的移植 </LI></UL>
<P class=p4><SPAN
class=p4>uC/0S-II是专门为单片机嵌入式应用设计的实时操</SPAN>作系统内核,主体用标准的ANSI
C语言写成,可移植性极好。目前已被成功地移植到四十多种CPU上,包括8位、16位、32位及64位单片机,包括若干种DSP,因
为移植的范例大多可以从网上下载,故移植起来并不困难。综合来自各方面的反映,移植难度并不在于uC/0S-II源代码本身,而在于不同用户使用了不同的C编译器,由于编译器的差异而引发的移植方面的问题有时很难
得到友人的帮助。而对于嵌入式应用潜在市场群体-正在高校就读的研究生们说来,困难还在于:几乎所有用于单片机的C编译器都是商业软件,其中有些还相当贵。
<BR>使用自由软件Linux下的C语言交叉编译器GNU
gcc作为开发工具来编译移植uC/0S-II是一个不错的选择。<BR>使用自由软件开发嵌入式应用的意义决不仅限于经济上节省开支。学习使用自由软件过程,实际上是培养IT高手的过程。自由软件将造就一大批有共同语言的软件开发精英,GNU
gcc交叉编译工具支持大多数知名的16位、32位嵌入式应用CPU,如Motorola的68HC11/12、M68K、CPU32、ColdFire
、PowerPC,AMD的AMD29K,Intel的i386、Intel960,其它如著名的ARM、Thumb、M32、MIPS、RT、SPARC、DEC的Alpha、
VAX等,还包括TI的TMS32 DSP等。
<BR>自由软件有强大的网上技术支持是公认的,不断推出的升级版本表明自由软件的强大生命力。使用GNU
gcc作为交叉编译器的难点不在于交叉编译器的用法本身,而在于搭建Linux下的开发环境。这一部分工作在国外一般由专门的系统管理员来做。而国内由于公司的规模较小,往往没有专门的系统管理员,这部分工作要自己做,从而增加了Linux系统下自由软件的使用难度。使用中的另一个难点是,遇到问题时常常不知道如何处理。要学会看系统提供的帮助信息,向Linux的高手请教,校园内利用BBS的交流是一种学习的极好方式。还有一个办法是在网上搜索,因为你遇到的问题也许过去别人也遇到过,解决办法可能网上就有。再有一个办法就是直接给作者发电子邮件。自由软件有源码,大多都有作者的Email地址。如果uC/0S-II的移植以GNU
gcc交叉编译器为基础,讨论起来共同语言会更多些,移植会更容易。
一些芯片生产商在推出其嵌入式应用芯片的同时就提供了uC/0S-II的移植代码,如Motorola的16位DSP
56800系列,移植代码包含在系统开发工具SDK中,C编译器采用其子公司metrowerks的codewarrior。
虽然移植不难有现成的例子可参考,但笔者仍认为移植是一个重要的学习过程,这一过程的意义远大于移植后的结果。这一过程有助于提高对RTOS的认识与理解,从而提高嵌入式工作者的理论与技术水平。
</P>
<UL>
<LI class=p4>uC/0S-II的新进展 </LI></UL>
<P
class=p5>两年前,我们介绍给读者的uC/0S-II是uC/0S-II最初的版本,它以软盘的形式附在《uC/0S-II
The Real Time
Kernel》一书的后面。该书中译本所附的光盘中也是这个版本。该版本称作V.2.0版本。V.2.0以下的版本指mC/OS。在V.2.0基础上稍做改动的版本是V.2.04,出现在2000年11月。到2001年6月,作者推出了V2.51版本。在这一版本中,主要增加的新功能有:互斥型信号量和事件标志。
今年上半年,CMP公司出版了《uC/0S-IIThe Real Timce
Kernel》的第二版。书中所附光盘中给出了uC/0S-II
VV2.52版的源代码。版本V2.52在V2.51的基础上做了多处修改。比起该书第一版,新版的uC/0S-II一书增加了很多新内容,如介绍系统服务,第一版中只用了一条来描述,而新版书中扩展到6条。在如何移植uC/0S-II这一条中,增加了移植后如何测试uC/0S-II(详见www.ucos-ii.com网站)。</P></TD></TR></TBODY></TABLE>
<P
class=p4> </P><!-- InstanceEndEditable --><BR></TD></TR></TBODY></TABLE><BR></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=750 align=center border=0>
<TBODY>
<TR>
<TD background=自由风OS梦工厂--嵌入式实时操作系统uC-OS-II的应用与新发展.files/bot.gif height=40>
<DIV align=center><A href="http://half.nease.net/info/about.htm"><FONT
color=#666666>◇</FONT> 关于本站</A> <FONT color=#666666>◇</FONT> <A
href="http://half.nease.net/info/server.htm">网站服务</A> <FONT
color=#666666>◇ </FONT><A
href="http://half.nease.net/info/declare.htm">网站声明</A> <FONT
color=#666666>◇ </FONT><A
href="http://half.nease.net/info/help.htm">帮助信息</A> <FONT
color=#666666>◇</FONT><A
href="http://gb.go98.com:81/gbbs.cgi?user=freewind" target=_blank> 留 言
簿</A> <FONT color=#666666>◇</FONT> <A
href="mailto:freewindos@sina.com">给我写信</A> <FONT
color=#666666>◇</FONT></DIV></TD></TR>
<TR bgColor=#cccccc>
<TD bgColor=#ffffff height=100>
<DIV align=center>
<P class=p7 align=center><FONT color=#666666>★ Copyright © 2003 FreeWind
Studio All Rights Reserved ★<BR><IMG height=20
src="自由风OS梦工厂--嵌入式实时操作系统uC-OS-II的应用与新发展.files/vline.gif" width=1><IMG
height=20 src="自由风OS梦工厂--嵌入式实时操作系统uC-OS-II的应用与新发展.files/hline.gif"
width=102> 自由风工作室版权所有<FONT color=#ffffff> </FONT></FONT><FONT
color=#666666><IMG height=20
src="自由风OS梦工厂--嵌入式实时操作系统uC-OS-II的应用与新发展.files/hline.gif" width=102><IMG
height=20 src="自由风OS梦工厂--嵌入式实时操作系统uC-OS-II的应用与新发展.files/vline.gif"
width=1></FONT></P>
<P class=p7 align=center><FONT class=p2 color=#666666><IMG
src="自由风OS梦工厂--嵌入式实时操作系统uC-OS-II的应用与新发展.files/count.png"
align=absMiddle></FONT></P></DIV></TD></TR></TBODY></TABLE>
<DIV id=Layer1
style="Z-INDEX: 1; LEFT: 221px; VISIBILITY: hidden; WIDTH: 49px; POSITION: absolute; TOP: 289px; HEIGHT: 45px"><FONT
class=p2 color=#666666>
<SCRIPT>var tc_user="guojingfen";var tc_class="2";</SCRIPT>
<SCRIPT src="自由风OS梦工厂--嵌入式实时操作系统uC-OS-II的应用与新发展.files/stat.js"></SCRIPT>
</FONT></DIV>
<P align=center><SPAN class=p7><FONT class=p2 color=#666666></FONT></SPAN></P><!-- InstanceEnd --></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -