概述和特色
概述
Windows CE操作系統(tǒng)是Windows家族中的成員,專門設(shè)計(jì)給掌上電腦(HPCs)以及嵌入式設(shè)備所使用的電腦環(huán)境。這樣的操作系統(tǒng)可使完整的可移動技術(shù)與現(xiàn)有的Windows桌面技術(shù)整合工作。Windows CE 被設(shè)計(jì)成針對小型設(shè)備(它是典型的擁有有限內(nèi)存的無磁盤系統(tǒng))的通用操作系統(tǒng),
Windows CE 可以通過設(shè)計(jì)一層位于內(nèi)核和硬件之間代碼來用設(shè)定硬件平臺,這即是眾所周知的硬件抽象層(HAL)(在以前解釋時(shí),這被稱為 OEMC (原始設(shè)備制造)適應(yīng)層,即 OAL; 內(nèi)核壓縮層,即 KAL。以免與微軟的 Windows NT 操作系統(tǒng) HAL 混淆)。
不象其它的微軟 Windows 操作系統(tǒng),Windows CE 并不是代表一個(gè)標(biāo)準(zhǔn)的相同的對所有平臺適用的軟件。為了足夠靈活以達(dá)到適應(yīng)廣泛產(chǎn)品需求,Windows CE 采用標(biāo)準(zhǔn)模式,這就意味著,它能夠由一系列軟件模式做出選擇,從而使產(chǎn)品定制。另外,一些可利用模式也可作為其組成部分,這意味著這些模式能夠通過從一套可利用的組份做出選擇,從而成為標(biāo)準(zhǔn)模式,通過選擇,能夠達(dá)到系統(tǒng)要求的最小模式, OEM 能夠減少存儲腳本和操作系統(tǒng)的運(yùn)行。
Windows CE中的C代表袖珍(Compact)、消費(fèi)(Consumer)、通信能力(Connectivity)和伴侶(Companion);E代表電子產(chǎn)品(Electronics)。與Windows 95/98、Windows NT不同的是,Windows CE是所有源代碼全部由微軟自行開發(fā)的嵌入式新型操作系統(tǒng),其操作界面雖來源于Windows 95/98,但Windows CE是基于WIN32 API重新開發(fā)、新型的信息設(shè)備的平臺。Windows CE具有模塊化、結(jié)構(gòu)化和基于Win32應(yīng)用程序接口和與處理器無關(guān)等特點(diǎn)。Windows CE不僅繼承了傳統(tǒng)的Windows圖形界面,并且在Windows CE平臺上可以使用Windows 95/98上的編程工具(如Visual Basic、Visual C++等)、使用同樣的函數(shù)、使用同樣的界面風(fēng)格,使絕大多數(shù)的應(yīng)用軟件只需簡單的修改和移植就可以在Windows CE平臺上繼續(xù)使用。Windows CE并非是專為單一裝置設(shè)計(jì)的,所以微軟為旗下采用Windows CE作業(yè)系統(tǒng)的產(chǎn)品大致分為三條產(chǎn)品線,Pocket PC(掌上電腦)、Handheld PC(手持設(shè)備)及Auto PC。
特色
增進(jìn)工作產(chǎn)能和效率的通訊錄、日歷行程、工作管理、Microsoft Pocket Excel與Microsoft Pocket Word控制臺可以控制并管理Windows CE與辦公室PC的連結(jié)。這讓在您的PC與PDA之間轉(zhuǎn)移資料并與他人透過電子郵件及紅外線無線電通訊,同時(shí)與其他手?jǐn)y式設(shè)備交換資料。利用便攜式Internet Explorer遨游網(wǎng)絡(luò),并使你的HPC達(dá)到最大的功用。
從隨時(shí)隨地的使用電腦及PDA,到智慧型家電用品及豐富的多媒體家庭劇院,Microsoft Windows CE為工作、家庭及其間的任何一部分開啟了動態(tài)的、嶄新的開發(fā)遠(yuǎn)景。這個(gè)模塊化、可自訂的作業(yè)系統(tǒng)將Windows平臺延伸到桌面之外,到達(dá)更小、更機(jī)動性、更特別的裝置之上,然而它的Windows血統(tǒng)則確保了它的相容性,并且支援了更廣泛的開發(fā)基礎(chǔ)。Microsoft Windows CE揭露了革命性的系統(tǒng)架構(gòu),可以讓身為開發(fā)者或科技領(lǐng)導(dǎo)者的您,擴(kuò)展消費(fèi)者及工業(yè)電子上的新市場。
編輯本段體系結(jié)構(gòu)
基于Windows CE構(gòu)建的嵌入式系統(tǒng)大致可以分為4個(gè)層次,從底層向上依次是:硬件層、OEM層、操作系統(tǒng)層和應(yīng)用層。不同層次是由不同廠商提供的,一般來說,硬件層和OEM層由硬件OEM廠商提供;操作系統(tǒng)層由微軟公司提供;應(yīng)用層由獨(dú)立軟件開發(fā)商提供。[1]
每一層分別由不同的模塊組成,每個(gè)模塊又由不同的組件構(gòu)成。這種層次性的結(jié)構(gòu)試圖將硬件和軟件、操作系統(tǒng)和應(yīng)用程序隔開,以便于實(shí)現(xiàn)系統(tǒng)的移植,便于進(jìn)行硬件、軟件、操作系統(tǒng)、應(yīng)用程序等開發(fā)的人員分工合作、并行開發(fā)。
硬件層
硬件層是指由CPU、存儲器、I/O端口、擴(kuò)展板卡等組成的嵌入式硬件系統(tǒng),是Windows CE操作系統(tǒng)必不可少的載體。一方面,操作系統(tǒng)為嵌入式應(yīng)用提供一個(gè)運(yùn)行平臺;另一方面,操作系統(tǒng)要運(yùn)行在硬件之上,直接與硬件打交道并管理硬件。值得注意的是,由于嵌入式系統(tǒng)是以應(yīng)用為核心的,嵌入式系統(tǒng)中的硬件通常是根據(jù)應(yīng)用需要定制的,因此,各種硬件體系結(jié)構(gòu)之間的差異非常大。“更小、更快、更省錢”幾乎是所有嵌入式系統(tǒng)硬件的設(shè)計(jì)目標(biāo)。
OEM層
OEM層是邏輯上位于硬件和Windows CE操作系統(tǒng)之間的一層硬件相關(guān)代碼。它的主要作用是對硬件進(jìn)行抽象,抽象出統(tǒng)一的接口,然后Windows CE內(nèi)核就可以用這些接口與硬件進(jìn)行通信。
Windows CE1.0
WINCE1.0是一種基于Windows95的操作系統(tǒng),其實(shí)就是單色的Windows95簡化版本。90年代中期卡西歐推出第一款采用WinCE1.0操作系統(tǒng)的蛤殼式PDA,算是第一家推出真正稱得上手掌尺寸的掌上電腦廠商。作為第一代的WinCE1.0于1996年問世,不過它最初的發(fā)展并不順利。當(dāng)時(shí)Palm操作系統(tǒng)在PDA市場上非常成功,幾乎成為了整個(gè)PDA產(chǎn)品的代名詞,在這種情況下,微軟公司被迫為最初WinCE的不斷改進(jìn)的同時(shí),微軟公司也通過游說、技術(shù)支持、直接資助等手段聚集了大量合作廠商,使WinCE類的PDA陣容越來越強(qiáng)大。
Windows CE2.0
隨著Windows95的出現(xiàn)和Windows98的成功,另外一個(gè)巨人-微軟站起來了,并迅速地在PC操作系統(tǒng)業(yè)界建立了微軟帝國。PDA市場的發(fā)展?jié)摿Ρ槐姸喾治黾铱春,嗅覺異常靈敏的“微軟”自然不會放過這樣一個(gè)巨大的市場,在其操作系統(tǒng)帝國已經(jīng)非常穩(wěn)定的前提下,又開始了在PDA市場上的全力沖刺,用WinCE2.0操作系統(tǒng)來打造與Palm非常類似的掌上產(chǎn)品。
WinCE2.0不僅比CE1.0快的多,而且的彩色顯示,又眾多新型PDA采用新的WinCE2.0系統(tǒng),大有取代Pilot的趨勢,成為PDA操作系統(tǒng)新的標(biāo)準(zhǔn)。盡管CE2.0仍然要比Pilot的操作系統(tǒng)需要的空間要大的多,但它具有Windows的界面,會用PC的人小編估計(jì)沒有多少人不會使用微軟的操作系統(tǒng)。如果你熟悉Windows95,在使用WindowsCE的時(shí)候就熟門熟路了,就不需要重新學(xué)習(xí)。而且,兩者技術(shù)上的相似性,第三方Windows應(yīng)用軟件開發(fā)商們,就可以很容易地把自己的應(yīng)用軟件轉(zhuǎn)換成可供CE運(yùn)行的版本,因此,WindowsCE的可使用軟件的種類將會越來越多的。
Windows CE3.0
WinCE3.0是微軟的Windows Compact Edition,是一個(gè)通用版本,并不針對掌上產(chǎn)品,標(biāo)準(zhǔn)PC、家電和工控設(shè)備上也可以安裝運(yùn)行,但要做許多客戶化工作,當(dāng)然也可以做掌上電腦。微軟鼓勵(lì)大家在任何硬件平臺(WinCE3.0支持5系列CPU: x86,PowerPC,ARM,MIPS,SH3/4) 上使用(為了和VxWorks,Linux等競爭),所以早期的WINCE運(yùn)行在不同的硬件平臺上,而且可以更換顯示方向,以便為不同的平臺服務(wù)。WinCE3.0屬于付費(fèi)軟件,安裝許可(Licence)費(fèi)用為$20,10份起,批量時(shí)大致能降到$15/一份。
2000年微軟公司將WinCE3.0正式改名為Windows for Pocket PC,簡稱Pocket PC。就是把Pocket Word和Pocket Excel等一些日常所需的辦公軟件的袖珍版裝了進(jìn)去Pocket PC,同時(shí)在娛樂方面的性能做很大的加強(qiáng)。當(dāng)然對于微軟的所有舉動,捧場的廠商自然也不會少,加入Pocket PC 陣營的現(xiàn)在就有HP、Compaq、Casio等一些著名廠商。當(dāng)Compaq的iPAQ 3630的誕生和在市場的熱銷,支持和加入Pocket PC陣營的廠商就越來越多。2002年智能手機(jī)商機(jī)再現(xiàn),不少PPC廠商希望推出整合手機(jī)功能的PPC,于是在2002年8月,專門為手機(jī)優(yōu)化過的微軟Pocket PC 2002 Phone Edition操作系統(tǒng)匆匆問世,2002年10月,國內(nèi)第一款PPC手機(jī)--多普達(dá)686上市了,隨后熊貓推出了CH860、聯(lián)想推出ET180,越來越多的pocket pc產(chǎn)品出現(xiàn)了。
Windows CE4.0
WinCE. Net(即WinCE 4.0)是微軟于2002年1月份推出的首個(gè)以.Net為名的操作系統(tǒng),從名字上我們就可以知道它是微軟的.net的一部分。WinCE. Net是WinCE3.0的升級,同時(shí)還加入.Net Framework精簡版,支持藍(lán)牙和.Net應(yīng)用程序開發(fā)。
Windows CE4.2
WindowsCE. NET 4.2是WindowsCE. NET 4.0/4.1的升級版,對Windows CE先前版本的強(qiáng)大功能進(jìn)行了進(jìn)一步的擴(kuò)充和豐富,基于其開發(fā)的設(shè)備將從這些微小但重要的變化中獲得更好的性能和更強(qiáng)的Windows集成功能。微軟在WinCE4.2版時(shí)曾提供開放源代碼,不過只針對研究單位,而程序代碼較少,為200萬行。
Windows CE5.0
WinCE5.0在2004年5月份推出,微軟宣布WinCE5.0擴(kuò)大開放程序源代碼。在這個(gè)開放源代碼計(jì)劃授權(quán)下,微軟開放250萬行源代碼程序作為評估套件(evaluationkit)。凡是個(gè)人、廠商都可以下載這些源代碼加以修改使用,未來廠商OEM時(shí),則再依執(zhí)行時(shí)期(Run-time)授權(quán),支付Win CE5.0核心每臺機(jī)器3美元的授權(quán)費(fèi)用,這也是微軟第一個(gè)提供商業(yè)用途衍生授權(quán)的操作系統(tǒng)。
Windows CE 6.0
2006年11月,微軟公司其最新的嵌入式平臺Windows Embedded CE 6.0正式上市。作為業(yè)內(nèi)領(lǐng)先的軟件工具,Windows Embedded CE 6.0將為多種設(shè)備構(gòu)建實(shí)時(shí)操作系統(tǒng),例如:互聯(lián)網(wǎng)協(xié)議(IP)機(jī)頂盒、全球定位系統(tǒng)(GPS)、無線投影儀,以及各種工業(yè)自動化、消費(fèi)電子以及醫(yī)療設(shè)備等。
在Windows Embedded誕生十周年之際,微軟將首次在“共享源計(jì)劃(Microsoft Shared Source programme)”中100%毫無保留地開放Windows Embedded CE 6.0內(nèi)核,(GUI圖形用戶界面不開放)比Windows Embedded CE的先前版本的開放比例整體高出56%。“共享源計(jì)劃”為設(shè)備制造商提供了全面的源代碼訪問,以進(jìn)行修改和重新發(fā)布(根據(jù)許可協(xié)議條款),而且不需要與微軟或其他方共享他們最終的設(shè)計(jì)成果。盡管Windows操作系統(tǒng)是一個(gè)通用型計(jì)算機(jī)平臺,為實(shí)現(xiàn)統(tǒng)一的體驗(yàn)而設(shè)計(jì),設(shè)備制造商可以使用Windows Embedded CE 6.0這個(gè)工具包為不同的非桌面設(shè)備構(gòu)建定制化的操作系統(tǒng)映像。通過獲得Windows Embedded CE源代碼的某些部分,比如:文件系統(tǒng)、設(shè)備驅(qū)動程序和其他核心組件,嵌入式開發(fā)者可以選擇他們所需的源代碼,然后編譯并構(gòu)建自己的代碼和獨(dú)特的操作系統(tǒng),迅速將他們的設(shè)備推向市場。
微軟還將Visual Studio 2005專業(yè)版作為Windows Embedded CE 6.0的一部分一并推出。這對微軟來說又是一次史無前例的突破。Visual Studio 2005專業(yè)版將包括一個(gè)被稱為Platform Builder的功能強(qiáng)大的插件,它是一個(gè)專門為嵌入式平臺提供的“集成開發(fā)環(huán)境”。這個(gè)集成開發(fā)環(huán)境使得整個(gè)開發(fā)鏈融為一體,并提供了一個(gè)從設(shè)備到應(yīng)用都易于使用的工具,極大地加速了設(shè)備開發(fā)的上市。
Windows Embedded CE 6.0重新設(shè)計(jì)的內(nèi)核具有32,000個(gè)處理器的并發(fā)處理能力,每個(gè)處理有2GB虛擬內(nèi)存尋址空間,同時(shí)還能保持系統(tǒng)的實(shí)時(shí)響應(yīng)。這使得開發(fā)人員可以將大量強(qiáng)大的應(yīng)用程序融入到更智能化、更復(fù)雜的設(shè)備中。無論在路上、在工作還是在家里,都可以使用這種設(shè)備。
在路上:Windows Embedded CE 6.0加入了新的單元核心數(shù)據(jù)和語音組件,這使得設(shè)備能夠通過蜂窩通訊網(wǎng)絡(luò)建立數(shù)據(jù)連接和語音通話,從而實(shí)現(xiàn)機(jī)器對機(jī)器的通訊應(yīng)用場景,并構(gòu)建相應(yīng)的設(shè)備,如停車表、自動售貨機(jī)和GPS設(shè)備等。
在工作上:Windows Embedded CE 6.0包含的組件更便于開發(fā)者創(chuàng)建通過Windows Vista內(nèi)置功能無線連接到遠(yuǎn)程桌面共享體驗(yàn)的投影儀。
在家中:Windows Embedded CE 6.0充分利用了多媒體技術(shù),以開發(fā)網(wǎng)絡(luò)媒體設(shè)備、數(shù)字視頻錄像機(jī)和IP機(jī)頂盒等。
Windows Embedded Compact 7
在2010年6月1日-5日的臺北COMPUTEX展會上,微軟正式公布了其嵌入式產(chǎn)品線最新的一員Windows Embedded Compact 7。Windows Embedded Compact 7的前身便是大家所熟知的Windows Embedded CE(簡稱WinCE)系統(tǒng),隨著版本號的升級,其正式改名為Windows Embedded Compact 7。微軟即將推出的Windows Phone 7所采用的內(nèi)核正是使用了類似的WinCE 7內(nèi)核。不僅如此,Windows Phone平臺也是基于WinCE平臺而定制出來的產(chǎn)品。此次發(fā)布的Windows Embedded Compact 7的改進(jìn)如下:
1、對無縫連接技術(shù)的改進(jìn):Windows Embedded Compact 7提供的各項(xiàng)技術(shù)可以支持與富媒體、在線服務(wù)、Windows PC、智能手機(jī)和其他手持設(shè)備的無縫連接;
2、改進(jìn)連接和使用富媒體服務(wù):Windows Embedded Compact 7使用了新的媒體庫來簡化多媒體功能管理,并對MPEG-4和HD高清進(jìn)行了支持,靈活的插件架構(gòu)技術(shù)支持第三方內(nèi)容擴(kuò)展;
3、實(shí)現(xiàn)了和 Windows 7的無縫對接:利用Windows Device Stage簡化了多媒體的管理,可以很輕松地在兩者間同步數(shù)據(jù)和媒體文件;
4、完善Office和個(gè)人信息服務(wù):可支持Office Viewers AirSync和Microsoft Exchange;
5、豐富用戶體驗(yàn):可以利用Windows Embedded Compact 7提供的創(chuàng)新解決方案,為用戶提供非同凡響的設(shè)備交互能力;
6、靈活的UI框架擴(kuò)展:Windows Embedded為設(shè)備提供了一個(gè)更加豐富和直觀的用戶界面框架——Silverlight,設(shè)計(jì)師可以利用Microsoft Expression Blend構(gòu)建出只限于想象力的界面效果;
7、豐富在線沖浪體驗(yàn):Windows Embedded Compact 7更新的IE瀏覽器引擎支持Tab標(biāo)簽頁、Zooming縮放等功能,支持Adobe Flash 10.1組件;
8、改進(jìn)操控輸入更具人性化:內(nèi)置了強(qiáng)大的觸控交互方式,允許用戶自定義手勢,并為移動設(shè)備原生提供了多點(diǎn)操控支持。
目前最新的Windows CE為 Windows Embedded Compact 7,這個(gè)版本在內(nèi)核部分有很大的進(jìn)步: 所有系統(tǒng)元件都由EXE改為DLL,并移到 kernel space.
全新設(shè)計(jì)的虛擬內(nèi)存架構(gòu)、全新的設(shè)備驅(qū)動程序架構(gòu),同時(shí)支持 User Mode 與 Kernel Mode 兩種驅(qū)動程序。突破只能運(yùn)行 32 個(gè)工作元(process)的限制,可以運(yùn)行 32768 個(gè)工作元。每一工作元的的虛擬內(nèi)存限制由32 M 增加到全系統(tǒng)總虛擬內(nèi)存。Platform Builder IDE 集成到 Microsoft Visual Studio 2005。新的安全架構(gòu),確保只有被信任的軟件可以在系統(tǒng)中運(yùn)行。UDF 2.5 文件系統(tǒng)。支持 802.11i (WPA2)及 802.11e (QoS) 等無線規(guī)格,及多重 radio support.
支持 x86,ARM,SH4,MIPS 等各種處理器。提供新的 Cellcore components 使系統(tǒng)在移動電話網(wǎng)絡(luò)中更容易創(chuàng)建數(shù)據(jù)鏈接及激活通話。[2-3]在開發(fā)環(huán)境上,微軟也提供兼容于.NET Framework的開發(fā)元件:.NET Compact Framework,讓正在學(xué)習(xí).NET或已擁有.NET程序開發(fā)技術(shù)的開發(fā)人員能迅速而順利的在搭載Windows CE .NET系統(tǒng)的設(shè)備上開發(fā)應(yīng)用程序。
用于掌上電腦Pocket PC以及智能手機(jī)Smart Phone上的Windows CE系統(tǒng)稱為Windows Mobile,目前成熟的最新版本為Windows Mobile 6.5。
編輯本段開發(fā)技術(shù)
針對不同的系統(tǒng),WindowsCE使用了不同的開發(fā)技術(shù):Windows CE 使用的 VC++ 5.0 開發(fā)系統(tǒng)嵌入式工具包,提供系統(tǒng)庫、工具、文本和樣本代碼,從而使 OEMs 能夠?qū)μ囟ǖ挠布脚_使 Windows CE 標(biāo)準(zhǔn)定制。嵌入式工具包也包括設(shè)備驅(qū)動包(DDK)和軟件開發(fā)包(SDK) ,DDK 提供了關(guān)于寫驅(qū)動器的附加文本,SDK 提供庫、頭文件、樣本代碼、文本以允許,開發(fā)者對基于 Windows CE 的平臺進(jìn)行寫操作。Windows CE 提供了相同的程序界面,以用來為其它的視窗操作系統(tǒng)開發(fā)功能,例如,Windows CE 版本 1.01支持大約1000個(gè)微軟的Win 32 API 函數(shù)的其中500個(gè)。這就意味著大量不同類的工具,第三方書籍,關(guān)于 Win 32 開發(fā)者訓(xùn)練教程,可以替代或?yàn)?Windows CE 系統(tǒng)的開發(fā)者所用。而實(shí)時(shí)系統(tǒng)的開發(fā)者能夠使用 VDFF 5.0 的嵌入式工具包,以把操作系統(tǒng)轉(zhuǎn)移到特定的平臺,并為這個(gè)平臺開發(fā)附加設(shè)備驅(qū)動器和實(shí)時(shí)功能。
編輯本段系統(tǒng)詳細(xì)介紹
線程和線程優(yōu)先權(quán)級
Windows CE 是有優(yōu)先級的多任務(wù)操作系統(tǒng),它允許多重功能、進(jìn)程,在相同時(shí)間系統(tǒng)中運(yùn)行 Windows CE 支持最大的 32 位同步進(jìn)程。一個(gè)進(jìn)程包括一個(gè)或多個(gè)線程,每個(gè)線程代表進(jìn)程的一個(gè)獨(dú)立部分,一個(gè)線程被指定為進(jìn)程的基本線程,進(jìn)程也能創(chuàng)造一個(gè)未定數(shù)目的額外線程,額外線程實(shí)際數(shù)目,僅由可利用的系統(tǒng)資源限定。
Windows CE 利用基于優(yōu)先級的時(shí)間片演算法以安排線程的執(zhí)行,Windows CE 支持八個(gè)不同的優(yōu)先級,由0到7,0代表最高級,它在頭文件 Winbasw.h中定義。
優(yōu)先級 |
描述 |
0 |
關(guān)鍵進(jìn)程所使用的優(yōu)先級,是最高級別,相當(dāng)于Windows里的Ring0 |
1 |
最高線程優(yōu)先級,比0級優(yōu)先級低 |
2 |
高于通常的線程優(yōu)先級,常為較底層的進(jìn)程所使用 |
3 |
通常線程優(yōu)先級,比較基礎(chǔ) |
4 |
低于常規(guī)線程優(yōu)先級,有時(shí)候會被后臺線程用到 |
5 |
最低線程優(yōu)先級 |
6 |
高于IDLE的線程優(yōu)先級 |
7 |
最低級別的線程優(yōu)先級 |
級別0和1通常做為實(shí)時(shí)過程和設(shè)備驅(qū)動器,級別2-4做為線程和通常功能,級別5-7做為是低于其它功能級別,注意級別6是目前狀態(tài)并有穩(wěn)定聯(lián)接。
類似于Windows,擁有高級優(yōu)先權(quán)的線程安排優(yōu)先運(yùn)行,而同一優(yōu)先級的線程會以循環(huán)優(yōu)先先級方式運(yùn)行,即每個(gè)線程接受定制的時(shí)間或時(shí)間片,定量時(shí)間默認(rèn)值為25毫秒 (Windows CE 2.0 支持在 MIPS 平臺更改定量時(shí)間)。較低優(yōu)先權(quán)的線程,要直到較高級線程完成之后再運(yùn)行,也即直到他們或者放棄或停止。一個(gè)重要的例外是最高優(yōu)先級的線程(級別0,關(guān)鍵時(shí)間優(yōu)先級)不與其它的線程共享時(shí)間片,這些線程連續(xù)執(zhí)行直到他們完成。不象其它的Windows操作系統(tǒng),Windows CE 是固定的,不能改變。它不匹配這基于引進(jìn)優(yōu)先級的中斷,他們能夠暫時(shí)改動,但僅能通過 Windows CE 內(nèi)核以避免所謂的的“優(yōu)先權(quán)倒置”。
優(yōu)先權(quán)倒置指的是當(dāng)它們同時(shí)競爭同一資源時(shí),低優(yōu)先級的線程,阻礙了高優(yōu)先權(quán)線程對資源的利用。為了改正這種局面并解放較高優(yōu)先權(quán)的線程,Windows CE 允許低級優(yōu)先權(quán)繼承,嚴(yán)格的線程優(yōu)先權(quán),并且運(yùn)行較高優(yōu)先級直到它釋放所用資源。
例如,如果一個(gè)線程在最高優(yōu)先權(quán)運(yùn)行試圖蕕取由低級優(yōu)先權(quán)占有的互斥體,低級優(yōu)先權(quán)的線程變成高級優(yōu)先權(quán),并且運(yùn)行直到它釋放互斥體。優(yōu)先權(quán)倒置適用于系統(tǒng)的所有線程。例如,甚至在優(yōu)先級別1運(yùn)行的內(nèi)核線程能轉(zhuǎn)成級別0,如果優(yōu)先級0線程運(yùn)行內(nèi)存分頁代碼,將引起塊失誤。
基于優(yōu)先級的多任務(wù)設(shè)計(jì),保證運(yùn)行在最低級的線程在一個(gè)預(yù)所知時(shí)間段執(zhí)行。本論文在后面討論設(shè)定響應(yīng),對于指定的平臺和公式,并由其它的平臺獲取數(shù)字。在 DAK 和 SDK 的工具,顯示了線程狀態(tài)和優(yōu)先級別,并描繪指定實(shí)時(shí)系統(tǒng)操作輪廓。
線程同步
實(shí)時(shí)系統(tǒng)必須保證進(jìn)程和線程同步,例如,如果實(shí)時(shí)應(yīng)用的一部分在另一部分獲得最多當(dāng)前數(shù)據(jù)前即完成,此應(yīng)用的管理進(jìn)程可能不穩(wěn)定,同步將確保在應(yīng)用線程間交換正確。
如同其它的 Windows 操作系統(tǒng)一樣,Windows CE 為線程同步提供了一個(gè)豐富的“等待對象”,這包括關(guān)鍵部門、事件、互斥體,些等待對象,允許一個(gè)線程減緩它的運(yùn)行并且等待直到指定事件發(fā)生。
Windows CE 將互斥體、關(guān)鍵部分、事件請求按“先入先出,優(yōu)先級(FIFO)”順序排列:不同的先入先出順序序列定義成八個(gè)不同的優(yōu)先級,在給定的優(yōu)稱級的線程請求,將被放在優(yōu)先級列表末尾,當(dāng)優(yōu)先級倒置出現(xiàn)時(shí),調(diào)度程序調(diào)整這些序列。
除了等待對象,Windows CE 支持標(biāo)準(zhǔn)的 Win 32 時(shí)間 API 函數(shù),這些來自內(nèi)核的應(yīng)用,軟件中斷將獲得時(shí)間間隔,它被用來管理實(shí)時(shí)應(yīng)用。通過調(diào)用 GetTickCont 函數(shù),它能夠返回幾毫秒,線程能夠使用系統(tǒng)間隔時(shí)間。關(guān)于更詳細(xì)的分時(shí)信息,Windows CE 內(nèi)核也支持Win 32 API 函數(shù)QueryPerformanreCounter 和 QueryPerFormanteFrequency。OEM 必須為這些調(diào)用提供硬件和軟件支持,它提供一個(gè)較高的時(shí)間分辨力和 OAL 界面其它方面。
其它方面考慮
Windows CE 提供了一個(gè)重要的存儲系統(tǒng),例如,當(dāng)目前某些運(yùn)行 Windows CE 的平臺提供 4MB 的物理內(nèi)存,Windows CE 支持一個(gè)重要的 2GB 的地址空間,每個(gè)進(jìn)程聯(lián)接在它自己的32MB 物理空間上,當(dāng)它需要產(chǎn)生內(nèi)存分頁中斷(這可能影響線程執(zhí)行時(shí)間),物理內(nèi)存進(jìn)行線程代碼或數(shù)據(jù)內(nèi)存分頁。
內(nèi)存分頁輸入輸出,將比實(shí)時(shí)進(jìn)程優(yōu)先級低。在實(shí)時(shí)進(jìn)程中內(nèi)存分頁仍可自由出現(xiàn),但這要確保后臺的實(shí)際內(nèi)存管理贏得實(shí)時(shí)系統(tǒng)優(yōu)先權(quán)。實(shí)時(shí)線程應(yīng)該鎖存在內(nèi)存中,以防止這些無關(guān)緊要的內(nèi)存分頁阻礙其運(yùn)行,它們可能會占用實(shí)際內(nèi)存管理系統(tǒng)。
Windows CE 允許映射,這將阻止多個(gè)進(jìn)程共享同一物理內(nèi)存,結(jié)果將會導(dǎo)致協(xié)同進(jìn)程間或驅(qū)動器與映射快速的數(shù)據(jù)傳送,內(nèi)存映射能夠戲劇性的增強(qiáng)實(shí)時(shí)操作。
中斷處理
WinCE的中斷處理機(jī)制基于IRQS ISRS 和 ISTS
實(shí)時(shí)應(yīng)用被設(shè)立在指定的時(shí)間間隔內(nèi),對外部事件做出反應(yīng),實(shí)時(shí)應(yīng)用使用中斷做為一種確保外部事件由操作系統(tǒng)獲知的方式。在 Windows 中,內(nèi)核和 OEM 適應(yīng)層 (OAL)被設(shè)定成使系統(tǒng)其它部分的中斷和調(diào)度最優(yōu)化。Windows CE 平衡操作,并通過把中斷過程分成兩部分而使執(zhí)行更加容易:它分為中斷服務(wù)程序(ISR)和中斷服務(wù)線程(IST)兩部分。
每條硬件中斷申請線(IRQ),與一個(gè)ISR相連。當(dāng)中斷成立和中斷出現(xiàn)時(shí),內(nèi)核為此調(diào)用寄存的 ISR, ISR 為中斷處理的內(nèi)核模式部分盡可能短的保存。它首先將內(nèi)核放在適合的 IST 上。
ISR 執(zhí)行它的最小處理并返回一個(gè) ID 號到內(nèi)核,內(nèi)核檢查返回的中斷 ID 號,并設(shè)置相關(guān)事件,中斷服務(wù)線程等待事件。當(dāng)內(nèi)核設(shè)置事件時(shí),IST 停止等待并開始執(zhí)行,附加的中斷進(jìn)程,中斷處理大部分實(shí)際上出現(xiàn)在 IST 中,兩個(gè)最高的線程優(yōu)先權(quán) (級別0和1),通常指定為 ISTS,保證這些線程運(yùn)行得足夠快。
正如前面所說,處在最高級的 ISTS 不能被其它的線程占用,這些線程持續(xù)執(zhí)行直到它們截止或放棄。
Windows CE 不能支持群體中斷,這就意味著當(dāng)以前一個(gè)中斷處理中,另一個(gè)不同接受服務(wù),也就是當(dāng)內(nèi)核位于 ISR 時(shí)如果中斷出現(xiàn),在為新的 IRQ 開始 ISR 前它將一直執(zhí)行直到ISR 結(jié)束,這將引起硬件中斷和 ISR 開始之間的延遲,拖延和響應(yīng)時(shí)間中斷響應(yīng)。
中斷響應(yīng)
下文中,Intervupt Latency 詞組主要指的是較件中斷處理響應(yīng),也即是從處部中斷到達(dá)處理器到中斷開始處理間的時(shí)間。
Windows CE的 中斷響應(yīng)時(shí)間是針對鎖存在內(nèi)存上的線程 (當(dāng)內(nèi)存響應(yīng)不存在時(shí))。這使得計(jì)算最差事件響應(yīng)成為可能——中斷服務(wù)程序(ISR) 開始和中斷服務(wù)線程(IST)開始D的總時(shí)間,直到中斷處理的總時(shí)間能夠通ISR 和 IST 中所需時(shí)間計(jì)算決定。
ISR 響應(yīng)通用公式定義如下:
ISR開始時(shí)間 = value1 + dISR_Current + sum(dISR_Higher)
value1=由內(nèi)核處理過程獲得響應(yīng)值
dISR_Current=中斷到達(dá)時(shí)程序中 ISR 持續(xù)時(shí)間。這個(gè)值范圍由0到系統(tǒng)中最長的 ISR 持續(xù)時(shí)間
sum(dISR_Higher)=所有在 ISR 開始前的較高級ISRS 持續(xù)時(shí)間總和,即在時(shí)間 vahe1+dISR-cumeneu間到達(dá)的中斷
例如,考慮一個(gè)擁有關(guān)鍵優(yōu)先權(quán) ISR 的嵌入式系統(tǒng),因?yàn)?ISR 被設(shè)成最高級,這有樣 ISRS dISR-Higher 值為0。當(dāng)沒有其它 ISRS 最低響應(yīng),在程序中,即為value1 最低響應(yīng)即為value1加系統(tǒng)中最長 ISR 周期,當(dāng)中斷到達(dá)時(shí),正是系統(tǒng)中最長的 ISR 開始執(zhí)行。
IST 響應(yīng)周期定義如下:
IST開始時(shí)間 = value2 + sum(dIST) + sum(dISR)
value2=由內(nèi)核處理的響應(yīng)值
sum(dIST)=所有的出現(xiàn)在 ISR 和 IST ,開始的優(yōu)先級 ISTS 和線程上下文轉(zhuǎn)換時(shí)間總和。
sum(dISR)=在中斷(?) ISR 和它的 IST 之間運(yùn)行的其它 ISRS 持續(xù)時(shí)間總和。
最簡單的例子——具有一個(gè)關(guān)鍵級 ISR 和一個(gè)關(guān)鍵級線程(無其它0優(yōu)先級的線程)的嵌入式系統(tǒng)——沒有其它的 ISTS 能夠在ISR 和 IST 之間中斷,然而在關(guān)鍵級的 ISR 和它相關(guān)的 IST 開始間其它的 ISRS 能被處理。
因?yàn)?ISRS 一旦能夠獲得,即可被處理,很容易想象成病態(tài)情況,涉及產(chǎn)生一個(gè)持續(xù)的 ISRS 流,從而產(chǎn)生不確定的推遲。IST 的開始不可能出現(xiàn),因?yàn)?OEM對系統(tǒng)中的中斷完成控制。因?yàn)?OEM (原始設(shè)備制造商)為特定操作系統(tǒng)設(shè)計(jì)傳統(tǒng) Windows CE 版本。OCM 利用目標(biāo)操作環(huán)境限制使系統(tǒng)設(shè)計(jì)最佳化。
為減少響應(yīng)時(shí)間,OEM 控制 ISR 和IST 處理時(shí)間中斷優(yōu)先級線程優(yōu)先級。公式中的 value1 和 walue2 代表,Windows CE 內(nèi)核中處理時(shí)間,這是 OEM 不能控制的目前的在分時(shí),研究工作涉及這些確認(rèn)值。
確保Windows CE的實(shí)時(shí)操作
兩種不同途徑被用來確保Windows CE操作:
* 由Windows CE開發(fā)組進(jìn)行內(nèi)部的檢查或分析內(nèi)核代碼,
* OEM和ISV(獨(dú)立軟件銷售商)利用一些將在未來的Windows CE版本嵌入式工具包(for VCFT)提供工具來確保特定配置。
Windows CE關(guān)于VC++的嵌入工具包包括以下工具:
* (一個(gè)對于分時(shí)研究的內(nèi)核的工具版本和Intrtinrt.ext應(yīng)用軟件來觀察,中斷過程的最大、最小、平均時(shí)間。
* 微軟也能開發(fā)其它的針對顧客需要的分時(shí)工具。
Windows CE開發(fā)組,已經(jīng)檢查了內(nèi)核代碼以證實(shí)它能由最差的情況時(shí)間表征,它是獨(dú)立于系統(tǒng)對象數(shù)目的。
為了利用這個(gè)檢查,內(nèi)核被表征成一套KCALLS或系統(tǒng)調(diào)用,在內(nèi)核關(guān)閉優(yōu)先權(quán)是它們是內(nèi)核程序,并且不允許其它的線程運(yùn)行,最差事件時(shí)間,此時(shí),實(shí)時(shí)進(jìn)程、標(biāo)止運(yùn)行,它能在內(nèi)核中表征成最差事件KCALL時(shí)間(注意:這些時(shí)間不影響ISRS,只影響線程,例如ISTS)。
開發(fā)組通過檢查發(fā)現(xiàn)在KCALLS沒有非持久的循環(huán),這使所有的KCALLS能夠表示成單向分支,代碼路徑,并確保通過KCALL并獨(dú)立于輸入?yún)?shù)發(fā)現(xiàn)最差事件時(shí)間成為可能。
查找實(shí)際的最差事件時(shí)間包括使用In strum ented kemal,這僅是一個(gè)內(nèi)核版本,它在設(shè)定應(yīng)用環(huán)境后編輯使用,KCALL_PROFICE=1,以保證額外的分時(shí)功能,這個(gè)instrumented kemel 與debug kemel不同,Instrument ted是為一個(gè)零售的內(nèi)核使用,它用來獲得分時(shí)值,這常對于裝運(yùn)產(chǎn)品常常諱之莫深,在retail kernal和instrumented kernel唯一區(qū)別是它的裝備。
Instrumentted kernel記錄所有的KCALL時(shí)間,這些值,包括最小、最大和平均時(shí)間,并能夠通過調(diào)用專用的API函數(shù)Dum Pk call profile打印到調(diào)試接口,Instrumented kernel通常運(yùn)行在強(qiáng)狀態(tài)下,然后調(diào)用Dumpkcall prefile來獲得時(shí)間。
中斷測試應(yīng)用軟件Intrtime.exe,在Windows CE標(biāo)準(zhǔn)版本收集中斷分時(shí)延遲信息,應(yīng)用軟件在測試中控制系統(tǒng)時(shí)間。因此,當(dāng)系統(tǒng)需要時(shí)間控制器時(shí),是不合適使用的。例如,此應(yīng)用程序不能與內(nèi)核 instrumented版本一起使用,因?yàn)樗残枰獣r(shí)間控制。
在WinCE中創(chuàng)建自己的快捷方式
你沒看錯(cuò),WinCE也可以使用快捷方式。
快捷方式是可以提供到其他文件鏈接的很小的文件,你可以使用.lnk文件指向位于Windows文件夾中的文件。如果你不使用.lnk文件,你只能通過文件系統(tǒng)文件(.dat)在ROM之外制作Windows文件夾下的文件的完全復(fù)本。
以下步驟列出了如何創(chuàng)建一個(gè)桌面快捷方式。當(dāng)你創(chuàng)建了這個(gè)文件以后,你需要把它加入到運(yùn)行時(shí)的image里,在大多數(shù)情況下,你需要把這個(gè)文件復(fù)制到Windows系統(tǒng)以外的地方。
創(chuàng)建一個(gè)桌面快捷方式的方法如下:
1、從Platform Builder中的File菜單選擇New Project or File
2、在New Project or File對話框中選擇Files標(biāo)簽
3、選擇Text File類型
4、在File name文本框中,輸入<File Name>.lnk,其中<File Name>;可根據(jù)需要輸入,下同。這樣,一個(gè)新文件就被創(chuàng)建并打開了
5、在<File Name>.lnk中,輸入鏈接命令
.lnk文件是一個(gè)包含了命令行和被鏈接目標(biāo)的文本文件,它有一個(gè)命令行長度部分和一個(gè)命令行。你也可以通過參數(shù)傳遞給被鏈接的目標(biāo),這是可選的。然而,如果快捷方式模塊在Coredll中被替換了,那么這個(gè)行為也可能會被改變。
作為默認(rèn)的,一個(gè).lnk文件使用如下的格式。
[后面命令行和參數(shù)的ASCⅡ字符串的長度]#[命令行[參數(shù)]]
舉個(gè)例子,要能過兩個(gè)參數(shù)運(yùn)行你的MyApp.exe程序,一個(gè)MyApp.lnk文件內(nèi)可包含這個(gè)語句:
40#\Windows\MyApp.exe parameter1 parameter2
6、從File菜單中選擇Save As
7、把這個(gè)文件保存在BSP的OAK部分以便于編譯進(jìn)操作系統(tǒng)image中。使用Save As對話框?qū)Ш降?_WINCEROOT%\public\<Platform Name>\<Windows CE Version>\<BSP Name>\OAK\Files并且選擇Save
你已經(jīng)創(chuàng)建了快捷方式文件,你現(xiàn)在可以通過編輯Project.bib把它加入到OS中,或者添加到你的平臺組件樹中。如果是前者,只需打開Project.bib文件并且在FILES段中加入如下一行代碼:
MyApp.LNK $(_FLATRELEASEDIR)\MyApp.LNK NK S
在這個(gè)例子中,MyApp.LNK被放入NK的內(nèi)存塊中,可選的參數(shù)S把它定義成系統(tǒng)文件屬性。
編輯本段與Linux的區(qū)別
本段將會從商業(yè)模式,學(xué)習(xí)和開發(fā)難度,對硬件的支持,穩(wěn)定性,對工程師未來發(fā)展的幫助,對研發(fā)中心未來發(fā)展的幫助來探討。
嵌入式Linux OS與Windows CE相比的優(yōu)點(diǎn)
第一:Linux是開放源代碼,遍布全球的眾多Linux愛好者都是Linux開發(fā)者的強(qiáng)大技術(shù)支持者;Windows CE目前6.0內(nèi)核全部開放,GUI不開放。第二:Linux的內(nèi)核小、效率高;Windows CE相比,占用過多的RAM。第三Linux是開放源代碼的OS,在價(jià)格上極具競爭力,適合中國國情。Windows CE需要版權(quán)費(fèi)用。第四Linux不僅支持x86芯片,還是一個(gè)跨平臺的系統(tǒng)。更換CPU時(shí)就不會遇到更換平臺的困擾。第五,Linux內(nèi)核的結(jié)構(gòu)在網(wǎng)絡(luò)方面是非常完整的,它提供了對包括十兆位、百兆位及千兆位的以太網(wǎng)絡(luò),還有無線網(wǎng)絡(luò)、Token ring(令牌環(huán))和光纖甚至衛(wèi)星的支持,目前WINCE的網(wǎng)絡(luò)功能也比較強(qiáng)大。
嵌入式Linux OS與Windows CE相比的弱點(diǎn)
第一:LINUX開發(fā)難度較高,需要很高的技術(shù)實(shí)力,WINCE開發(fā)相對較容易,開發(fā)周期短,內(nèi)核完善,主要是應(yīng)用層開發(fā)。第二:LINUX核心調(diào)試工具不全,調(diào)試不太方便,尚沒有很好的用戶圖形界面,WINCE的GUI豐富,開發(fā)工具強(qiáng)大;第三,系統(tǒng)維護(hù)難度大。Linux在使用較完整的GUI時(shí)一般會占用較大的內(nèi)存,如果去掉部分無用的功能來減小使用的內(nèi)存,但是如果不仔細(xì),將引起新的問題。
編輯本段應(yīng)用和商業(yè)模式
應(yīng)用
手機(jī),指紋識別系統(tǒng),汽車電子檢測設(shè)備,智能家電,醫(yī)療儀器(例如:監(jiān)護(hù)儀,心電檢測儀等等),工業(yè)控制儀器(例如:人機(jī)界面顯示的高精準(zhǔn)電機(jī)控制,工業(yè)采集控制通信等),定位導(dǎo)行設(shè)備(例如:車載GPS導(dǎo)航儀)。
商業(yè)模式
。
Windows Embedded CE 6.0使用了基于數(shù)量的特許許可證模式,設(shè)備制造商可以在設(shè)備開始供貨時(shí)再購買運(yùn)行許可證。微軟將提供知識產(chǎn)權(quán)保護(hù)(根據(jù)許可協(xié)議條款)和為期10年的產(chǎn)品支持生命周期,確保產(chǎn)品的完整性,并保證廠商得到必要的支持和保護(hù)以獲得成功。 本文出自:億恩科技【1tcdy.com】
服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|