新聞中心
Windows Embedded CE 6.0是非常優(yōu)秀的嵌入式系統(tǒng),對其內(nèi)核的學習對我們開發(fā)、移植驅(qū)動和應用程序,對開發(fā)、移植嵌入式系統(tǒng)都非常有好處。

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:做網(wǎng)站、網(wǎng)站設計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的萊西網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!
1.Windows Embedded CE 6.0系統(tǒng)的一些關鍵特性
◆32位多任務操作系統(tǒng)。
◆多任務搶占、硬實時。
◆支持的處理器體系結構:ARM, x86, SH4, MIPS。
◆組件化。
◆Based on Win32 API Set,桌面系統(tǒng)的一個擴展子集,超過2000個函數(shù)可以使用。
◆標準的Portable Executable(PE)文件格式。
另外需要注意的是Platform Builder開發(fā)工具集成的Visual Studio中,作為后者的一個插件。開發(fā)Windows Mobile 6.x時使用的還是獨立的Platform Builder for Windows Mobile,相信到Windows Mobile 7.0時會有所變化。
作為通用性桌面操作系統(tǒng)的Windows XP取得了巨大的成功,關于其系統(tǒng)特性請看這。所以微軟又推出了Windows XP Embedded。與Window XP Embedded需要借助第三方插件才能實現(xiàn)實時操作系統(tǒng)相比,Windows Embedded CE 6.0是具有32 位本機實時支持的統(tǒng)一內(nèi)核的。微軟另一款具有本機實時支持統(tǒng)一內(nèi)核的嵌入式操作系統(tǒng)是Windows Embedded NavReady。
2.系統(tǒng)架構
下圖為Windows CE 5.0系統(tǒng)架構,與下下6.0的架構圖相比,我們發(fā)現(xiàn):
(1).5.0時的NK.EXE被分為6.0的NK.EXE(交給OEM開發(fā))和Kernel.DLL(微軟開發(fā))。
(2).驅(qū)動分成內(nèi)核態(tài)和用戶態(tài)。
(3).從圖上看不出來的內(nèi)存架構變化。 #p#
以下為Windows Embedded CE 6.0系統(tǒng)總架構:
以下為更詳細的架構圖,結合上圖我們可以看到:
1.OEM商主要承擔OAL模塊(包括:NK.EXE和Bootloader)以及內(nèi)核態(tài)驅(qū)動的開發(fā)。
2.其實從現(xiàn)在的市場來看OEM商有時也會負責應用和用戶態(tài)驅(qū)動的開發(fā)。
注:ISV(Independent Software Vendors):獨立軟件開發(fā)商。
3.中斷機制
下圖為中斷模型:
(1).設備發(fā)起一個硬件中斷。->
(2).內(nèi)核(Kernel.DLL)響應該中斷,并call對應的中斷服務例程(ISR)。->
(3).中斷服務例程快速處理該中斷。->
(4).驅(qū)動中的中斷服務線程(IST)被通知處理該中斷,這里內(nèi)核使用Event通知IST。
這個過程中涉及到的ISR和IST都會處理中斷,但有所不同,前者的中斷級別更高,所做的工作也很簡單,而后者做主要的處理工作。
4.線程、線程調(diào)度、線程同步
線程是被系統(tǒng)獨立調(diào)度和分派的基本單位,當系統(tǒng)創(chuàng)建一個進程時,至少會存在一個線程(主線程)。所以進程可以被理解為一個殼子。關于線程更多基本知識在此略去。應用程序一般運行在248-255優(yōu)先級,被創(chuàng)建的線程默認優(yōu)先級為251。
另外我們要注意的一個很重要問題是優(yōu)先級反轉(zhuǎn)(Priority Inversion)問題,比如現(xiàn)在有三個優(yōu)先級不同的線程A、B、C, A的優(yōu)先級***,B次之,C***。其中A和C需要的資源部分相同。處理器當前執(zhí)行線程C,比C優(yōu)先級更高的B有可能打斷C而進入運行狀態(tài),這樣C占有的資源什么時候釋放就是一個未知的時間。A只有在C釋放了它所需要的資源后才能被調(diào)度,A被阻塞的時間也是未知的。這樣,低優(yōu)先級的B先于高優(yōu)先級的A被調(diào)度,優(yōu)先級發(fā)生了逆轉(zhuǎn)。
這個問題在XP里面不是一個嚴重的問題,最多A被多阻塞了一段時間。但是,在實時系統(tǒng)里面,特別是硬實時系統(tǒng)里是個很嚴重的問題。這個問題的解決方法一般有兩種,Windows Embedded CE 6.0采用的后一種方法。
線程同步
被用于線程同步的對象有很多種:臨界區(qū)(Critical Setions)、互斥體(Mutexes)、信號量(Semaphores)、事件(Events)、Interlocked Fuctions,這里對此進行簡單的介紹,關于更詳細的資料(比如臨界區(qū)和互斥體的本質(zhì)區(qū)別以及性能比較)請從網(wǎng)絡上查閱,比如這里。在CE 6.0系統(tǒng)中每個同步對象都有自己獨立的名字空間,比如一個空字符串"”被作為一個名字對象處理。在桌面系統(tǒng)中所有同步對象是共享名字的空間的。
分享標題:WindowsEmbeddedCE6.0特性及系統(tǒng)結構
標題來源:http://www.5511xx.com/article/cddcide.html


咨詢
建站咨詢
