嵌入式系统是以应用为中心,软硬件可裁减的,适用于对功能、可靠性、成本、体积、功耗等综合性要求严格的专用计算机系统。具有软件代码小、高度自动化、响应速度快等特点,特别适合于要求实时和多任务的体系。
嵌入式操作系统作为嵌入式系统中极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。嵌入式操作系统具有通用操作系统的基本特点,能够有效管理越来越复杂的系统资源;能够把硬件虚拟化,使得开发人员从繁忙的驱动程序移植和维护中解脱出来;能够提供库函数、驱动程序、工具集以及应用程序。与通用操作系统相比,嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有独特之处。
嵌入式操作系统伴随着嵌入式系统的发展经历了以下4个阶段。
第一阶段:无操作系统的嵌入算法阶段,以单芯片为核心的可编程序控制器形式的系统,具有与监测、伺服、指示设备相配合的功能。应用于一些专业性极强的工业控制系统中,通过汇编语言编程对系统进行直接控制。系统结构和功能都相对单一,处理效率较低,存储容量较小,几乎没有用户接口。
第二阶段:以嵌入式微控制器为基础、简单操作系统为核心的嵌入式系统。其通用性比较差,系统开销小,效率高;一般配备系统仿真器,操作系统具有一定的兼容性和扩展性;应用软件较专业,用户界面不够友好;系统主要用来控制系统负载以及监控应用程序运行。由于需要管理的资源有限,其操作系统代码量小,这些运行于嵌入式微控制器的嵌入式操作系统更强调于实时性而非界面,因而被广泛称为实时操作系统。其典型代表为RTX51。
第三阶段:通用的嵌入式实时操作系统阶段,以嵌入式操作系统为核心的嵌入式系统,能运行于各种类型的嵌入式微处理器上,兼容性好;内核精小,效率高,具有高度的模块化和扩展性;具备文件和目录管理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能;具有大量的应用程序接口(API);嵌入式应用软件丰富。
第四阶段:以基于Internet为标志的嵌入式系统。这是一个正在迅速发展的阶段。目前大多数嵌入式系统还孤立于互联网之外,但随着Internet的发展以及Internet技术与信息家电、工业控制技术等结合日益密切,特别是物联网技术的出现,嵌入式设备与Internet、通信网的融合将代表着嵌入式技术的真正未来。
下面介绍几种具有代表性的嵌入式操作系统。
1.VxWorks
VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是Tornado嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,使其在嵌入式实时操作系统领域占据一席之地。VxWorks具有可裁剪微内核结构、高效的任务管理、灵活的任务间通信、微秒级的中断处理、支持POSIX 1003.1b实时扩展标准、支持多种物理介质及标准的完整的TCP/IP网络协议等,VxWorks由于具有极高的实时性和可靠性,在工业控制领域广泛应用。
然而,VxWorks价格昂贵。由于操作系统本身以及开发环境都是专有的,价格一般都比较高。不提供源代码,只提供二进制代码。由于它们都是专用操作系统,需要专门的技术人员掌握开发技术和维护,所以软件的开发和维护成本都非常高,并且支持的硬件数量也很有限。
2.WindowsCE
WindowsCE与Windows系列有较好的兼容性,从而成为Windows CE的一大优势。其中WinCE3.0是一种针对小容量、移动式、智能化、32位、模块化的实时嵌入式操作系统。它能在多种处理器体系结构上运行,通常适用于那些对内存占用空间具有一定限制的设备。操作系统的基本内核需要至少200KB的ROM。然而,从技术角度上讲,Windows CE作为嵌入式操作系统有很多的缺陷:没有开放源代码,使应用开发人员很难实现产品的定制;在效率、功耗方面的表现并不出色,而且和Windows一样占用过多的系统内存,运行程序庞大;以及版权许可费等都是需要考虑的因素。
3.嵌入式Linux
Linux最大的特点是源代码公开并且遵循GPL协议,在近年来成为应用热点。由于其源代码公开,人们可以任意修改,以满足自己的应用,并且编码调试也很容易。遵从GPL,无须为每例应用交纳许可证费。有大量的应用软件可用,由于开源和免费,使得软件的开发和维护成本很低。它还具有优秀的网络功能。从技术上来说,稳定性是Linux本身具备的一个很大优点,内核精悍,运行所需资源少,十分适合嵌入式应用。此外,它支持的硬件数量庞大,在通用市场上很有竞争力。(www.xing528.com)
嵌入式Linux系统中常用的BootLoader有ArmBoot、RedBoot、Blob、U-Boot等。其中ArmBoot适合于采用ARM架构CPU的开发板,PPC-boot用于采用PowerPC架构CPU的开发板。目前这两种BootLoader都已停止开发。U-Boot是sourceforge网站上的一个开放源代码的项目。它可支持PowerPC MPC5xx、MPC8xx、MPC82xx、MPC7xx、MPC74xx、ARM(ARM7、ARM9、StrongARM)处理器和VxWorks、NetBSD、QNX、RTEMS、ARTOS、LynxOS等嵌入式操作系统。事实上,U-Boot对PowerPC系列处理器的支持最完善,对Linux操作系统的支持最好。
嵌入式Linux也并非完美无缺。在嵌入式系统上运行Linux的一个缺点是Linux体系提供实时性能时需要添加实时软件模块,而这些模块运行的内核空间正是操作系统实现调度策略、硬件中断异常和执行程序的部分。由于这些实时软件模块是在内核空间运行的,因此代码错误可能会破坏操作系统,从而影响整个系统的可靠性。这对于实时应用将是一个非常严重的弱点。
4.µC/OS-Ⅱ
µC/OS-Ⅱ是著名的源代码公开的实时内核,是专为嵌入式应用设计的,可用于8位、16位和32位单片机或DSP。它是在原版本µC/OS的基础上做了重大改进与升级,并有了近十年的使用实践,有许多成功应用的实例。它具有如下主要特点:
1)公开源代码。很容易将操作系统移植到各个不同的硬件平台上。
2)可移植性。绝大部分源代码是用C语言编写的,便于移植到其他微处理器上。
3)可固化。
4)可裁剪性。有选择地使用需要的系统服务,可以减少所需的存储空间。
5)抢占式。完全抢占式的实时内核,即总是运行在就绪条件下优先级最高的任务。
6)多任务。可管理64个任务,任务的优先级必须是不同的,不支持时间片轮转调度法。
7)可确定性。函数调用与服务的执行时间具有其可确定性,不依赖于任务的多少。
8)实用性和可靠性。成功应用该实时内核的实例,是其实用性和可靠性的最好证据。
由于µC/OS-Ⅱ仅是一个实时内核,这就意味着它不像其他实时操作系统那样提供给用户一些API函数接口,而是需要用户自己去完成很多工作。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。