早期的嵌入式軟件基本上是在匯編級開發(fā)的,系統(tǒng)的運(yùn)行不需要操作系統(tǒng)支撐。每增加一種系統(tǒng)功能都需要重新進(jìn)行開發(fā),這種情況給嵌入式系統(tǒng)的應(yīng)用和發(fā)展帶來很大的阻礙。隨著嵌入式系統(tǒng)的廣泛應(yīng)用,操作系統(tǒng)的引入也就日益顯得重要了。目前比較著名的嵌入式操作系統(tǒng)有嵌入式Linux, μC/OS-II, VxWorks,Palm OS和Windows CE等。Windows CE是Microsoft推出的32位、多任務(wù)、多線程、實(shí)時(shí)的嵌入式操作系統(tǒng),它與其他嵌入式操作系統(tǒng)相比有以下優(yōu)勢:擁有出色的圖形界面,提供了方便的集成開發(fā)環(huán)境和開發(fā)工具,對OS的定制、裁減、交叉編譯等都相對簡單;便于繼承已有的基于Windows的開發(fā)經(jīng)驗(yàn),可以使用類似于Windows上的應(yīng)用軟件開發(fā)工具(如VS.NET,EVC等);Window CE已得到大量硬件廠商的支持,支持的微處理器架構(gòu)包括MIPS系列、ARM系列、SH系列、X86系列。
基于Windows CE的嵌入式系統(tǒng)采用四層體系結(jié)構(gòu),具有層次性強(qiáng)、可移植性好、組件可剪裁、強(qiáng)調(diào)編程接口和支持上層應(yīng)用等特點(diǎn)。系統(tǒng)從下而上可分為四層:硬件層,OEM 硬件適配層,操作系統(tǒng)服務(wù)層,應(yīng)用層。具體的系統(tǒng)架構(gòu)可以用下圖來表示:
圖 基于Windows CE的嵌入式系統(tǒng)架構(gòu)
(1)硬件層
Windows CE 系統(tǒng)所需的最低硬件配置包括支持Windows CE的 32 位處理器、用于線程調(diào)度的實(shí)時(shí)時(shí)鐘、用于存儲和運(yùn)行操作系統(tǒng)的存儲單元。通常,硬件平臺應(yīng)具備其他的外設(shè),例如串口、網(wǎng)卡、鍵盤、鼠標(biāo)等。對于不同的應(yīng)用領(lǐng)域和硬件平臺,需要定制Windows CE 操作系統(tǒng)并移植到目標(biāo)硬件上。微軟為幾種典型的應(yīng)用平臺提供了參考定制方案模版。例如,基于PC機(jī)的參考平臺(CEPC)是微軟內(nèi)部用于開發(fā)和測試 Windows CE 操作系統(tǒng)的,它可以作為開發(fā) Windows CE 應(yīng)用程序和開發(fā) X86 設(shè)備驅(qū)動的參考平臺。
(2)OEM 硬件適配層
OEM 硬件適配層位于操作系統(tǒng)層與硬件層之間,用來抽象硬件功能,實(shí)現(xiàn)操作系統(tǒng)的可移植性。OEM 硬件適配層可以分成OEM 抽象層(OAL)、設(shè)備驅(qū)動開發(fā)程序、引導(dǎo)程序和配置文件四部分。OAL 部分主要負(fù)責(zé)Windows CE與硬件通信,它與 CPU、中斷、內(nèi)存、時(shí)鐘和調(diào)試口等核心設(shè)備相關(guān),用于屏蔽 CPU 平臺的細(xì)節(jié),保證操作系統(tǒng)內(nèi)核的可移植性。設(shè)備驅(qū)動程序?yàn)?/span>Windows CE提供設(shè)備控制功能,包括:LCD/LED/VGA/SVGA 顯示設(shè)備、鼠標(biāo)、鍵盤和觸摸屏,語音處理設(shè)備和揚(yáng)聲器,串口和基于并口的打印機(jī),PC 卡接口和 ATA 磁盤驅(qū)動器或其他存儲卡、Modem 卡等等。引導(dǎo)程序主要功能是初始化硬件,引導(dǎo)并加載操作系統(tǒng)映像到內(nèi)存。配置文件則是一些包含系統(tǒng)配置信息的文本文件。
(3)Windows CE 操作系統(tǒng)服務(wù)層
Windows CE 操作系統(tǒng)服務(wù)層包含了4個(gè)關(guān)鍵模塊:
a. 內(nèi)核:內(nèi)核(操作系統(tǒng)的核心)提供用于線程調(diào)度、內(nèi)存管理和中斷處理、調(diào)試支持等。
b. 對象存儲:包括文件系統(tǒng)、系統(tǒng)注冊表、CE 數(shù)據(jù)庫的持久存儲。
c. 通訊接口:提供對各種通信硬件和數(shù)據(jù)協(xié)議的支持。
d. 圖形、窗口和事件子系統(tǒng)(GWES):GWES 模塊支持顯示文本和圖像,提供用戶輸入所需的圖形和窗口功能。
(4)應(yīng)用層
應(yīng)用層是應(yīng)用程序的集合,通過調(diào)用Win32 API 來獲得操作系統(tǒng)服務(wù)。需要注意的是Windows CE下的API是桌面版本Win32 API的一個(gè)子集;同時(shí)Windows CE還有許多獨(dú)有的API,例如CE數(shù)據(jù)庫。