• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      針對(duì)嵌入式實(shí)時(shí)編程的系統(tǒng)性教學(xué)方法探討

      2009-08-28 09:09:14王蘇峰陸洪毅侯方勇
      計(jì)算機(jī)教育 2009年14期
      關(guān)鍵詞:嵌入式系統(tǒng)

      王蘇峰 竇 勇 陸洪毅 侯方勇

      摘要:隨著嵌入式計(jì)算技術(shù)的蓬勃發(fā)展和在各行各業(yè)的廣泛應(yīng)用,嵌入式系統(tǒng)成為當(dāng)今國(guó)際教學(xué)和科研的熱點(diǎn)領(lǐng)域之一。由于實(shí)際應(yīng)用的需要,嵌入式系統(tǒng)大多是實(shí)時(shí)系統(tǒng),對(duì)響應(yīng)時(shí)間有嚴(yán)格的要求,因此其關(guān)鍵是如何保證系統(tǒng)的實(shí)時(shí)性。為了滿足系統(tǒng)的實(shí)時(shí)性需要,人們提出了各種各樣的實(shí)時(shí)編程結(jié)構(gòu),但是相關(guān)知識(shí)分散、敘述不夠嚴(yán)密,且未能系統(tǒng)性的歸納和總結(jié)。本文針對(duì)這個(gè)問(wèn)題,詳細(xì)闡述了各種實(shí)時(shí)編程結(jié)構(gòu)的結(jié)構(gòu)模型、實(shí)時(shí)性和優(yōu)缺點(diǎn)。

      關(guān)鍵詞:嵌入式系統(tǒng);實(shí)時(shí)編程結(jié)構(gòu);前后臺(tái)系統(tǒng);實(shí)時(shí)操作系統(tǒng)

      中圖分類號(hào):G642 文獻(xiàn)標(biāo)志碼:B

      1引言

      隨著嵌入式計(jì)算技術(shù)的蓬勃發(fā)展和在各行各業(yè)的廣泛應(yīng)用,嵌入式系統(tǒng)成為當(dāng)今國(guó)際教學(xué)和科研的熱點(diǎn)領(lǐng)域之一。由于實(shí)際應(yīng)用的需要,嵌入式計(jì)算大多是實(shí)時(shí)計(jì)算系統(tǒng),對(duì)響應(yīng)時(shí)間有嚴(yán)格的要求,操作的正確性不但依賴于邏輯設(shè)計(jì)的正確程度,而且更依賴于這些操作進(jìn)行的時(shí)間。所以嵌入式實(shí)時(shí)系統(tǒng)可以說(shuō)是能在確定的時(shí)間內(nèi)對(duì)外部的異步事件做出響應(yīng)并執(zhí)行其功能的計(jì)算機(jī)系統(tǒng),這包含著兩層含義:一個(gè)是外部的異步事件——事件響應(yīng),另外一個(gè)是執(zhí)行其功能——任務(wù)處理。嵌入式實(shí)時(shí)系統(tǒng)有兩種類型:軟實(shí)時(shí)系統(tǒng)和硬實(shí)時(shí)系統(tǒng)。軟實(shí)時(shí)系統(tǒng)僅要求事件響應(yīng)是實(shí)時(shí)的,并不要求限定任務(wù)必須在多長(zhǎng)時(shí)間內(nèi)完成。硬實(shí)時(shí)系統(tǒng)不僅要求事件響應(yīng)要實(shí)時(shí),而且要求在規(guī)定的時(shí)間內(nèi)完成任務(wù)的處理。通常大多數(shù)實(shí)時(shí)系統(tǒng)是兩者的結(jié)合。因此,嵌入式實(shí)時(shí)系統(tǒng)的關(guān)鍵是如何保證系統(tǒng)的實(shí)時(shí)性。為了滿足系統(tǒng)的實(shí)時(shí)性需要,人們提出了各種各樣的實(shí)時(shí)編程結(jié)構(gòu),但是相關(guān)知識(shí)分散、敘述不夠嚴(yán)密,且未能系統(tǒng)性的歸納和總結(jié)。為了滿足教學(xué)的需要,針對(duì)這個(gè)問(wèn)題,作者在此詳細(xì)的闡述了各種實(shí)時(shí)編程結(jié)構(gòu)的結(jié)構(gòu)模型、實(shí)時(shí)性以及優(yōu)缺點(diǎn)。

      2無(wú)操作系統(tǒng)的實(shí)時(shí)編程結(jié)構(gòu)

      2.1基于查詢方式的實(shí)時(shí)編程結(jié)構(gòu)

      在沒(méi)有中斷機(jī)制的情況下,僅采用查詢方式實(shí)現(xiàn)的實(shí)時(shí)編程結(jié)構(gòu),如圖1所示。

      基于查詢方式的實(shí)時(shí)編程結(jié)構(gòu)側(cè)重任務(wù)的處理,而事件的發(fā)生是通過(guò)查詢事件標(biāo)志來(lái)獲取的;軟件設(shè)計(jì)簡(jiǎn)單可靠,任務(wù)使用的堆棧可以預(yù)測(cè),而且由于任務(wù)之間不嵌套,可以調(diào)用不可重入函數(shù)。但缺點(diǎn)也很明顯,對(duì)事件響應(yīng)不能實(shí)時(shí),只有查詢到該標(biāo)志時(shí)才會(huì)記錄該事件,因此容易丟棄異步事件;所有任務(wù)具有相同優(yōu)先級(jí)別,眾生平等;一個(gè)任務(wù)執(zhí)行時(shí)間不可預(yù)測(cè)時(shí),則所有任務(wù)的響應(yīng)時(shí)間不可預(yù)測(cè);采用無(wú)限循環(huán)結(jié)構(gòu),一個(gè)任務(wù)崩潰則引起整個(gè)系統(tǒng)崩潰。

      在最壞情況下,一個(gè)任務(wù)要得到響應(yīng)要等到其它所有任務(wù)執(zhí)行完畢才會(huì)輪到它,所以實(shí)時(shí)性(最壞情況)取決于所有其它任務(wù)執(zhí)行時(shí)間之和。

      由于該類型嵌入式系統(tǒng)軟件設(shè)計(jì)簡(jiǎn)單可靠,目前在某些任務(wù)簡(jiǎn)單且單一、可靠性要求極高而對(duì)實(shí)時(shí)性要求不是很高的領(lǐng)域(如航空航天領(lǐng)域)依然使用廣泛。

      2.2基于中斷方式的實(shí)時(shí)編程結(jié)構(gòu)

      基于中斷機(jī)制采用純中斷方式實(shí)現(xiàn)的實(shí)時(shí)編程結(jié)構(gòu),事件和任務(wù)處理全部由中斷服務(wù)子程序(ISR)完成。如圖2所示。

      相對(duì)于基于查詢方式的實(shí)時(shí)編程結(jié)構(gòu)來(lái)說(shuō),基于中斷方式的實(shí)時(shí)編程結(jié)構(gòu)則側(cè)重事件的處理,利用中斷優(yōu)先級(jí)解決了優(yōu)先級(jí)問(wèn)題,不再眾生平等。但是由于高優(yōu)先級(jí)中斷長(zhǎng)時(shí)間占用CPU,則容易漏掉低優(yōu)先級(jí)的異步事件;中斷無(wú)限制的嵌套則容易導(dǎo)致棧溢出(嵌入式系統(tǒng)棧容量很小),堆棧不可預(yù)測(cè);由于中斷嵌套,調(diào)用不可重入型函數(shù)時(shí),要滿足互斥條件。

      由于高優(yōu)先級(jí)中斷能得到及時(shí)響應(yīng)和處理,所以實(shí)時(shí)性(最壞情況)取決于中斷響應(yīng)時(shí)間(中斷延遲+保存現(xiàn)場(chǎng)時(shí)間)。相對(duì)于任務(wù)執(zhí)行時(shí)間來(lái)說(shuō),中斷響應(yīng)時(shí)間幾乎可以忽略不計(jì)。中斷恢復(fù)時(shí)間則包括恢復(fù)現(xiàn)場(chǎng)時(shí)間和執(zhí)行中斷返回指令的時(shí)間。

      由于該類型嵌入式系統(tǒng)響應(yīng)及時(shí),但缺點(diǎn)也很明顯,所以在任務(wù)數(shù)量不多且簡(jiǎn)單以及低功耗嵌入式系統(tǒng)中得到了廣泛應(yīng)用。

      2.3基于前后臺(tái)系統(tǒng)的實(shí)時(shí)編程結(jié)構(gòu)

      前后臺(tái)系統(tǒng)通常把程序分成兩部分:前臺(tái)程序和后臺(tái)程序。前臺(tái)程序也就是事件處理程序(中斷級(jí)),通過(guò)中斷來(lái)處理事件。中斷服務(wù)子程序一般只做簡(jiǎn)單的處理,然后給出事件發(fā)生的標(biāo)志,待后臺(tái)程序來(lái)處理,不會(huì)因處理費(fèi)時(shí)的事件而影響其它中斷。后臺(tái)程序也就是任務(wù)處理程序(任務(wù)級(jí)),一個(gè)死循環(huán),循環(huán)查詢各種事件發(fā)生的標(biāo)志位,如果標(biāo)志位置位,就執(zhí)行相應(yīng)的任務(wù)處理程序。如圖3、4所示。

      中斷有優(yōu)先級(jí),也可無(wú)優(yōu)先級(jí),因中斷處理時(shí)間很短,幾乎可以忽略不計(jì)。任務(wù)級(jí)采用周期循環(huán)調(diào)度,一個(gè)超循環(huán)系統(tǒng),同查詢系統(tǒng)一樣,任務(wù)無(wú)優(yōu)先級(jí),眾生平等。

      事件響應(yīng)實(shí)時(shí)性分析:由于中斷服務(wù)子程序只一些做簡(jiǎn)單的處理(事件標(biāo)志置位),事件能得到及時(shí)響應(yīng),可以避免中斷嵌套(棧溢出),避免漏掉異步事件。

      任務(wù)響應(yīng)實(shí)時(shí)性分析:任務(wù)的執(zhí)行是通過(guò)主循環(huán)查詢相應(yīng)的標(biāo)志位(ISR置位)來(lái)執(zhí)行的,可調(diào)用不可重入函數(shù)(任務(wù)間不嵌套),最壞的情況是循環(huán)中所有其它的任務(wù)處理程序執(zhí)行完,才執(zhí)行當(dāng)前事件的任務(wù)處理程序。所以任務(wù)實(shí)時(shí)性(最壞情況)取決于所有其它任務(wù)執(zhí)行時(shí)間之和。

      顯然任務(wù)實(shí)時(shí)性、可靠性難以滿足要求,所有的任務(wù)具有相同的優(yōu)先級(jí)別,即是平等的,對(duì)那些實(shí)時(shí)性要求高的任務(wù)不可能立刻得到處理。如果一個(gè)任務(wù)執(zhí)行時(shí)間不能確定,則所有任務(wù)響應(yīng)時(shí)間不可預(yù)測(cè)。任務(wù)處理(后臺(tái))程序是一個(gè)無(wú)限循環(huán)的結(jié)構(gòu),一旦在這個(gè)循環(huán)體中正在處理的任務(wù)崩潰,使得整個(gè)任務(wù)隊(duì)列中的其它任務(wù)得不到機(jī)會(huì)被處理,從而造成整個(gè)系統(tǒng)的崩潰,任務(wù)優(yōu)先級(jí)固定。

      前后臺(tái)系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,幾乎不需要額外的存儲(chǔ)開(kāi)銷,所以在簡(jiǎn)單的嵌入式應(yīng)用中得到了廣泛的應(yīng)用。

      3基于實(shí)時(shí)操作系統(tǒng)的實(shí)時(shí)編程結(jié)構(gòu)

      實(shí)時(shí)操作系統(tǒng)(Real Time Operating System,RTOS)指具有實(shí)時(shí)性、能支持實(shí)時(shí)系統(tǒng)工作的操作系統(tǒng)。首要任務(wù)是調(diào)度一切可利用的資源完成實(shí)時(shí)任務(wù),其次才著眼于提高系統(tǒng)的使用效率。實(shí)時(shí)操作系統(tǒng)最重要特點(diǎn)是要滿足對(duì)時(shí)間的限制和要求,基本結(jié)構(gòu)如圖5所示。

      根據(jù)基于優(yōu)先級(jí)的任務(wù)調(diào)度策略,實(shí)時(shí)操作系統(tǒng)可分為兩類:非搶占(non-preemption)式實(shí)時(shí)操作系統(tǒng)和搶占式(preemption)實(shí)時(shí)操作系統(tǒng)。非搶占式實(shí)時(shí)操作系統(tǒng)也叫不可剝奪或非搶先式實(shí)時(shí)操作系統(tǒng);搶占式實(shí)時(shí)操作系統(tǒng)也叫可剝奪或搶先式實(shí)時(shí)操作系統(tǒng)。

      3.1基于非搶占式實(shí)時(shí)操作系統(tǒng)的實(shí)時(shí)編程結(jié)構(gòu)

      非搶占式實(shí)時(shí)操作系統(tǒng)就是一個(gè)任務(wù)運(yùn)行后,就把CPU控制權(quán)完全交給了該任務(wù),直到它主動(dòng)將CPU控制權(quán)還回來(lái)。事件處理由中斷服務(wù)子程序來(lái)處理,可以激活一個(gè)掛起態(tài)的任務(wù),使之進(jìn)入就緒態(tài);中斷服務(wù)子程序很簡(jiǎn)單,類似于前后臺(tái)系統(tǒng)僅使標(biāo)志置位。任務(wù)響應(yīng)時(shí)間由最長(zhǎng)任務(wù)執(zhí)行時(shí)間、尋找最高優(yōu)先級(jí)任務(wù)的時(shí)間以及任務(wù)切換時(shí)間決定,所以實(shí)時(shí)性(最壞情況)主要取決于最長(zhǎng)任務(wù)的執(zhí)行時(shí)間(其它可忽略)。

      采用非搶占式實(shí)時(shí)操作系統(tǒng)的優(yōu)點(diǎn):實(shí)時(shí)性比前后臺(tái)系統(tǒng)的要好,程序設(shè)計(jì)相對(duì)簡(jiǎn)單,可調(diào)用不可重入函數(shù)(任務(wù)間不嵌套)。缺點(diǎn):如果最長(zhǎng)任務(wù)的執(zhí)行時(shí)間不能確定,系統(tǒng)的實(shí)時(shí)性(任務(wù)響應(yīng)時(shí)間)就不能確定。

      非搶占式實(shí)時(shí)操作系統(tǒng)運(yùn)行原理如圖6所示。

      3.2基于搶占式實(shí)時(shí)操作系統(tǒng)的實(shí)時(shí)編程結(jié)構(gòu)

      搶占式實(shí)時(shí)操作系統(tǒng)就是指內(nèi)核可以搶占正在運(yùn)行任務(wù)的CPU使用權(quán)并將使用權(quán)交給進(jìn)入就緒態(tài)的優(yōu)先級(jí)更高的任務(wù)。事件處理由中斷服務(wù)子程序來(lái)處理,可以激活一個(gè)掛起態(tài)的任務(wù),使之進(jìn)入就緒態(tài)。由于任務(wù)之間存在嵌套問(wèn)題,應(yīng)用程序不應(yīng)該直接調(diào)用不可重入函數(shù)。調(diào)用不可重入型函數(shù)時(shí),要滿足互斥條件;調(diào)用可重入函數(shù)使得堆棧不可預(yù)測(cè)。任務(wù)響應(yīng)時(shí)間包括尋找最高優(yōu)先級(jí)任務(wù)的時(shí)間和任務(wù)切換時(shí)間,所以實(shí)時(shí)性(最壞情況)主要取決于任務(wù)切換時(shí)間(其它可忽略)。

      采用搶占式實(shí)時(shí)操作系統(tǒng)的優(yōu)點(diǎn):實(shí)時(shí)性好,優(yōu)先級(jí)高的任務(wù)只要具備了運(yùn)行的條件,就可以立即運(yùn)行。缺點(diǎn):如果任務(wù)之間搶占CPU控制權(quán)處理不好,會(huì)產(chǎn)生系統(tǒng)崩潰、死機(jī)等嚴(yán)重后果(優(yōu)先級(jí)倒置);調(diào)用不可重入型函數(shù)時(shí),要滿足互斥條件。

      搶占式實(shí)時(shí)操作系統(tǒng)運(yùn)行原理如圖7所示。

      4結(jié)束語(yǔ)

      前面我們闡述了五種實(shí)時(shí)編程結(jié)構(gòu),下面比較一下各種結(jié)構(gòu)的任務(wù)響應(yīng)實(shí)時(shí)性。查詢方式和前后臺(tái)系統(tǒng)一樣,實(shí)時(shí)性取決于它所有任務(wù)執(zhí)行時(shí)間之和,可能不可預(yù)測(cè);中斷方式實(shí)時(shí)性取決于中斷響應(yīng)時(shí)間,可預(yù)測(cè);非搶占式實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)性取決于最長(zhǎng)任務(wù)執(zhí)行時(shí)間,可能不可預(yù)測(cè);搶占式實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)性取決于任務(wù)切換時(shí)間,可預(yù)測(cè)。

      這是我們多年來(lái)從事嵌入式系統(tǒng)教學(xué)以及科研得來(lái)的一點(diǎn)點(diǎn)心得和體會(huì),僅是我們的一家之言,希望對(duì)同行起到拋磚引玉的作用,也歡迎同行批評(píng)指正。

      參考文獻(xiàn):

      [1]王志英,李宗伯,王蘇峰,等. 嵌入式系統(tǒng)原理與設(shè)計(jì)[M]. 北京:高等教育出版社,2007.

      [2](英)Andrew Bateman,Lain Paterson Stephens. DSP算法、應(yīng)用與設(shè)計(jì)[M]. 陳健,陳偉,汪書寧,譯.北京:機(jī)械工業(yè)出版社,2003.

      [3]Bruce Powel Douglass. 嵌入式與實(shí)時(shí)系統(tǒng)開(kāi)發(fā)——使用UML、對(duì)象技術(shù)、框架與模式[M]. 柳翔,譯. 北京:機(jī)械工業(yè)出版社,2005.

      猜你喜歡
      嵌入式系統(tǒng)
      Teaching Research on IoT and—Embedded System of Software Engineering
      基于Xilinx口袋實(shí)驗(yàn)室的組合邏輯電路設(shè)計(jì)實(shí)驗(yàn)
      面向應(yīng)用的智能專業(yè)嵌入式系統(tǒng)教學(xué)
      基于物聯(lián)網(wǎng)的遠(yuǎn)程紅外控制器
      嵌入式系統(tǒng)軟件開(kāi)發(fā)技術(shù)探析
      基于AVR單片機(jī)的SPI接口設(shè)計(jì)與實(shí)現(xiàn)
      辦公自動(dòng)化系統(tǒng)的設(shè)計(jì)
      嵌入式系統(tǒng)在醫(yī)療器械中的應(yīng)用分析
      基于物聯(lián)網(wǎng)項(xiàng)目驅(qū)動(dòng)的嵌入式系統(tǒng)教學(xué)改革的研究與實(shí)踐
      嵌入式系統(tǒng)課程“中斷、異常與事件”教學(xué)實(shí)踐及啟示
      霍山县| 富裕县| 永济市| 溧阳市| 德阳市| 林芝县| 罗田县| 增城市| 金堂县| 剑川县| 江西省| 双鸭山市| 应用必备| 潍坊市| 永嘉县| 大港区| 焉耆| 绥宁县| 米泉市| 疏勒县| 西安市| 来宾市| 凌源市| 尉犁县| 平度市| 安新县| 琼海市| 北川| 孝感市| 磐石市| 行唐县| 鄂伦春自治旗| 泸西县| 灌南县| 延吉市| 丽水市| 舟曲县| 靖州| 永昌县| 高青县| 贞丰县|