自从1994年回清华大学任教以来,我一直在寻觅一本讲述嵌入式实时操作系统的好教材。最后,在茫茫书海中找到这本μC/OS-II。本书由Jean J. Labrosse先生撰写,自出版以来就获得了很好的评价。对理工科大学的本科生和研究生来说,这是一本极好的教科书,而对于开发计算机嵌入式应用产品的工程师来说,也是一本实用价值极高的参考书。说它是一本好书,我认为,至少有以下几方面是那些泛泛介绍嵌入式实时系统原理的书所无法比拟的。首先,本书不但提供了一个完整的嵌入式实时内核的源代码,而且对这些代码的细节作了详尽的解释,它不仅告诉读者这个实时内核是怎么写的,还解释了为什么要这样写。而商业上的实时操作系统软件不但价格昂贵(一般都在5千到2万美元的价位上),而且其中许多都是所谓黑盒子,即不提供源代码。
再有,源代码的绝大部分是用C语言写的,经过简单的编译,读者就能在PC机上运行,边读书、边实践。由于用汇编语言写的部分只有200行左右,该实时内核可以方便地移植到几乎所有的嵌入式应用类CPU上。移植范例的源代码可以从因特网下载。
最后,也是最重要的,从最老版本的实时内核μCOS,以及后来的μC/OS,到新版本的μC/OS-II,已经有了8年的历史。8年来,许多行业都有成功应用该实时内核的实例,这些应用的实践是该内核实用性、无误性的最好证据。
所以,向读者介绍μC/OS-II,不能不从原书作者8年前的第一本书《μC/OS The Real Time Kernel》谈起。我得知μC/OS是在1995年。当时我还在欧洲核子研究中心,那里是W W W的发源地。曾经是该中心计算部主任的Verker K博士,为筹备中的“国际第四届实时系统在物理中的应用讲习班?推荐了这本书。因当时国内找不到该书,只能托去美国出差的一位朋友帮忙。得到这本书以后,我将其推荐给我所有的研究生,并在几个项目中成功地应用了μC/OS-II。
在中国嵌入式2000年会上,我向与会者介绍了这本书,并得知有些国内同行也在用μC/OS。而在嵌入式应用中使用实时操作系统(RTOS,Real Time Operating System)已成为当前嵌入式应用的一个热点、一种时尚,是单片机应用从低水平向高水平的一个进步。长期以来,开发嵌入式应用的工程师们一般只是某应用领域的专家,他们对计算机的理解尚不能与计算机专家相比。他们心目中的计算机只是用CPU、存储器、I/O三部分组成的,并没有把操作系统看成计算机必不可少的一部分,往往习惯于硬件调通,写个程序,系统工作了,开发工作也就完成了的模式。而不知道他们的程序中存在着相当多隐患。而计算机专家们往往缺乏各应用对象的知识,不太有能力深入到某具体应用的深层次。这就形成了计算机专家与嵌入式应用工程师之间的一道缝隙。这个缝隙在8位单片机(MCU)中不甚明显,而在16位、32位MCU系统中则十分明显。RTOS的使用与推广,实际上是在填补这道缝隙。它教会应用工程师如何利用计算机科学数十年发展而来的精美成果,使自己的产品更可靠、更上档次、开发周期更短。由于商业上的RTOS软件过于昂贵,国内的大专院校以及大多数嵌入式产品开发人员难以承受,使用μC/OS-II不失为一种很好的选择。
根据我们的经验,使用μC/OS-II必须首先读懂这本书。建议读者先在PC上试试这个内核是否能顺利转起来。做到这一点并不难,只要有PC上的Borland C编译器即可,下一步是移植到某一种读者熟悉的CPU上去。虽然移植范例在网上可以下载,但由于编译器或硬件的结构不同,这些下载的范例并非都是拿来就能用,有的还有错误。移植μC/OS-II到不同的处理器也不困难,条件是要有相应的C编译器。用这个内核完成一个应用项目以后,会对嵌入式实时系统有更深的理解。而当读者理解了这些代码之后,就会发现,μC/OS-II有许多值得改进的地方。因为μC/OS-II是为嵌入式应用编写的通用软件,它不得不强调诸CPU有共性的那些方面,并将汇编代码及CPU硬件相关部分代码压缩到最小,不可能照顾到不同CPU的各自特点。而我国的用户一般对自己用过的一、两种CPU非常熟悉。读懂这些源码以后,根据不同CPU的特长,对μC/OS-II中许多函数可进一步优化。由于μC/OS-II只是一个有源码的实时内核,若调试手段不很完备,这项工作是极具挑战性的。但这一过程将使读者能够从学习、研究到掌握进而完全拥有一个属于自己的实时内核。
由于原版书在国内很难找到,去年,我在欧洲核子研究中心工作期间,曾经通过电子邮件与原书作者Labrosse先生,以及原著出版商R&D出版社探讨,如何把这本书介绍给中国读者,得知中国电力出版社有意选择一些计算机嵌入式应用方面的好书翻译出版,于是我向该出版社推荐了这本书。感谢中国电力出版社及时购买了本书的翻译版权,为使中国读者能尽快看到这本书,研究过μC/OS或μC/OS-II的我的几名研究生也参与了这本书的翻译工作。现在终于看到它的诞生,欣喜之情,不及言表。