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

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


咨詢
建站咨詢
