早期的嵌入式软件基本上是在汇编级开发的,系统的运行不需要操作系统支撑。每增加一种系统功能都需要重新进行开发,这种情况给嵌入式系统的应用和发展带来很大的阻碍。随着嵌入式系统的广泛应用,操作系统的引入也就日益显得重要了。目前比较著名的嵌入式操作系统有嵌入式Linux, μC/OS-II, VxWorks,Palm OS和Windows CE等。Windows CE是Microsoft推出的32位、多任务、多线程、实时的嵌入式操作系统,它与其他嵌入式操作系统相比有以下优势:拥有出色的图形界面,提供了方便的集成开发环境和开发工具,对OS的定制、裁减、交叉编译等都相对简单;便于继承已有的基于Windows的开发经验,可以使用类似于Windows上的应用软件开发工具(如VS.NET,EVC等);Window CE已得到大量硬件厂商的支持,支持的微处理器架构包括MIPS系列、ARM系列、SH系列、X86系列。
基于Windows CE的嵌入式系统采用四层体系结构,具有层次性强、可移植性好、组件可剪裁、强调编程接口和支持上层应用等特点。系统从下而上可分为四层:硬件层,OEM 硬件适配层,操作系统服务层,应用层。具体的系统架构可以用下图来表示:
图 基于Windows CE的嵌入式系统架构
(1)硬件层
Windows CE 系统所需的最低硬件配置包括支持Windows CE的 32 位处理器、用于线程调度的实时时钟、用于存储和运行操作系统的存储单元。通常,硬件平台应具备其他的外设,例如串口、网卡、键盘、鼠标等。对于不同的应用领域和硬件平台,需要定制Windows CE 操作系统并移植到目标硬件上。微软为几种典型的应用平台提供了参考定制方案模版。例如,基于PC机的参考平台(CEPC)是微软内部用于开发和测试 Windows CE 操作系统的,它可以作为开发 Windows CE 应用程序和开发 X86 设备驱动的参考平台。
(2)OEM 硬件适配层
OEM 硬件适配层位于操作系统层与硬件层之间,用来抽象硬件功能,实现操作系统的可移植性。OEM 硬件适配层可以分成OEM 抽象层(OAL)、设备驱动开发程序、引导程序和配置文件四部分。OAL 部分主要负责Windows CE与硬件通信,它与 CPU、中断、内存、时钟和调试口等核心设备相关,用于屏蔽 CPU 平台的细节,保证操作系统内核的可移植性。设备驱动程序为Windows CE提供设备控制功能,包括:LCD/LED/VGA/SVGA 显示设备、鼠标、键盘和触摸屏,语音处理设备和扬声器,串口和基于并口的打印机,PC 卡接口和 ATA 磁盘驱动器或其他存储卡、Modem 卡等等。引导程序主要功能是初始化硬件,引导并加载操作系统映像到内存。配置文件则是一些包含系统配置信息的文本文件。
(3)Windows CE 操作系统服务层
Windows CE 操作系统服务层包含了4个关键模块:
a. 内核:内核(操作系统的核心)提供用于线程调度、内存管理和中断处理、调试支持等。
b. 对象存储:包括文件系统、系统注册表、CE 数据库的持久存储。
c. 通讯接口:提供对各种通信硬件和数据协议的支持。
d. 图形、窗口和事件子系统(GWES):GWES 模块支持显示文本和图像,提供用户输入所需的图形和窗口功能。
(4)应用层
应用层是应用程序的集合,通过调用Win32 API 来获得操作系统服务。需要注意的是Windows CE下的API是桌面版本Win32 API的一个子集;同时Windows CE还有许多独有的API,例如CE数据库。