庆祝µC/OS诞生二十五周年之际,Jean Labrosse(Micrium公司的创始人,RTOS和嵌入式设计专家)认为这是澄清有关这个流行内核一些误区的好机会。

µC/OS,一款誉满天下的嵌入式实时操作系统(RTOS),今年迎来了它的二十五周岁。在此之际,正适合澄清多年来在嵌入式市场上有关本产品流传着的一些误区。


1、µC/OS内核是由社区开发的

绝对不是。我写了100%的源码,以及一系列描述µC/OS内核内部结构的书籍:µC/OS(1992),µC/OS-II(1998),和µC/OS-III(2008)。我得到唯一帮助是作为书作者,像大多数典型的作家一样,确实收到了很多来自嵌入式开发人员的反馈,相应的也就开发了相关功能来满足他们的要求。但在过去几年中,Micriμm的开发者一直遵循我建立Micriμm公司时制定地严格的编码指南来维护代码。

尽管如此,我依然总是热衷于听取客户的需求。最终,由于这个原因,µC/OS内核反映了用户需求。这样,我觉得“两全其美”。内核从用户和社区提交的反馈中受益,用户也得到了商业实体专业地维护支持。

2、µC/OS基于其他内核而来

µC/OS源于Ready System公司VRTX内核的灵感,但仅作为了解什么功能是必要时的一个指南。µC/OS是用C语言独立设计编写而成,从一开始设计就考虑了代码的高度可移植性。结果反倒是,其他内核受到了µC/OS内核结构的启发。案例:FreeRTOS最近增加了一些以前µC/OS-III独特的功能:任务信号量、任务消息队列、以及内核对象的静态分配等功能。而且,任务栈可以静态或动态地被分配到RAM任何地方。


3、µC/OS是一个实时内核,并非一个RTOS

当我设计µC/OS时,实时内核与实时操作系统(RTOS)是同一概念。1992年,每一个RTOS就是一个内核。或许我应该称它为µC/RTK,但我认为它更是一个微控制器(MCU)操作系统。因为,那个年代(1992年),操作系统比它们现在简单得多。现在RTOS的定义是值得商榷的。例如,FreeRTOS就是一个内核(如同µC/OS),但十多年来或µC/OS操作系统推出后,Richard Barry(FreeRTOS的作者)在他的内核名字上突出使用RTOS。


4、µC/OS受限64个任务

实际上对于最初的µC/OS,它在1992年发布时是仅支持64个任务。限制的原因是µC/OS针对地是小微控制器(通常是8位机)。我决定每项任务将被分配一个唯一的优先级,在位图(8×8位矩阵)中,由一位(a bit)表示(设置或清除)。对实时内核的一个极具吸引力的特性是我采用了一个非常有效的算法(设置或清除位),使执行时间是恒定和确定的。

1998年我们发布了µC/OS-II,同样使用位图算法。然而,可配置为8×8或16×16位图。因此可使用多达256个不同的任务和优先级。

我们在2008年发布了µC/OS-III,并且取消了每个优先级下只能有一个任务的限制。换句话说,相同优先级下可拥有多个任务。该特性使得互斥锁的优先级继承特性和同优先级下多个任务时间片轮转调度算法变为现实。我们保留了调度位图,但表的顺序颠倒了。因此,我们可以使用ARM Cortex-M处理器和其他体系结构上提供的前导零计数(CLZ)指令加快调度过程。事实上,如果你只需要32个优先级,调度算法可通过内嵌单一的汇编指令CLZ替换实现。

2017年我们发布了Micriμm OS(一个全功能的嵌入式操作系统),其中包含µC/OS5内核。我们跳过µC/OS-IV,因为Micriμm OS包含了极受欢迎的Micrium µC/系列产品中间件(文件系统FS,图形用户接口GUI,和协议栈)。这些模块中的一部分已经被标记为版本5,所以对那些已经是V5模块的版本号,我们不想倒退。µC/OS 5是深深地建立在µC/OS-III之上,且具有一些改进,并与其他Micriμm OS模块保持一致。


5、RTOS需要内存管理单元(MMU)

客户经常告诉我们,他们印象中的实时操作系统需要硬件内存管理单元。现实的情况是,它们并不需要,µC/OS也不例外。虽然MMU比以前更常见,但在使用实时操作系统时对MMU从来没有要求。


6、µC/OS-xx内核是免费的,仅仅作为爱好者,而不是专业人员使用

µC/OS内核是为专业用户而设计的,并已经在世界各地的成千上万的产品和系统中得到应用,其中包括NASA的好奇号火星探测器。µC/OS-II和µC/OS-III是在安全关键应用领域得到认证的操作系统。µC/OS 5基于μC/OS-III,尚未经过认证。下表汇总了认证状态。

如果您打算在盈利的商业产品中使用我们提供的内核,那么您需要支付内核使用许可费。另一层意思是说,µC/OS内核对于非商业性使用是免费的,而且事实上用户可下载的代码全部以源码形式提供。如果您不打算使用µC/OS内核盈利,那么您可以不为它付费。一般来说,学生,教育工作者,爱好者等可以下载并免费使用内核。


7、µC/OS-III书是用户指南

这些书不仅仅是用户指南,还可以用于教育和实践。当然,本书的质量和内容都经过多年的演进(从µC/OS书到μC/OS-III书)。最新的书(μC/OS-III)被设计为四个部分:

1. 这本书的前三分之二说明内核是什么,如何使用,以及用μC/OS-III作为示例说明内核如何工作。

2. 这本书的后三分之一讲了如何将μC/OS-III与单片机(MCU)和工具使用起来的示例。

3. 每本书都针对一个特定的评估开发板,以便您可以实际测试示例。

4. 最后,每本书包括获取一个免费的工具(编译器、汇编器、连接器/定位器,和调试器),让您在评估开发板上运行μC/OS-III实例。

µC/OS-III书有七个版本,每本对应一款不同的MCU和半导体供应商

     1. ST 和 STM32F107 (IAR工具)

     2. NXP 和 LPC1768 (Keil工具)

     3. Renesas 和SH7216 (HEW工具)

     4. Renesas和RX62N (HEW工具)

     5. Freescale/NXP和Kinetis K53 (IAR工具)

     6. Infineon XMC4500 (IAR工具)

     7. TI 和Stellaris LM3S9B92 (IAR 工具)


8、µC/OS内核不受欢迎

行业调查一致显示µC/OS内核被广泛应用。这些书也使得内核非常受欢迎。您可以免费从Micriμm公司的网站下载所有的µC/OS电子书(除了µC/OS版本1)。多年来,我们已经售出或免费提供(无论是打印或PDF格式)数十万份,全球范围内达到约占50%的嵌入式开发人员。有些书也已经被译成了好几种语言:

  • µC/OS被译成中文,且书的一部分翻译成日语。

  • µC/OS-II被译成中文和韩文。

  • µC/OS-III被译成中文。

除了这本书,µC/OS内核已经被移植到几乎所有的处理器上。随便一款处理器,μC/OS都很可能已经在它上面运行了。


9、µC/OS内核是第一款移植到众多ARM处理器上的OS内核

这绝对是真的。µC/OS是第一款移植到ARM6,ARM7和ARM9处理器上的OS内核。μC/OS-II也是第一款移植到Cortex系列处理器上的OS内核。同时,µC/OS内核被用来验证一些新的CPU架构,包括AMD 29000系列,Altera Nios和NIOS-II,Xilinx MicroBlaze,及其他处理器。事实上,ARM在其Cortex-M架构设计中的一些特点来源于µC/OS内核:

  • 针对节拍(tick)中断的专用定时器(称为SysTick)

  • CLZ(计数前导零)指令帮助µC/OS提高调度算法性能,同样用于浮点运算标准化

  • 针对上下文切换的可悬挂中断向量(称为PendSV handler)

  • 咬尾中断功能。在背靠背中断期间,避免无意义地保存和恢复CPU寄存器的操作

10、µC/OS内核代码不整洁,内核难以使用

我对编码风格和代码质量非常挑剔。别不相信我的话:Jack Ganssle(著名的嵌入式系统开发人员,作家,讲师和顾问)曾经说过Micriμm公司的代码是最漂亮的,是他所见过的最整洁的代码。内核的代码风格非常一致,注释充分,且非常高效。

例如,所有内核API,变量,数据类型和宏具有前缀“OS”,用户很容易依此使用和辨识内核结构。此外,编码风格约定,代码放在左边,注释在代码右边。这让程序员更容易遵循编码(如果他们需要的话)风格。我一直认为程序员不必局限于80列,就像很多年前的情况一样。

另一个编码风格约定是每一个功能模块都前缀一个评论标题块,描述函数的功能、参数、返回值等。通过浏览Micriμm公司的代码,你也会注意到一些其他细节点,如排列等号和排列注释分割符反映我们高度关注代码细节质量。

至于µC/OS内核使用很困难,情况并非如此。广泛的书籍,博客,应用笔记,培训材料,用户社区等开源资源,以及其自身统一的编码规范和详细的代码注释,使得µC/OS内核需要较少的技术支持即可运行起来。这些API是高度直观和一致的。


11、Micriμm公司将放弃µC/OS-II和μC/OS-III,只支持Silicon Labs的芯片

绝对不会。我们(Micriμm公司和Silicon Labs)肯定不会放弃这些已经非常流行的产品,以及对其他架构处理器的技术支持工作。实际上,我们打算仍旧继续对其他架构处理器提供支持。Micriμm公司已经支持大约45种处理器架构,因此对于考虑项目中使用内核的开发人员,选择我们已支持的处理器将会容易很多。

我们经常遇到个别客户要求为实际上已经支持的某款处理器架构编写移植。Micriμm公司不会因为被Silicon Labs的收购而改变继续提供技术支持的承诺。作为Silicon Labs一部分的Micriμm公司,其任务是继续支持Micriμm公司的新老客户,无论他们希望使用何种CPU。所以,如果客户已经使用并希望继续使用ST、NXP、TI、瑞萨、Altera、Xilinx等, Micriμm公司将一如既往地支持他们。


庆祝μC/OS操作系统25周年!
IAR Systems公司为瑞萨汽车应用的MCU RH850推出符合功能安全认证的工具

上一篇

下一篇

有关µC/OS的11个误区

本网站由阿里云提供云计算及安全服务 Powered by CloudDream