介紹微軟Windows CE的實(shí)時(shí)系統(tǒng)_第1頁
介紹微軟Windows CE的實(shí)時(shí)系統(tǒng)_第2頁
介紹微軟Windows CE的實(shí)時(shí)系統(tǒng)_第3頁
介紹微軟Windows CE的實(shí)時(shí)系統(tǒng)_第4頁
介紹微軟Windows CE的實(shí)時(shí)系統(tǒng)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

精品文檔-下載后可編輯介紹微軟WindowsCE的實(shí)時(shí)系統(tǒng)介紹MicrosoftWindowsCE

MicrosoftWindowsCE的快速反應(yīng)的嵌入式應(yīng)用常常被用來管理嚴(yán)格的時(shí)間反應(yīng)。例如,制造過程控制,高速的數(shù)據(jù)采集設(shè)備,電訊交換設(shè)備,醫(yī)用設(shè)備,空中“有線”控制,武器發(fā)射裝備,空間航行和導(dǎo)航,實(shí)驗(yàn)室,實(shí)驗(yàn)控制,汽車發(fā)動(dòng)機(jī)控制,機(jī)器人系統(tǒng)。

為保證這種功能,就意味著不僅需要計(jì)算性,還有結(jié)果的時(shí)間性,此種應(yīng)用必須在指定的時(shí)間參數(shù)內(nèi)做出反應(yīng)。

實(shí)時(shí)系統(tǒng)的廣義定義是“對(duì)任何外部刺激,計(jì)算機(jī)做出及時(shí)反應(yīng)是至關(guān)重要的系統(tǒng)”,標(biāo)準(zhǔn)定義在Internetnewsgroupcorprealtimegroup中。實(shí)時(shí)定義為:一個(gè)實(shí)時(shí)系統(tǒng)它的計(jì)算正確性,不僅依靠于計(jì)算邏輯上的正確,還包括及時(shí)的產(chǎn)生結(jié)果。如果沒有達(dá)到系統(tǒng)時(shí)間限制條件,系統(tǒng)也是失效的。

搞清楚實(shí)時(shí)系統(tǒng)和實(shí)時(shí)操作系統(tǒng)(RTOS)的區(qū)別至關(guān)重要。實(shí)時(shí)系統(tǒng)(Real-timeoperatingsystem,RTOS)的正確性不僅依賴系統(tǒng)計(jì)算的邏輯結(jié)果,還依賴于產(chǎn)生這個(gè)結(jié)果的時(shí)間。實(shí)時(shí)系統(tǒng)能夠在指定或者確定的時(shí)間內(nèi)完成系統(tǒng)功能和外部或內(nèi)部、同步或異步時(shí)間做出響應(yīng)的系統(tǒng)。因此實(shí)時(shí)系統(tǒng)應(yīng)該在事先定義的時(shí)間范圍內(nèi)識(shí)別和處理離散事件的能力;系統(tǒng)能夠處理和儲(chǔ)存控制系統(tǒng)所需要的大量數(shù)據(jù)。而實(shí)時(shí)操作系統(tǒng)(RTOS)是指當(dāng)外界事件或數(shù)據(jù)產(chǎn)生時(shí),能夠接受并以足夠快的速度予以處理,其處理的結(jié)果又能在規(guī)定的時(shí)間之內(nèi)來控制生產(chǎn)過程或?qū)μ幚硐到y(tǒng)作出快速響應(yīng),并控制所有實(shí)時(shí)任務(wù)協(xié)調(diào)一致運(yùn)行的操作系統(tǒng)。因而,提供及時(shí)響應(yīng)和高可靠性是其主要特點(diǎn)。實(shí)時(shí)操作系統(tǒng)有硬實(shí)時(shí)和軟實(shí)時(shí)之分,硬實(shí)時(shí)要求在規(guī)定的時(shí)間內(nèi)必須完成操作,這是在操作系統(tǒng)設(shè)計(jì)時(shí)保證的;軟實(shí)時(shí)則只要按照任務(wù)的優(yōu)先級(jí),盡可能快地完成操作即可。我們通常使用的操作系統(tǒng)在經(jīng)過一定改變之后就可以變成實(shí)時(shí)操作系統(tǒng)。實(shí)時(shí)系統(tǒng)代表所有系統(tǒng)組成設(shè)備——硬件,操作系統(tǒng)和應(yīng)用——它需要達(dá)到系統(tǒng)的要求,實(shí)時(shí)操作系統(tǒng)(RTOS)只是整個(gè)實(shí)時(shí)系統(tǒng)的一個(gè)組成部分,它必須提供足夠的功能以確保整個(gè)實(shí)時(shí)系統(tǒng)達(dá)到要求。

同樣,搞清快速操作系統(tǒng)和實(shí)時(shí)操作系統(tǒng)之間區(qū)別,也很重要,對(duì)于一個(gè)RTOS雖然達(dá)到全面要求十分有用,但并不是它自己達(dá)到這種要求。Internetneusgronpcornp.realtime列舉了作為一個(gè)實(shí)時(shí)操作系統(tǒng),必須達(dá)到以下要求:OS(操作系統(tǒng))必須是多線程和優(yōu)先級(jí)之分,且必須支持線程優(yōu)先級(jí);必須存在一個(gè)優(yōu)先級(jí)繼承的系統(tǒng);OS必須支持可預(yù)測的線程,同步發(fā)送機(jī)理;

另外,OS的行為必須是可預(yù)測的,這意味實(shí)時(shí)系統(tǒng)的開發(fā)者必須對(duì)系統(tǒng)中斷級(jí),系統(tǒng)調(diào)用和分時(shí)了如指掌:

必須知道OS和設(shè)備驅(qū)動(dòng)器的中數(shù)據(jù)匹配時(shí)間。

設(shè)備驅(qū)動(dòng)器用來處理一個(gè)中斷時(shí)間和關(guān)于這些驅(qū)動(dòng)器的中斷申請(qǐng)信息必須清楚。

中斷響應(yīng)(從中斷到運(yùn)行時(shí)間),必須可預(yù)測并滿足功能要求。

每次系統(tǒng)調(diào)用時(shí)間必須可以預(yù)測,并且獨(dú)立于系統(tǒng)的對(duì)象數(shù)目。本篇論文論述了微軟WindowsCE操作系統(tǒng)是如何達(dá)到一個(gè)實(shí)時(shí)系統(tǒng)的要求,更有意義的是,WindowsCE保證一個(gè)時(shí)間的上限,它在收到中斷后開始一個(gè)實(shí)時(shí)的優(yōu)先級(jí)線程。本論文論述了對(duì)特定參考平臺(tái)的中數(shù)據(jù)響應(yīng)時(shí)間,參考為有HinathiSH3的微處理器的“Odo”平臺(tái)。

MicrosoftWindowsCE概論

WindowsCE作業(yè)系統(tǒng)是Windows家族中的成員,專門設(shè)計(jì)給掌上型電腦(HPCs)所使用的電腦環(huán)境。這樣的作業(yè)系統(tǒng)可使完整的可攜式技術(shù)與現(xiàn)有的Windows桌面技術(shù)整合工作。WindowsCE被設(shè)計(jì)成針對(duì)小型設(shè)備(它是典型的擁有有限內(nèi)存的無磁盤系統(tǒng))的通用操作系統(tǒng),WindowsCE可以通過設(shè)計(jì)一層位于內(nèi)核和硬件之間代碼來用設(shè)定硬件平臺(tái),這即是眾所周知的硬件抽象層(HAL)(在以前解釋時(shí),這被稱為OEMC(原始設(shè)備制造)適應(yīng)層,即OAL;內(nèi)核壓縮層,即KAL。以免與微軟的WindowsNT操作系統(tǒng)HAL混淆)。

不象其它的微軟Windows操作系統(tǒng),WindowsCE并不是代表一個(gè)標(biāo)準(zhǔn)的相同的對(duì)所有平臺(tái)適用的軟件。為了足夠靈活以達(dá)到適應(yīng)廣泛產(chǎn)品需求,WindowsCE采用標(biāo)準(zhǔn)模式,這就意味著,它能夠由一系列軟件模式做出選擇,從而使產(chǎn)品定制。另外,一些可利用模式也可作為其組成部分,這意味著這些模式能夠通過從一套可利用的組份做出選擇,從而成為標(biāo)準(zhǔn)模式,通過選擇,能夠達(dá)到系統(tǒng)要求的模式,OEM能夠減少存儲(chǔ)腳本和操作系統(tǒng)的運(yùn)行。WindowsCE中的C代表袖珍(Compact)、消費(fèi)(Consumer)、通信能力(Connectivity)和伴侶(Companion);E代表電子產(chǎn)品(Electronics)。與Windows95/98、WindowsNT不同的是,WindowsCE是所有源代碼全部由微軟自行開發(fā)的嵌入式新型操作系統(tǒng),其操作界面雖于Windows95/98,但WindowsCE是基于WIN32API重新開發(fā)、新型的信息設(shè)備的平臺(tái)。WindowsCE具有模塊化、結(jié)構(gòu)化和基于Win32應(yīng)用程序接口和與處理器無關(guān)等特點(diǎn)。WindowsCE不僅繼承了傳統(tǒng)的Windows圖形界面,并且在WindowsCE平臺(tái)上可以使用Windows95/98上的編程工具(如VisualBasic、VisualC++等)、使用同樣的函數(shù)、使用同樣的界面風(fēng)格,使絕大多數(shù)的應(yīng)用軟件只需簡單的修改和移植就可以在WindowsCE平臺(tái)上繼續(xù)使用。WindowsCE并非是專為單一裝置設(shè)計(jì)的,所以微軟為旗下采用WindowsCE作業(yè)系統(tǒng)的產(chǎn)品大致分為三條產(chǎn)品線,PocketPC(掌上電腦)、HandheldPC(手持設(shè)備)及AutoPC。

WindowsCE關(guān)于VC5.0開發(fā)系統(tǒng)嵌入式工具包,提供系統(tǒng)庫、工具、文本和樣本代碼,以使OEMS能夠?qū)μ囟ǖ挠布脚_(tái)使WindowsCE標(biāo)準(zhǔn)定制。嵌入式工具包也包括設(shè)備驅(qū)動(dòng)包(DDK)和軟件開發(fā)包(SDK),DDK提供了關(guān)于寫驅(qū)動(dòng)器的附加文本,SDK提供庫、頭文件、樣本代碼、文本以允許,開發(fā)者對(duì)基于WindowsCE的平臺(tái)進(jìn)行寫操作。WindowsCE提供了相同的程序界面,以用來為其它的視窗操作系統(tǒng)開發(fā)功能,例如,WindowsCE版本1.01支持大約1000個(gè)微軟的Win32API函數(shù)的其中500個(gè)。這就意味著大量不同類的工具,第三方書籍,關(guān)于Win32開發(fā)者訓(xùn)練教程,可以替代或?yàn)閃indowsCE系統(tǒng)的開發(fā)者所用。

實(shí)時(shí)系統(tǒng)的開發(fā)者能夠使用,關(guān)于VDFF5.0的嵌入式工具包,以把操作系統(tǒng)轉(zhuǎn)移到特定的平臺(tái),并為這個(gè)平臺(tái)開發(fā)附加設(shè)備驅(qū)動(dòng)器和實(shí)時(shí)功能。

線程和線程優(yōu)先權(quán)級(jí)

WindowsCE是有優(yōu)先級(jí)的多任務(wù)操作系統(tǒng),它允許多重功能、進(jìn)程,在相同時(shí)間系統(tǒng)中運(yùn)行WindowsCE支持的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)資源限定。

WindowsCE利用基于優(yōu)先級(jí)的時(shí)間片演算法以安排線程的執(zhí)行,WindowsCE支持八個(gè)不同的優(yōu)先級(jí),由0到7,0代表,它在頭文件Winbasw.h中定義。

優(yōu)先級(jí)描述0關(guān)鍵進(jìn)程所使用的優(yōu)先級(jí),是別,相當(dāng)于Windows里的Ring01?線程優(yōu)先級(jí),比0級(jí)優(yōu)先級(jí)低2高于通常的線程優(yōu)先級(jí),常為較底層的進(jìn)程所使用3通常線程優(yōu)先級(jí),比較基礎(chǔ)4低于常規(guī)線程優(yōu)先級(jí),有時(shí)候會(huì)被后臺(tái)線程用到5?線程優(yōu)先級(jí)6高于IDLE的線程優(yōu)先級(jí)7級(jí)別的線程優(yōu)先級(jí)

級(jí)別0和1通常做為實(shí)時(shí)過程和設(shè)備驅(qū)動(dòng)器,級(jí)別2-4做為線程和通常功能,級(jí)別5-7做為是低于其它功能級(jí)別,注意級(jí)別6是目前狀態(tài)并有穩(wěn)定聯(lián)接。

優(yōu)先權(quán)的取決于線程優(yōu)先級(jí),擁有優(yōu)先權(quán)的線程安排優(yōu)先運(yùn)行,同一優(yōu)先級(jí)的線程,以循環(huán)優(yōu)先先級(jí)方式運(yùn)行,即每個(gè)線程接受定制的時(shí)間或時(shí)間片,定量時(shí)間默認(rèn)值為25毫秒(WindowsCE2.0支持在MIPS平臺(tái)更改定量時(shí)間)。較低優(yōu)先權(quán)的線程,要直到較線程完成之后再運(yùn)行,也即直到他們或者放棄或停止。一個(gè)重要的例外是優(yōu)先級(jí)的線程(級(jí)別0,關(guān)鍵時(shí)間優(yōu)先級(jí))不與其它的線程共享時(shí)間片,這些線程連續(xù)執(zhí)行直到他們完成。不象其它的微軟窗操作系統(tǒng),WindowsCE是固定不能改變,它不匹配基于這引進(jìn)優(yōu)先級(jí)的中斷,他們能夠暫時(shí)改動(dòng),但僅能通過WindowsCE內(nèi)核以避免所謂的的“優(yōu)先權(quán)倒置”。

優(yōu)先權(quán)倒置指的是當(dāng)它們同時(shí)競爭同一資源時(shí),低優(yōu)先級(jí)的線程,阻礙了高優(yōu)先權(quán)線程對(duì)資源的利用。為了改正這種局面并解放較高優(yōu)先權(quán)的線程,WindowsCE允許低級(jí)優(yōu)先權(quán)繼承,嚴(yán)格的線程優(yōu)先權(quán),并且運(yùn)行較高優(yōu)先級(jí)直到它釋放所用資源。

例如,如果一個(gè)線程在優(yōu)先權(quán)運(yùn)行試圖蕕取由低級(jí)優(yōu)先權(quán)占有的互斥體,低級(jí)優(yōu)先權(quán)的線程變成優(yōu)先權(quán),并且運(yùn)行直到它釋放互斥體。優(yōu)先權(quán)倒置適用于系統(tǒng)的所有線程。例如,甚至在優(yōu)先級(jí)別1運(yùn)行的內(nèi)核線程能轉(zhuǎn)成級(jí)別0,如果優(yōu)先級(jí)0線程運(yùn)行內(nèi)存分頁代碼,將引起塊失誤。

基于優(yōu)先級(jí)的多任務(wù)設(shè)計(jì),保證運(yùn)行在級(jí)的線程在一個(gè)預(yù)所知時(shí)間段執(zhí)行。本論文在后面討論設(shè)定響應(yīng),對(duì)于指定的平臺(tái)和公式,并由其它的平臺(tái)獲取數(shù)字。在DAK和SDK的工具,顯示了線程狀態(tài)和優(yōu)先級(jí)別,并描繪指定實(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)一樣,WindowsCE為線程同步提供了一個(gè)豐富的“等待對(duì)象”,這包括關(guān)鍵部門、事件、互斥體,些等待對(duì)象,允許一個(gè)線程減緩它的運(yùn)行并且等待直到指定事件發(fā)生。

WindowsCE將互斥體、關(guān)鍵部分、事件請(qǐng)求按“先入先出,優(yōu)先級(jí)(FIFO)”順序排列:不同的先入先出順序序列定義成八個(gè)不同的優(yōu)先級(jí),在給定的優(yōu)稱級(jí)的線程請(qǐng)求,將被放在優(yōu)先級(jí)列表末尾,當(dāng)優(yōu)先級(jí)倒置出現(xiàn)時(shí),調(diào)度程序調(diào)整這些序列。

除了等待對(duì)象,WindowsCE支持標(biāo)準(zhǔn)的Win32時(shí)間API函數(shù),這些來自內(nèi)核的應(yīng)用,軟件中斷將獲得時(shí)間間隔,它被用來管理實(shí)時(shí)應(yīng)用。通過調(diào)用GetTickCont函數(shù),它能夠返回幾毫秒,線程能夠使用系統(tǒng)間隔時(shí)間。關(guān)于更詳細(xì)的分時(shí)信息,WindowsCE內(nèi)核也支持Win32API函數(shù)QueryPerformanreCounter和QueryPerFormanteFrequency。OEM必須為這些調(diào)用提供硬件和軟件支持,它提供一個(gè)較高的時(shí)間分辨力和OAL界面其它方面。

其它方面考慮

WindowsCE提供了一個(gè)重要的存儲(chǔ)系統(tǒng),例如,當(dāng)目前某些運(yùn)行WindowsCE的平臺(tái)提供4MB的物理內(nèi)存,WindowsCE支持一個(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)先級(jí)低。在實(shí)時(shí)進(jìn)程中內(nèi)存分頁仍可自由出現(xiàn),但這要確保后臺(tái)的實(shí)際內(nèi)存管理贏得實(shí)時(shí)系統(tǒng)優(yōu)先權(quán)。

實(shí)時(shí)線程應(yīng)該鎖存在內(nèi)存中,以防止這些無關(guān)緊要的內(nèi)存分頁阻礙其運(yùn)行,它們可能會(huì)占用實(shí)際內(nèi)存管理系統(tǒng)。

WindowsCE允許映射,這將陰止多個(gè)進(jìn)程共享同一物理內(nèi)存,結(jié)果將會(huì)導(dǎo)致協(xié)同進(jìn)程間或驅(qū)動(dòng)器與映射快速的數(shù)據(jù)傳送,內(nèi)存映射能夠戲劇性的增強(qiáng)實(shí)時(shí)操作。

中斷處理:IRQSISRS和ISTS

實(shí)時(shí)應(yīng)用被設(shè)立在指定的時(shí)間間隔內(nèi),對(duì)外部事件做出反應(yīng),實(shí)時(shí)應(yīng)用使用中斷做為一種確保外部事件由操作系統(tǒng)獲知的方式。在Windows中,內(nèi)核和OEM適應(yīng)層(OAL)被設(shè)定成使系統(tǒng)其它部分的中斷和調(diào)度化。WindowsCE平衡操作,并通過把中斷過程分成兩部分而使執(zhí)行更加容易:它分為中斷服務(wù)程序(ISR)和中斷服務(wù)線程(IST)兩部分。

每條硬件中斷申請(qǐng)線(IRQ),與一個(gè)ISR相連。當(dāng)中斷成立和中斷出現(xiàn)時(shí),內(nèi)核為此調(diào)用寄存的ISR,ISR為中斷處理的內(nèi)核模式部分盡可能短的保存。它首先將內(nèi)核放在適合的IST上。

ISR執(zhí)行它的處理并返回一個(gè)ID號(hào)到內(nèi)核,內(nèi)核檢查返回的中斷ID號(hào),并設(shè)置相關(guān)事件,中斷服務(wù)線程等待事件。當(dāng)內(nèi)核設(shè)置事件時(shí),IST停止等待并開始執(zhí)行,附加的中斷進(jìn)程,中斷處理大部分實(shí)際上出現(xiàn)在IST中,兩個(gè)的線程優(yōu)先權(quán)(級(jí)別0和1),通常指定為ISTS,保證這些線程運(yùn)行得足夠快。

正如前面所說,處在的ISTS不能被其它的線程占用,這些線程持續(xù)執(zhí)行直到它們截止或放棄。

WindowsCE不能支持群體中斷,這就意味著當(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)

本論文中,IntervuptLatency詞組主要指的是較件中斷,處理響應(yīng),也即是從處部中斷到達(dá)處理器到中斷開始處理間的時(shí)間。

WindowsCE中斷響應(yīng)時(shí)間是針對(duì)鎖存在內(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í)間=value1dISR_Currentsum(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í)間vahe1dISR-cumeneu間到達(dá)的中斷

例如,考慮一個(gè)擁有關(guān)鍵優(yōu)先權(quán)ISR的嵌入式系統(tǒng),因?yàn)镮SR被設(shè)成,這有樣ISRSdISR-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í)間=value2sum(dIST)sum(dISR)

value2=由內(nèi)核處理的響應(yīng)值

sum(dIST)=所有的出現(xiàn)在ISR和IST,開始的優(yōu)先級(jí)ISTS和線程上下文轉(zhuǎn)換時(shí)間總和。

sum(dISR)=在中斷(?)ISR和它的IST之間運(yùn)行的其它ISRS持續(xù)時(shí)間總和。

簡單的例子——具有一個(gè)關(guān)鍵級(jí)ISR和一個(gè)關(guān)鍵級(jí)線程(無其它0優(yōu)先級(jí)的線程)的嵌入式系統(tǒng)——沒有其它的ISTS能夠在ISR和IST之間中斷,然而在關(guān)鍵級(jí)的ISR和它相關(guān)的IST開始間其它的ISRS能被處理。

因?yàn)镮SRS一旦能夠獲得,即可被處理,很容易想象成病態(tài)情況,涉及產(chǎn)生一個(gè)持續(xù)的ISRS流,從而產(chǎn)生不確定的推遲。IST的開始不可能出現(xiàn),因?yàn)镺EM對(duì)系統(tǒng)中的中斷完成控制。因?yàn)镺EM(原始設(shè)備制造商)為特定操作系統(tǒng)設(shè)計(jì)傳統(tǒng)WindowsCE版本。OCM利用目標(biāo)操作環(huán)境限制使系統(tǒng)設(shè)計(jì)化。

為減少響應(yīng)時(shí)間,OEM控制ISR和IST處理時(shí)間中斷優(yōu)先級(jí)線程優(yōu)先級(jí)。公式中的value1和walue2代表,WindowsCE內(nèi)核中處理時(shí)間,這是OEM不能控制的目前的在分時(shí),研究工作涉及這些確認(rèn)值。

確保WindowsCE的實(shí)時(shí)操作

兩種不同途徑被用來確保WindowsCE操作:

由WindowsCE開發(fā)組進(jìn)行內(nèi)部的檢查或分析內(nèi)核代碼,

OEM和ISV(獨(dú)立軟件銷售商)利用一些將在未來的WindowsCE版本嵌入式工具包(forVCFT)提供工具來確保特定配置。

WindowsCE關(guān)于VC的嵌入工具包包括以下工具:

(一個(gè)對(duì)于分時(shí)研究的內(nèi)核的工具版本和Intrtinrt.ext應(yīng)用軟件來觀察,中斷過程的、、平均時(shí)間。

微軟也能開發(fā)其它的針對(duì)顧客需要的分時(shí)工具。

WindowsCE開發(fā)組,已經(jīng)檢查了內(nèi)核代碼以證實(shí)它能由差的情況時(shí)間表征,它是獨(dú)立于系統(tǒng)對(duì)象數(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)這沒有非持久的循環(huán)在KCALLS,這意味著:并所有的KCALLS能夠表示成單向分支,代碼路徑,并確保通過KCALL并獨(dú)立于輸入?yún)?shù)發(fā)現(xiàn)差事件時(shí)間成為可能。

查找實(shí)際的差事件時(shí)間包括使用Instrumentedkemal,這僅是一個(gè)內(nèi)核版本,它在設(shè)定應(yīng)用環(huán)境后編輯使用,KCALL_PROFICE=1,以保證額外的分時(shí)功能,這個(gè)instrumentedkemel與debugkemel不同,Instrumentted是為一個(gè)零售的內(nèi)核使用,它用來獲得分時(shí)值,這常對(duì)于裝運(yùn)產(chǎn)品常常諱之莫深,在retailkernal和instrumentedkernel區(qū)別是它的裝備。

Instrumenttedkernel記錄所有的KCALL時(shí)間,這些值,包括、和平均時(shí)間,并能夠通過調(diào)用專用的API函數(shù)DumPkcallprofile打印到調(diào)試接口,Instrumentedkernel通常運(yùn)行在強(qiáng)狀態(tài)下,然后調(diào)用Dumpkcallprefile來獲得時(shí)間。

中斷測試應(yīng)用軟件Intrtime.exe,在WindowsCE標(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í)間控制。

在WindowsCE2版(Beta版)測試響應(yīng)

Intertime應(yīng)用軟件在odoSH3參考平臺(tái)上運(yùn)行1000次中斷測試,內(nèi)部運(yùn)行58.98Mhz,外部為14.745Mhz外部頻率,這個(gè)測試在一個(gè)標(biāo)準(zhǔn)的H/PC配置,它包括WindowsCE所有模式和組合。僅有主操作系統(tǒng)進(jìn)程進(jìn)行(NK.exe,Filesys.exe,Gwes.exe,Device.EXE,Shell.EXE和Explover.EXE),在測試中無用戶初始中斷(觸摸屏、鍵盤或其它應(yīng)用),應(yīng)用軟件可下面的ISR和IST開始、和時(shí)間:

響應(yīng)、值(1000次測試)

ISR開始1.3-7.5微秒

IST開始93-275微秒

大多數(shù)測試結(jié)果,分布在值數(shù)值附近,當(dāng)測試ISR開始時(shí)間時(shí),值1.3和1.6微秒,出現(xiàn)了293和549次,共占測試的84%,類似的超過90%的(1000次中923)start-of-IST測試出響應(yīng)為102微秒或少一些。

Intertime應(yīng)用軟件也使用一個(gè)用戶指定數(shù)目的系統(tǒng)對(duì)象來測試ISR和IST開始時(shí)間。雖然工作十分初級(jí),但它驗(yàn)證了ISR開始時(shí)間與系統(tǒng)對(duì)象數(shù)目無關(guān),測試設(shè)為1000次(除了特別更改)并且線程優(yōu)先權(quán)為5或7。

ISR開始值后臺(tái)線程、數(shù)目(每個(gè)線程一個(gè)事件)優(yōu)先級(jí)

8.407

8.65(注:僅100次)7

9.010(注:僅100次)5

14.8105

19.2105

17.0107

12.8205

11.020(注:僅100次)7

10.0507

15.01005

15.61007

這數(shù)值不是系統(tǒng)對(duì)象數(shù)目的函數(shù),不同的值可能由于中斷出現(xiàn)時(shí)內(nèi)核狀態(tài),開發(fā)組目前正在研究以鑒定ISR開始差時(shí)間值。

由這些結(jié)果向回推,假定ISR開始值代表情況。此時(shí),dISR_Current和Sum(dISR_Htgbor)為0,的value1=ISR開始值=1.3微秒,類似的設(shè)定情況時(shí),Sum(dIST)和Sum(dISR)為0,Value值=.IST開始值=93微秒,單從測驗(yàn)結(jié)果看,它是不能確定,valume1或value2值。

附加的分時(shí)信息能夠由instrumentedkernel收集,對(duì)于一個(gè)差情況在IST開始前花費(fèi)時(shí)間valume2,能由下列公式計(jì)算:

Value2=dkCalldNextThread

dKcall=.內(nèi)核調(diào)用時(shí)間;當(dāng)消除優(yōu)先級(jí)時(shí),花費(fèi)在內(nèi)核的一部分時(shí)間量。

DNextThread=Next.Thread內(nèi)核調(diào)用時(shí)期。花費(fèi)在IST中時(shí)間量。

實(shí)際上,在0級(jí)別線程調(diào)度要比NextThread調(diào)用快,但此公式能估計(jì)出上限。

下面表格顯示了用instrumentedKernel進(jìn)行初步測試時(shí)差事件結(jié)果,這些測試條件與Intrtime測試相同。

內(nèi)核調(diào)用模型值(ad-hoc.testing)

時(shí)間值(所用內(nèi)核調(diào)用)266微秒(Learecrite)

NextThread237微秒

總值503微秒

Instrumentedkernel顯示這些條件下value2上限為500微秒。這個(gè)值為兩個(gè)差事件總時(shí)間,遠(yuǎn)遠(yuǎn)超過了由Intritime應(yīng)用程序得到的結(jié)果,也大于實(shí)際差事件時(shí)間。例如:通過Nextthread調(diào)度一個(gè)優(yōu)先級(jí)為0的線程,不會(huì)導(dǎo)致差事件,這意味著500微秒是一個(gè)高于實(shí)際的差事件值的保守值。

IntertimeUtility對(duì)于從總體上觀察差事件值十分有用,InstrumenttedKemel對(duì)于獲得可能差事件的值,通過內(nèi)核描繪出所有響應(yīng)原因——一個(gè)IST在這些事件運(yùn)行,但在內(nèi)核非優(yōu)先部分運(yùn)行執(zhí)行時(shí),將受阻礙,系統(tǒng)的差事件響應(yīng)可由每一部分的差事件總和計(jì)算。

注意本論文中所有測試結(jié)果均基于內(nèi)部WindowsCE的beta版,目前存在的操作系統(tǒng)和應(yīng)用將繼續(xù)得到修正,并且進(jìn)行附加測試以獲得在不同操作條件下系統(tǒng)操作,這些數(shù)值將繼續(xù)被更新并出版,以反思目前的操作系統(tǒng)版本。

WindowsCE的主要特色

增進(jìn)工作的產(chǎn)能和效率通訊錄,日歷行程,工作管理,時(shí)鐘,計(jì)算機(jī),Windows檔案總管可攜式應(yīng)用軟體--MicrosoftPocketExcel與MicrosoftPocketWord控制臺(tái)--管理控制WindowsCE與辦公室PC的連結(jié)--在您的桌上型與可攜式的辦公室間轉(zhuǎn)移資料與他人通訊--可透過電子郵件及紅外線無線電通訊,與其他手?jǐn)y式設(shè)備交換資料利用可攜式InternetExplorer遨游網(wǎng)絡(luò)想要并使你的HPC達(dá)到的功用。

WindowsCE的使用從隨時(shí)隨地的使用電腦及口袋中藏著PC,到智慧型家電用品及豐富的多媒體家庭劇院,MicrosoftWindowsCE為工作、家庭及其間的任何一點(diǎn)開啟了動(dòng)態(tài)的、嶄新的開發(fā)遠(yuǎn)景。這個(gè)模組化、可自訂的作業(yè)系統(tǒng)將Windows平臺(tái)延伸到桌面之外,到達(dá)更小、更機(jī)動(dòng)性、更特別的裝置之上,然而它的Windows血統(tǒng)則確保了它的相容性,并且支援了更廣泛的開發(fā)基礎(chǔ)?!窶ICROSOFTWINDOWSCE」揭露了革命性的系統(tǒng)架構(gòu),可以讓身為開發(fā)者或科技的您,擴(kuò)展消費(fèi)者及工業(yè)電子上的新市場,其中包括了:

手握式PC手掌式PC車用電腦網(wǎng)絡(luò)電視網(wǎng)絡(luò)電話DVD及多媒體裝置未公開及未發(fā)現(xiàn)的秘密!您也將會(huì)發(fā)現(xiàn)觀念性的架構(gòu)來幫助您來了解您的設(shè)計(jì)選擇,并看到真實(shí)世界的范例,為您展現(xiàn)此一卓越作業(yè)系統(tǒng)的彈性及潛力。

在WinCE中創(chuàng)建自己的快捷方式

快捷方式或稱(。lnk)文件是可以提供到其他文件鏈接的很小的文件,你可以使用。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、從PlatformBuilder中的File菜單選擇NewProjectorFile

2、在NewProjectorFile對(duì)話框中選擇Files標(biāo)簽

3、選擇TextFile類型

4、在Filename文本框中,輸入FileName.lnk,其中FileName可根據(jù)需要輸入,下同。這樣,一個(gè)新文件就被創(chuàng)建并打開了

5、在FileName.lnk中,輸入鏈接命令

.lnk文件是一個(gè)包含了命令行和被鏈接目標(biāo)的文本文件,它有一個(gè)命令行長度部分和一個(gè)命令行。你也可以通過參數(shù)傳遞給被鏈接的目標(biāo),這是可選的。然而,如果快捷方式模塊在Coredll中被替換了,那么這個(gè)行為也可能會(huì)被改變。

作為默認(rèn)的,一個(gè)。lnk文件使用如下的格式。

[后面命令行和參數(shù)的ASCII字符串的長度]#[命令行[參數(shù)]]

舉個(gè)例子,要能過兩個(gè)參數(shù)運(yùn)行你的MyApp.exe程序,一個(gè)MyApp.lnk文件內(nèi)可包含這個(gè)語句:

40#\Windows\MyApp.exeparameter1parameter2

6、從File菜單中選擇SaveAs

7、把這個(gè)文件保存在BSP的OAK部分以便于編譯進(jìn)操作系統(tǒng)image中。使用SaveAs對(duì)話框?qū)Ш降?_WINCEROOT%\public\PlatformName\WindowsCEVersion\BSPName\OAK\Files并且選擇Save

你已經(jīng)創(chuàng)建了快捷方式文件,你現(xiàn)在可以通過編輯Project.bib把它加入到OS中,或者添加到你的平臺(tái)組件樹中。如果是前者,只需打開Project.bib文件并且在FILES段中加入如下一行代碼:

MyApp.LNK$(_FLATREL

EASEDIR)\MyApp.LNKNKS

在這個(gè)例子中,MyApp.LNK被放入NK的內(nèi)存塊中,可選的參數(shù)S把它定義成系統(tǒng)文件屬性。

總結(jié)

本文介紹微軟WindowsCE內(nèi)核設(shè)計(jì)以達(dá)到RT

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論