在某种程度上来讲,我很难相信μC/OS内核25岁了,也许是因为我不愿意去相信吧!这个内核有一个很有趣的历史,很大程度上是因为它开始时并非作为一个商业项目。但25年过去了,我发现自己仍在μC/OS产品上努力工作着。现在似乎是回顾这个软件起源的好时机,因为今天开发者过往的挑战经历和以前一样。而有所不同的是,现在已经证明了,认证的实时操作系统(RTOS)μC/OS-II和μC/OS-III才是适用的商业化软件。

 

μC/OS的故事始于1989年,当我加入位于罗德岱尔堡,佛罗里达州的Dynalco控制公司,并开始为一个大型工业发动机的基于微处理器的点火控制系统工作。我确信一个RTOS内核将有利于这个项目的进展。最初想使用一个我有使用经验的内核,但出于对预算的考虑迫使我们只能选择另一款不太昂贵的内核。很快我就发现为了这款看似便宜的RTOS,浪费了我很多时间。接下来的两个月,我与技术支持联系,试图确定为什么连最简单的应用程序也无法运行起来的原因。原来,我是这个内核的第一个客户,这意味着我意外地成为一个beta测试者。

 

穷途末路之时,我还是回到了我熟悉的那个更昂贵的内核产品上,并迅速将一个简单的程序运行起来了。可是没过多久,我发现自己陷入了另一个僵局,因为新的操作系统似乎包含了一个bug。报告后,我被告知90天保修期已过,所以我不得不购买维护合同。即便有这个合同就位,供应商还是花了六个月才消除了这个bug。总之,在购买软件一年后,我完成了我的点火系统的设计。

 

当这一切都在进行的时候,我开始开发自己的内核。那时,我天真地认为,一个内核真正做的所有事情是保存和恢复CPU寄存器,所以写一个内核不应该是一个特别具有挑战性的事情。我问自己:“这能有多难?”晚上和周末,我在都忙于写这个内核。虽然我并不感到惊讶,但这比我预料的要困难得多。开始这个内核项目大约一年后,我的第一个RTOS完成了。我起了名字μCOS,意思是“微控制器操作系统”,用希腊字母“μ”表示微小。

 

μC/OS根据严格的标准进行设计,这个标准是我在Dynalco创建并颁布的。这个操作系统的源代码具有大量的空行,措辞严谨的注释和统一的命名。该内核是高度可移植的,进一步证实了的精简编码技术的优势。虽然μC/OS像它内核先驱一样,具有少量与处理器相关特定功能的函数,这些例程与操作系统的其他部分代码清晰的分开。这意味着工程师可以很容易地将 μC/OS 适应到新的CPU架构。针对μC/OS实施的编码标准一直保持到今天。

 

作为这样一个新产品,我是唯一意识到μC/OS操作系统的优点的人。我渴望向别人描述我的新软件,我写了一篇论文,解释了μC/OS内部工作原理,发表在1992年5月和6月的嵌入式系统编程杂志上。工程师们非常高兴看到一个高质量内核的内部工作原理被披露,于是他们就陆陆续续地下载了μC/OS源码。此后不久,出版《C用户杂志》的出版商-R&D出版社,表示有兴趣出版一本完整的 μC/OS图书。在1992年底,这本完整的书名为“μC/OS:实时内核”出版了,并最终出售超过15000本。

 

由于稳定性始终是内核的关键所在,几年来,我仅仅对μC/OS进行了微小的改动。然而,新的功能需要添加到内核中,所以我决定对操作系统(和书)做大的改进。这个改进的操作系统成为μC/OS-II,它提供了许多其前身缺乏功能,包括堆栈检测功能,钩子函数和安全方式的动态内存分配。

 

1998年,以“MicroC/OS-II:实时内核”命名的新版本图书出版了。一个鲜为人知的事实,标题由“mu”改变到“micro”,是因为出版商的要求。新书内容是第一本书的近两倍,新的文本伴随着源代码,这意味着成千上万的开发人员能够测试内核,并提供有价值的反馈。

这本书发行后不久,我创建Micrium公司商业化这个内核。一方面,这本书带动了大量的大学课程围绕源代码开发;另一方面,越来越多的工程师们由于其可靠性,在商业中使用μC/OS-II。明确的证据源于2000年7月,一款嵌入μC/OS-II的航空电子产品获得DO-178B A级认证。由联邦航空管理局(FAA)承认的这一认证表明,操作系统软件被认为是足够安全的,可以在飞行器上使用。对于μC/OS-II其他的认证,包括食品和药物管理局上市前通知(premarket notification 510(k)),医疗设备的上市前许可,以及用于工业控制的IEC-61508。直到今天,很少有几个操作系统已经成功地完成认证软件必须经受的严格测试。

 

引入μC/OS-II10年后的2008年,μC/OS家族增加了第三代:μC/OS-III。又一次,伴随着新书,RTOS设计得更加令人满意的,包括内核的描述,针对特定的MCU和制造商平台的例子,以及使用一个低成本的评估板,免费得到附加例子以及工具(编译器、汇编器、链接器)。

 

这意味着,不仅可以让读者了解RTOS内部工作的原理,他们也可以在一个真正的硬件上尝试它。根据μC/OS-II用户反馈,μC/OS-III实时操作系统包含重大的改进和更多功能。例如,它支持多个同一优先级任务,真正的优先级继承互斥,直接向任务发送信号的能力,发送消息到一个任务,及更多功能。2015年5月,认证软件公司(Validated Software)发布可用于μC/OS-III认证的认证文档,表明μC/OS-III也可以用于安全关键应用。

 

2016年10月,Silicon Labs收购Micrium公司,Micrium公司的历史开启了一个新的篇章。我们仍然致力于支持所有μC/OS-II和μC/OS-III的客户,不论他们使用何种单片机或CPU制造商产品。25年前,我并不会意识到我的“业余时间”项目会怎样,但无论如何我不会交易它。我很荣幸写了一个内核,它已经教育了许多业内工程师,我期待着在编码的最佳实践和使用RTOS内核的好处上继续教育业界的人士。


IAR发布新的EWARMv8.11.2版补丁包
有关µC/OS的11个误区

上一篇

下一篇

庆祝μC/OS操作系统25周年!

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