《μC/OS-II——源码公开的实时嵌入式操作系统》一书是Jean J. Labrosse 所著,“Micro μC/OS-II The Real-Time Kernel”一书的中译本。该书于2001年7月出版以后,引起了国内嵌入式实时系统应用领域中科技人员的极大兴趣。一些有名的大学已经或者打算把它当作教材用于教学。有的公司提出以之培训开发嵌入式应用的员工。在实际应用中,用户提出较多的问题主要有:μ C/OS-II的应用领域和适用环境如何,交叉编译工具问题,如何移植到用户目标系统上,以及如何实现基于 μC/OS-II的著如IC/PIP网络协议等问题。此外还有使用许可证问题等,本文拟对这些 μC/OS-II使用中的热点问题做一简要回答。
在后来的几年中,用户纷纷将μC/OS移植到了各种CPU上,如Motorola的68HC11、68HC1216、68K、CPU32、CPU32+、PowerPC等。Intel的80X86、奔腾、奔腾-II、8051、8052、MCS-251、80196、8096等;日立的64180、H8/3XX系列、SH系列;西门子的80C166和TriCore、ARM的ARM6、ARM7、Analog的AD21xx、TI的TMS320飞利浦的XA、三菱的M16、M32等等。应用领域涵盖了如照相机业,医疗器械、音响设施,发动机控制、网络设备、高速公路电话系统,自动柜员机、工业机器人等。 到1998年,作者出了他的第二本书“μC/OS-II The Real-Time Kernel”,给μC/OS增加了一些新功能,对源码进行了整理,说明得更详尽,书的厚度也增加了200页,Jean J. Labrosse先生开通了μC/OS-II的商业网站,并不断推出新版本。
μC/OS-II的源码和目标码可以在有资质的大学中免费提供给学生用于教学目的。而以盈利为目的的将μC/OS-II的目标代码嵌入到产品中去则应得到“目标代码销售许可证”。 就准备从事嵌入式应用开发工作的大学生、研究生而言,μC/OS-II无疑是一本极好的教材。对于从事嵌入式应用开发工作的工程技术人员来说,μC/OS和μC/OS-II则是一件很实用的工具。
一般情况下,交叉编译器是要向第三方购买的,选择C编译器厂商时,可参考μC/OS-II网络上移植范例栏目,该栏目中说明了移植时所用的编译器是什么公司的。 免费的C编译是Linux下的gcc。几乎所有32位CPU都可以使用gcc交叉C编译器。目前一些Windows环境下的软件如Cygwin ASHWare等都允许在Windows环境下使用Linux的命令行方式,是不错的开发工具,但由于Linux下的应用程序都相当复杂,非计算机方面的高级专业人才难以掌握。Linux是自由软件,版本也很多,有些版本不很稳定,与手册难以对应。特别是遇到问题时,非专业人士很难解决。
我们知道,在嵌入式应用中使用实时操作系统是有系统资源开销的,也就是额外的ROM/RAM开销和CPU负荷。由于实时操作系统引起的CPU额外负荷一般在5%以下,故不成为使用中的问题,而对于单片机,且工作在单片方式下,则要考虑由于引入操作系统带来的存储器开销。由于目前单片机中FLASH的容量已经可以做到几十K乃至几百K,而μC/OS-II的ROM开销一般在3K到10K之间,故ROM的开销对于单片类应用也不成为问题。在单片方式下运行μC/OS或μC/OS-II要考虑的是RAM的开销,由于目前单片机片内静态随机存储器SRAM还不可能做得很大,一般只有几百字节至十几K,虽然我们也给出过在只有512字节的68HC08GP32上运行 μC/OS-II的例子,但笔者认为这只是一个用于学习的例子,可运行的任务只有几个,可使用的操作系统的功能也少得可怜。笔者认为,至少有2K的RAM空间,使用μC/OS或μC/OS-II才有意义。当然如果嵌入式系统中使用了外扩的RAM和ROM,使用实时操作系统则全然没有问题。
|