技术中心
 
 

学习RTOS 使用RTOS

   日期:2007-04-13     作者:管理员    

  长期以来,计算机科学专家们的杰作--实时系统(RTOS)与嵌入式应用产品开发工程师的理念之间存在着一道明显的沟壑。RTOS如"阳春白雪"和者甚寡。分析我国推动计算机嵌入式应用发展的这支队伍可以发现,他们中绝大多数是各个应用领域的专家,而没有受过计算机专业方面的专门训练。很多人都是从自学8位微处理器Z-80开始的,缺乏对计算机科学方面系统的理论知识的深层次理解。在8位CPU的嵌入式应用中这种矛盾并不突出,而当嵌入式应用走向32位,应用程序越来越复杂时,就显得力不从心。而科班出身的计算机专家又不可能对各个应用领域都熟悉。多数应用领域的开发人员习惯于画一块印刷线路板,画个程序框图,编一个软件,试一试,于是产品开发就完成了。从计算机科学的角度来看,不但开发出的产品存在着诸多的不安全隐患,这种开发产品的方法本身就不够科学。RTOS是计算机专家们多年潜心研究的成果,使用RTOS不仅增加了嵌入式应用系统的可靠性,缩短了产品的开发时间,而且应用程序的维护也会方便许多。

  在嵌入式产品开发中使用RTOS有很多好处,归纳起来主要有以下几方面,首先RTOS支持多任务,应用程序被分解成多个任务,程序

开发变得更加容易,便于维护,易读易懂。提高了开发效率,缩短了开发周期。再者,计算机对关键事件的处理在延迟时间上有保证,即系统的实时性可以保证好于某一确定的值。还有系统的稳定性、可靠性会得到提高。例如可以增加一些用于监控各任务运行状态的任务来提高系统的可靠性。

  价格因素限制了RTOS在我国嵌入式应用产品开发中的推广与普及。也许这才是"和者甚寡"的最主要原因。多数RTOS的商业产品都相当的贵,著名的RTOS价位在2万到3万美元之间,国内只有少数实力雄厚的单位买得起。使用中,由于许多商业RTOS软件都是所谓的黑盒子,即不提供源代码,用户知其然未必知其所以然。理解不透,用得不好,RTOS的优势也就不能全发挥出来。有些商业软件还要对开发出来的产品按件收费,费率从几美元到上百美元。给产品增加力额外的成本。

  随着操作系统走向开放,越来越多的带源代码的无版税软件、自由软件得到了广泛的认可与应用。自由软件Linux和可用于嵌入式应用的μCLinux的出现使RTOS不再神秘。一些商业RTOS软件开始公开源码。RTOS的一些自由软件频频在网上出现,自由软件μC /OS和廉价的μC/OS-Ⅱ就是很好的例子。RTOS的春天来了,广大嵌入式应用产品开发工程师与计算机专家间的沟壑在逐渐填平。

  μC/OS出自于美国的一位嵌入式系统专家Jean J.Labrosse。他后来成为"嵌入式系统会议"的顾问委员会委员,并在每年的"嵌入式系统会议"上讲演。最早的文章连载在美国1992年<<嵌入式系统编程>>杂志的5月和6月刊上。源码发布在该杂志的BBS上。1993年,美国的R&D出版社出了一本叫做"μC/OS the Real Time Kernel"的书,后来的几年中书的销量超过了15,000册。世界上数以千计的工程技术人员将μC/OS应用到了各个领域,如照像机业、医疗仪器、音响设备、发动机控制、网络接入设备、高速公路电话系统、ATM机、工业机器人等。近10年的应用史证明,这个RTOS是稳定可靠的,且不断有新版本推出。

  μC/OS已经将移植到了几乎所有知名的CUP上。移植的范例可以从网上下载。"μC/OS the Real Time Kernel"一书中附一张软盘,是μC/OS的版本1.08。关于版权,书中写到: 在您的应用中使用书中的代码不需要许可证。但是您得指出您的产品中使用了μC/OS。如果是卖源码得话,就有版权的问题了。

  1998年,作者决定出μC/OS的第二本书"μC/OS-Ⅱ the Real Time Kernel",并设立了正式的网站:WWW. uC/OS -Ⅱ.COM,给μC/OS增加了一些新的功能。并且增加了约200页的解释。当μC/OS的商业价值得到认可时,μC/OS-Ⅱ的版权政策也发生了变化,把目标代码嵌入到商业产品中去也需要版税了。最新版本的μC/OS-Ⅱ V2.51索价55.95美元。中国电力出版社购买了这本书的版权,译成了中文版,于2001年8月出版,中文书名是<<μC/OS-Ⅱ源码开放的嵌入式实时操作系统>>。

  这是一本出色的教材,清华大学已在嵌入式系统与单片机教学中使用了这本书。书中不但给出了一个实时内核的全部源代码,而且对这些代码做了详尽的解释。对实时操作系统中的一些基本概念做了详细的描述。源程序的写作风格、注释都相当规范、漂亮。读了这本书就会弄明白,一段段的程序是怎么协调工作的。如果只是将数千行的程序代码、数十个文件罗列在那里,读起来会相当费劲。商业软件不仅仅

是贵,而即使有些软件带源代码一起出售,也没有哪一个解释得如此详尽。

  μC/OS和μC/OS-Ⅱ是专门为计算机的嵌入式应用设计的,绝大部分代码是用C语言写的。CPU硬件相关部分是用汇编语言写的,总量约200行。汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU上。用户只要有标准的ANSI 的C交叉编译器,有汇编、连接等软件工具,就可以将μC/OS-Ⅱ嵌入到开发的产品中。

  μC/OS和μC/OS-Ⅱ是占先式(Preemptive)多任务实时内核,是基于优先级的,即总是让进入就绪态的诸任务中优先级最高的那个任务先运行。任务调度是用查表法完成的,速度快。每个任务都有互不相同的优先级。有64个优先级,最多支持64个任务。

  μC/OS和μC/OS-Ⅱ的另一特点是可裁剪,即只嵌入用户程序用得着的那些函数,即产品中既可以只用几个函数,也可以嵌入全部函数,这样内核占用的ROM/RAM资源,就可以依据产品调整。裁剪是通过条件编译实现的。作者尽了极大的努力,使内核占用的资源尽量少。

  μC/OS-Ⅱ这本书中提供的内核源代码以及几个应用的例子是80x86 CPU为对象的

。读者可以在任何一台PC机上用PC机上的标准的C编译器对这些代码编译,然后在Windows中的DOS窗口下运行RTOS,边读书,分析书中所附的源代码,边实践,运行μC/OS-Ⅱ,找到RTOS的感觉以后,再把μC/OS-Ⅱ移植到自己熟悉的一种CPU上去。可以从网上下载移植的范例。由于使用的编译器不同,网上的范例未必能直接使用,故一定要读一读源代码,用这种方式学习和掌握一个实时内核,直到有勇气对它做一些改动和优化。因为μC/O-II是为了嵌入式应用编写的通用软件,它不得不强调诸CPU有共性的那些方面,并将汇编代码、CPU硬件相关部分代码压缩到最小,不可能照顾到不同CPU的各自特点。而我国的用户一般对自己用过的一、两种CPU非常熟悉。读懂这些源码以后,根据不同CPU的特长,对μC/OS-II中相当多的函数可进一步优化,改善RTOS的实时性。

  虽然μC/OS-II仅仅是一个实时内核,但有了这个内核就有了良好的开始。在此基础上许多功能都可以加上去,如内存管理、TCP/IP支持、远程调用甚至文件系统。网上出现了基于μC/OS-Ⅱ的商业产品广告。以μC/OS-Ⅱ为基础,自己做一些功能软件也不难,也有一些开放的资源可以参考。以TCP/IP为例,英国人Jeremy Bentham的"TCPIP Lean: Web Server for Embedded System" 一书就教您如何将TC/PIP嵌入8位单片机。

  


 


 
  
  
  
  
 
更多>同类技术
 
全年征稿 / 资讯合作
 
推荐图文
推荐技术
可能喜欢