<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MS Windows CE的實(shí)時(shí)系統(tǒng)

          MS Windows CE的實(shí)時(shí)系統(tǒng)

          作者: 時(shí)間:2012-05-02 來(lái)源:網(wǎng)絡(luò) 收藏

          介紹

          本文引用地址:http://www.ex-cimer.com/article/149161.htm

          Microsoft

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

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

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

          搞清楚實(shí)時(shí)系統(tǒng)和實(shí)時(shí)操作系統(tǒng)(RTOS)的區(qū)別至關(guān)重要,實(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))必須是多線(xiàn)程和優(yōu)先級(jí)之分。

          OS必須支持線(xiàn)程優(yōu)先級(jí)。

          一個(gè)優(yōu)先級(jí)繼承的系統(tǒng)必須存在。

          OS必須支持可預(yù)測(cè)的線(xiàn)程,同步發(fā)送機(jī)理。

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

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

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

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

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

          MicrosoftWindowsCE

          概論

          微軟WindowsCE被設(shè)計(jì)成針對(duì)小型設(shè)備(它是典型的擁有有限內(nèi)存的無(wú)磁盤(pán)系統(tǒng))的通用操作系統(tǒng)。WindowsCE可以通過(guò)設(shè)計(jì)一層位于內(nèi)核和硬件之間代碼來(lái)用設(shè)定硬件平臺(tái),這即是眾所周知的硬盤(pán)壓縮層(HAL),(在以前解釋時(shí),這被稱(chēng)為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)品定制。另外,一些可利用模式也可作為其組成部分,這意味著這些模式能夠通過(guò)從一套可利用的組份做出選擇,從而成為標(biāo)準(zhǔn)模式,通過(guò)選擇,能夠達(dá)到系統(tǒng)要求的最小模式,OEM能夠減少存儲(chǔ)腳本和操作系統(tǒng)的運(yùn)行。

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

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

          線(xiàn)程和線(xiàn)程優(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è)線(xiàn)程,每個(gè)線(xiàn)程代表進(jìn)程的一個(gè)獨(dú)立部分,一個(gè)線(xiàn)程被指定為進(jìn)程的基本線(xiàn)程,進(jìn)程也能創(chuàng)造一個(gè)未定數(shù)目的額外線(xiàn)程,額外線(xiàn)程實(shí)際數(shù)目,僅由可利用的系統(tǒng)資源限定。

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

          優(yōu)先級(jí)描述

          0

          (最高級(jí))關(guān)鍵的線(xiàn)程優(yōu)先級(jí)

          (最高優(yōu)先等級(jí))

          1最高線(xiàn)程優(yōu)先級(jí)

          2高于通常的線(xiàn)程優(yōu)先級(jí)

          3通常線(xiàn)程優(yōu)先級(jí)

          4低于常規(guī)線(xiàn)程優(yōu)先級(jí)

          5最低線(xiàn)程優(yōu)先級(jí)

          6高于IDLE的線(xiàn)程優(yōu)先級(jí)

          7

          (最低)IDLE線(xiàn)程優(yōu)先級(jí)

          (最低優(yōu)先級(jí))

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

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

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


          上一頁(yè) 1 2 3 4 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();