早期的嵌入式軟件基本上是在匯編級開發的,系統的運行不需要操作系統支撐。每增加一種系統功能都需要重新進行開發,這種情況給嵌入式系統的應用和發展帶來很大的阻礙。隨著嵌入式系統的廣泛應用,操作系統的引入也就日益顯得重要了。目前比較著名的嵌入式操作系統有嵌入式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數據庫。