首页 理论教育ARMCortex-A8嵌入式实时操作系统设计

ARMCortex-A8嵌入式实时操作系统设计

【摘要】:各种嵌入式系统的应用环境不同,就会产生不同特色的嵌入式操作系统,不论是哪一种特殊功能或是需求,嵌入式操作系统都会有一个核心和一些系统服务。有些嵌入式操作系统也会具备各种不同的通信协议及用户接口函数库,以便为用户提供更多元化的服务。

各种嵌入式系统的应用环境不同,就会产生不同特色的嵌入式操作系统,不论是哪一种特殊功能或是需求,嵌入式操作系统都会有一个核心和一些系统服务。嵌入式操作系统必须具备许多系统函数库,来支持各种需求的应用程序,包括文件系统、中断服务、内存配置、时间服务、存取服务、任务控制服务等。有些嵌入式操作系统也会具备各种不同的通信协议及用户接口函数库,以便为用户提供更多元化的服务。嵌入式操作系统大致又可分为“实时"和“通用"两种。

1.实时操作系统

实时操作系统(Real-Time Operating System,RTOS)并不是指它是一种速度很快的操作系统,而是指操作系统必须在限定的时间内,对过程调用产生正确的响应。正因为如此,实时操作系统对于时间调度和稳定度有非常严格的要求,不容许发生太大的误差。嵌入式实时操作系统(Real Time Embedded Operating System)是一种实时的、支持嵌入式系统应用的操作系统软件,它是嵌入式系统(包括硬件、软件系统)极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。目前,嵌入式实时操作系统的品种较多,其中较为流行的有:VxWorks、WindowsCE、Palm OS、Real Time Linux、pSOS、PowerTV以及Microware公司的OS-9。与通用操作系统相比较,嵌入式实时操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。

IEEE的实时UNIX分委会认为实时操作系统应具备以下特点:

●异步的事件响应。

●切换时间和中断延迟时间确定。

优先级中断和调度。

●抢占式调度。

●内存锁定。

●连续文件。

●同步。

2.常用嵌入式实时操作系统

(1)uCLinux

uCLinux是一个完全符合GNU/GPL公约的操作系统,完全开放代码。uCLinux从Linux2.0/2.4内核派生而来,沿袭了主流Linux的绝大部分特性。它专门针对没有MMU的CPU,并且为嵌入式系统做了许多小型化的工作,适用于没有虚拟内存或内存管理单元(MMU)的处理器,如ARM7TDMI。它通常用于具有很少内存或Flash的嵌入式系统,保留了Linux的大部分优点:稳定且良好的移植性、优秀的网络功能、完备的对各种文件系统的支持、标准丰富的API等。

(2)Android(www.chuimin.cn)

Android系统是Google公司在2007年11月5日公布的基于Linux平台的开源智能手机操作系统。该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。Android运行于Linux kernel之上,但并不是GNU/Linux。Android的Linux kernel控制包括安全(Security)、存储器管理(Memory Manage-ment)、程序管理(Process Management)、网络堆栈(Network Stack)、驱动程序模型(Driv-er Model)等。Android的主要特点有:良好的平台开放性、可以实现个性化应用设定和与Google应用的无缝结合。

(3)Windows CE

Windows CE与Windows系列有较好的兼容性,这无疑是Windows CE推广的一大优势。Windows CE为建立针对掌上设备、无线设备的动态应用程序和服务提供了一种功能丰富的操作系统平台,能在多种处理器体系结构上运行,并且通常适用于那些对内存占用空间具有一定限制的设备。它是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。它的模块化设计允许它对从掌上电脑到专用的工业控制器的用户电子设备进行定制。操作系统的基本内核需要至少200KB的ROM。由于嵌入式产品在体积、成本等方面有较严格的要求,所以处理器部分占用空间应尽可能小。系统的可用内存和外存数量也要受限制,而嵌入式操作系统就运行在有限的内存(一般在ROM或快闪存储器)中,因此就对操作系统的规模、效率等提出了较高的要求。从技术角度上讲,Windows CE作为嵌入式操作系统有很多的缺陷:没有开放源代码,使应用开发人员很难实现产品的定制;在效率、功耗方面的表现并不出色,而且和Windows一样占用过多的系统内存,应用程序庞大;版权许可费也是厂商不得不考虑的因素。

(4)VxWorks

VxWorks是目前嵌入式系统领域中使用最广泛、市场占有率最高的系统。它支持多种处理器,如x86、i960、Sun Sparc、Motorola MC68xxx、MIPS RX000、POWER PC等。VxWorks是Wind River System公司开发的具有工业领导地位的高性能实时操作系统,具有先进的网络功能。VxWorks的开放式结构和对工业标准的支持,使得开发人员易于设计高效的嵌入式系统,并可以很小的工作量移植到其他不同的处理器上。VxWorks的特点是具有良好的可靠性、卓越的实时性、高效的可裁剪性。VxWorks板级支持包(BSP)包含了开发人员需要在特定的目标机上运行VxWorks所需要的特定目标机的软件接口、驱动程序以及从主机通过网络引导VxWorks的Boot Rom。

(5)Nucleus

Nucleus操作系统是由Advanced Technology Inc开发的。Nucleus PLUS是为实时嵌入式应用而设计的一个抢占式多任务操作系统内核,其95%的代码是用ANSI C写成的,因此,非常便于移植并能够支持大多数类型的处理器。从实现角度来看,Nucleus PLUS是一组C函数库,应用程序代码与核心函数库连接在一起,生成一个目标代码,下载到目标板的RAM中或直接烧录到目标板的ROM中执行。在典型的目标环境中,Nucleus PLUS核心代码一般不超过20KB。Nucleus PLUS采用了软件组件的方法,每个组件具有单一而明确的目的,通常由几个C语言及汇编语言模块构成,提供清晰的外部接口,对组件的引用就是通过这些接口完成的。Nucleus PLUS的组件包括任务控制、内存管理、任务间通信、任务的同步与互斥、中断管理、定时器及I/O驱动等。

(6)uC/OS II

源码开放(C代码)的免费嵌入式系统uC/OS II简单易学,提供了嵌入式系统的基本功能,其核心代码短小精悍,如果针对硬件进行优化,还可以获得更高的执行效率。当然,uC/OS II相对于商用嵌入式系统来说还是过于简单,而且存在开发调试困难的问题。uC/OS II的主要特点包括:公开源代码、可移植性很强(采用ANSI C编写)、可固化、可裁剪、占先式、多任务、系统任务、中断管理、稳定性和可靠性都很强。

(7)QNX

QNX是由QNX软件系统有限公司开发的一套实时操作系统,它是一个实时的、可扩展的操作系统,部分遵循了POSIX相关标准,可以提供一个很小的微核及一些可选择的配合进程。其内核仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理。其进程在独立的空间中运行,所有其他操作系统服务都实现为协作的用户进程,因此QNX内核非常小巧,大约几千字节,而且运行速度极快。这个灵活的结构可以使用户根据实际的需求,将系统配置为微小的嵌入式系统或者包括几百个处理器的超级虚拟机系统。

POSIX(Portable Operating System Interface)表示可移植操作系统接口。不过QNX目前的市场占有量不是很大,而且大家对它的熟悉程度也不够,而且QNX对于GUI系统的支持不是很好。

(8)Palm OS

3Com公司的Palm OS在PDA市场上占有很大的份额,它有开放的操作系统API接口,开发商可以根据需要自行开发所需要的应用程序。目前大约有3500个应用程序可以在Palm上运行,这使得Palm的功能得以不断增多。这些软件包括计算器、各种游戏、电子宠物、GIS等。