亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種用于嵌入式實時系統(tǒng)的任務(wù)調(diào)度方法

        2021-07-01 17:23:10高博牛偉馬振華
        中國新通信 2021年6期
        關(guān)鍵詞:嵌入式系統(tǒng)任務(wù)調(diào)度

        高博 牛偉 馬振華

        【摘要】? ? 任務(wù)調(diào)度是強實時嵌入式系統(tǒng)必備的功能,本文利用嵌入式處理器自身的中斷機制,實現(xiàn)了一種應(yīng)用于強實時嵌入式系統(tǒng)的可搶占式任務(wù)調(diào)度方法。該方法具有實現(xiàn)簡單、占用空間小、運行效率高、復(fù)雜性低等特點,非常適用于資源緊張且對時間非常敏感的嵌入式系統(tǒng)。經(jīng)過驗證,本方法任務(wù)的周期準確、運行穩(wěn)定可靠,且在多型產(chǎn)品中得到應(yīng)用。

        【關(guān)鍵詞】? ? 任務(wù)調(diào)度? ? 嵌入式系統(tǒng)? ? 數(shù)字信號處理器

        引言

        隨著科學(xué)技術(shù)的發(fā)展,嵌入式設(shè)備的發(fā)展越來越快,用于工業(yè)控制的嵌入式計算機往往都是實時系統(tǒng),要求系統(tǒng)中運行的各個任務(wù)都具有很強的實時性。一般為了解決嵌入式實時系統(tǒng)對任務(wù)實時性的要求,可以向系統(tǒng)中移植實時操作系統(tǒng),但其對系統(tǒng)的存儲資源都有一定的要求,再加上任務(wù)調(diào)度算法的存在,也會對系統(tǒng)的性能帶來一定損耗。同時由于嵌入式實時操作系統(tǒng)功能不僅限于任務(wù)調(diào)度,對于一些簡單的實時系統(tǒng)會引入很多無用功能,提高軟件的復(fù)雜性,降低系統(tǒng)的安全性。除此之外,嵌入式電子設(shè)備為了降低成本,提高用戶體驗,越來越注重體積、重量、能耗、價格等因素,特別對于輕量級實時系統(tǒng),它們對資源的要求更加苛刻。本文針對上述情況,介紹了一種基于CPU內(nèi)部中斷的搶占式實時任務(wù)調(diào)度方法,并使用TI公司的TMS320F2812系列數(shù)字處理芯片進行實現(xiàn),該方法還具有簡單的優(yōu)先級管理功能。本文的任務(wù)調(diào)度軟件可以大大降低對存儲空間的需求,降低系統(tǒng)成本,提高運行效率,可以用于需要簡單的任務(wù)調(diào)度功能的實時系統(tǒng)。

        TMS320F2812是TI公司生產(chǎn)的C2000系列中的一種高性能DSP,其主頻最高可達150MHz,且外設(shè)資源豐富,性能穩(wěn)定,廣泛應(yīng)用于各種控制領(lǐng)域。

        一、實現(xiàn)原理

        1.1任務(wù)調(diào)度原理

        嵌入式實時系統(tǒng)中往往具有多個實時任務(wù),每個任務(wù)的執(zhí)行周期均有嚴格的要求,任務(wù)間也具有優(yōu)先級的區(qū)分,優(yōu)先級高的可以搶占優(yōu)先級低的任務(wù)。上述概念就是嵌入式實時系統(tǒng)中的任務(wù)調(diào)度,它的核心操作就是任務(wù)上下文切換。一個實時系統(tǒng)中實時周期任務(wù)的運行過程示意圖參見圖 1。

        圖 1示例中有3個周期任務(wù),其中高優(yōu)先級任務(wù)的執(zhí)行周期為t1,中優(yōu)先級任務(wù)的執(zhí)行周期為t2,低優(yōu)先級任務(wù)的執(zhí)行周期為t3。時間段A中,高優(yōu)先級任務(wù)執(zhí)行完畢,中優(yōu)先級任務(wù)執(zhí)行,同時中優(yōu)先級任務(wù)的執(zhí)行過程被高優(yōu)先級任務(wù)多次搶占。在時間段B中,高、中優(yōu)先級任務(wù)均執(zhí)行完畢,低優(yōu)先級任務(wù)執(zhí)行,執(zhí)行一段時間后,又被高優(yōu)先級任務(wù)搶占。在時間段C中,各個優(yōu)先級的任務(wù)均執(zhí)行完畢,處理器處于空閑狀態(tài),低優(yōu)先級任務(wù)的執(zhí)行過程被高優(yōu)先級和中優(yōu)先級任務(wù)多次搶占。

        任務(wù)上下文切換的過程與中斷類似,當需要任務(wù)切換時,需要完整地保存正在執(zhí)行任務(wù)的現(xiàn)場,即CPU寄存器,并恢復(fù)即將執(zhí)行任務(wù)的現(xiàn)場。除了最基本的任務(wù)切換功能外,還需要一些額外的算法和機制來支持任務(wù)調(diào)度以及任務(wù)優(yōu)先級控制。本文提出一種方法,充分利用DSP2812本身的中斷機制,實現(xiàn)一種簡單的任務(wù)優(yōu)先級控制和任務(wù)切換方法,僅支持搶占式任務(wù)調(diào)度,可以用于輕量級的嵌入式實時系統(tǒng)。

        1.2 DSP2812的中斷機制

        使用中斷實現(xiàn)任務(wù)調(diào)度,就需要把每個任務(wù)放在一個獨立的CPU中斷中,利用中斷觸發(fā)CPU自動的上下文切換。同時為了支持任務(wù)優(yōu)先級的控制,就要求這些被當作任務(wù)的中斷必須為可屏蔽中斷,這就要求CPU的可屏蔽中斷支持以下特性:

        1)可以通過軟件觸發(fā);

        2)不同的中斷具有不同的優(yōu)先級;

        3)中斷支持嵌套,且可以被多次嵌套;

        4)滿足以上條件的中斷數(shù)量應(yīng)大于任務(wù)個數(shù)。

        DSP2812具有外設(shè)中斷擴展(Peripheral Interrupt Expansion)模塊,當使能PIE模塊后,DSP2812的可屏蔽中斷共有114個,其中有96個都是PIE模塊擴展出來的中斷,這些中斷被分為12組,每一組包含8個中斷源。

        DSP2812的可屏蔽中斷首先受到全局中斷標志INTM的控制。由于PIE模塊的12個組分別連接到CPU的INT1到INT12,每一組的中斷使能受到中斷使能寄存器IER對應(yīng)位的控制。最后每一組內(nèi)8個中斷又受到對應(yīng)組的PIE模塊中斷使能寄存器PIEIERx的控制。DSP2812的PIE模塊中每一個中斷均支持軟件觸發(fā),以通過軟件觸發(fā)某個PIEx.y的中斷為例,首先需要使能INTM,然后在IER中使能INTx,在PIEIERx中使能INTy,最后通過向PIEIFRx的INTy寫1,觸發(fā)PIEx.y中斷。

        利用中斷實現(xiàn)多任務(wù)的調(diào)度,每次任務(wù)切換就是一次中斷嵌套,對于DSP2812來說,它的C語言運行環(huán)境在進入中斷服務(wù)程序后,會自動禁止全局中斷,如果要允許中斷嵌套,則需要手動使能全局中斷。這種機制恰好方便了使用中斷實現(xiàn)任務(wù)調(diào)度,在進入中斷到手動使能全局中斷的這段時間內(nèi),CPU不會被其他任何可屏蔽中斷打斷,也就是這段代碼處于臨界區(qū)。這段區(qū)域就可以使能比正在執(zhí)行任務(wù)優(yōu)先級高任務(wù)的中斷,禁止比正在執(zhí)行任務(wù)優(yōu)先級低任務(wù)的中斷,從而實現(xiàn)優(yōu)先級控制。而中斷現(xiàn)場的保存和恢復(fù),也就是任務(wù)上下文切換由CPU的中斷機制自動完成,同時如果DSP2812的C語言運行環(huán)境檢測到中斷服務(wù)程序中調(diào)用了函數(shù),則會在進入中斷時自動保存所有寄存器,這種機制極大地簡化了任務(wù)上下文切換的過程。

        二、軟件實現(xiàn)

        下面以一個強實時系統(tǒng)為例,說明本文方法的實現(xiàn)過程。該系統(tǒng)有1個外部中斷,接到XINT1上,該中斷在PIE模塊中的中斷源為PIE1.4。該系統(tǒng)共有2個強實時周期任務(wù),執(zhí)行周期分別為20ms和100ms,分別命名為TaskA和TaskB。

        2.1中斷配置

        具有實時任務(wù)的系統(tǒng)中必須有一個時基,一般來源于CPU定時器,本例中使用DSP2812的定時器0作為時基,時基中斷的觸發(fā)頻率為1kHz,即每隔1ms觸發(fā)一次。定時器0的中斷源為PIE1.7。

        此時PIE組1的中斷已經(jīng)使用了2個,為了方便使用,本例將2個任務(wù)均放在未使用的PIE組2中,使用PIE2.1和PIE2.2。

        根據(jù)上述中斷的要求,具體中斷配置如下:

        1)使能IER1和IER2,使能PIEIER1.4、PIEIER1.7以及PIEIER2.1和PIEIER2.2。

        2)軟件中控制中斷優(yōu)先級從高到低的順序為PIE1.4、PIE1.7、PIE2.1和PIE2.2。

        2.2定時器中斷服務(wù)程序

        定時器中斷服務(wù)程序就是時基的處理程序,該程序需要實現(xiàn)每個任務(wù)的調(diào)度。同時時基中斷不能被任務(wù)打斷,DSP2812處理器自身具有執(zhí)行中斷時默認關(guān)閉可屏蔽中斷的功能。定時器中斷服務(wù)程序要完成的操作如下:

        1)根據(jù)每個任務(wù)的運行周期,利用定時器中斷次數(shù)計數(shù)器,周期性設(shè)置每個任務(wù)對應(yīng)的PIEIFR寄存器。對于本例,每隔20次中斷將PIEIFR2.1置位;每隔100次中斷將PIEIFR2.2置位。

        2)為了防止任務(wù)函數(shù)執(zhí)行超時造成重入,每次置位IFR時,需要預(yù)先判斷對應(yīng)的任務(wù)是否執(zhí)行完畢,可以在任務(wù)的中斷服務(wù)程序中,通過標志位實現(xiàn)。如果對應(yīng)任務(wù)未執(zhí)行完,需要設(shè)置超時標志,不能設(shè)置置相應(yīng)的PIEIFR寄存器。

        3)累加定時器中斷次數(shù)計數(shù)器,同時置位定時器的PIEACK寄存器,以清除定時器中斷。

        2.3任務(wù)中斷服務(wù)程序

        為了實現(xiàn)可搶占任務(wù)調(diào)度,每個任務(wù)中都可以被比自身優(yōu)先級高的任務(wù)以及定時中斷打斷,因此任務(wù)需要允許中斷嵌套。同時開啟中斷嵌套后,需要手動控制可以打斷當前任務(wù)中斷的使能。同時除了任務(wù)以外的其他中斷應(yīng)當保持使能。每個任務(wù)中斷服務(wù)程序需要完成的操作如下:

        1)設(shè)置任務(wù)開始執(zhí)行標志,以便定時器中斷服務(wù)程序判斷任務(wù)是否超時。

        2)將IER和PIEIER寄存器設(shè)置為使能比自己優(yōu)先級高任務(wù)的中斷,以及所有非任務(wù)中斷。例如當運行最高優(yōu)先級任務(wù)TaskA時,不允許其他任務(wù)搶占,但允許被中斷搶占。此時IER需要使能第1位、禁止第2位,而PIEIER1保持不變,PIEIER2需要將第1位和第2位均禁止斷;當運行TaskB時,要允許TaskA搶占,還要允許中斷搶占,此時IER使能第1位和第2位,PIEIER1保持不變,同時PIEIER2禁止第2位使能第1位。

        3)使能全局中斷,并執(zhí)行任務(wù),過程中允許所有中斷和比當前任務(wù)優(yōu)先級高的任務(wù),打斷當前任務(wù)的執(zhí)行。

        4)禁止全局中斷,將IER和PIEIER寄存器恢復(fù)為任務(wù)中斷前的狀態(tài)。

        5)清除任務(wù)開始執(zhí)行標志并執(zhí)行中斷返回。

        三、方法驗證

        采用第3節(jié)的示例對本文提出的任務(wù)調(diào)度方法進行驗證,每個任務(wù)均執(zhí)行耗費一定時間的操作,分別測量每個任務(wù)的執(zhí)行周期,結(jié)果參見圖 2。

        圖 2中,上面的波形表示TaskA即20ms任務(wù)的執(zhí)行情況,下面的波形表示TaskB即100ms任務(wù)的執(zhí)行情況。20ms任務(wù)的執(zhí)行時間大約為4ms,其中被外部中斷打斷時大約多執(zhí)行1ms。100ms任務(wù)的執(zhí)行時間大約為50ms,其中被20ms打斷5次,大約需要20ms,任務(wù)本身的執(zhí)行也會被外部中斷打斷。本方法任務(wù)運行周期穩(wěn)定,能夠?qū)崿F(xiàn)實時任務(wù)調(diào)度。

        四、結(jié)束語

        本文提出的任務(wù)調(diào)度方法利用了DSP本身的中斷機制,任務(wù)調(diào)度周期準確且可搶占,能夠滿足嵌入式強實時系統(tǒng)的要求。同時其代碼量非常小,幾乎不占用額外的運行RAM,且任務(wù)切換完全使用CPU本身的中斷自動切換機制,具有安全性高、效率高的優(yōu)點。

        猜你喜歡
        嵌入式系統(tǒng)任務(wù)調(diào)度
        基于PEPA的云計算任務(wù)調(diào)度性能分析
        基于改進NSGA-Ⅱ算法的協(xié)同制造任務(wù)調(diào)度研究
        基于時間負載均衡蟻群算法的云任務(wù)調(diào)度優(yōu)化
        辦公自動化系統(tǒng)的設(shè)計
        嵌入式系統(tǒng)在醫(yī)療器械中的應(yīng)用分析
        基于物聯(lián)網(wǎng)項目驅(qū)動的嵌入式系統(tǒng)教學(xué)改革的研究與實踐
        嵌入式系統(tǒng)課程“中斷、異常與事件”教學(xué)實踐及啟示
        計算機教育(2016年7期)2016-11-10 08:31:34
        面向?qū)嵺`創(chuàng)新人才培養(yǎng)的嵌入式系統(tǒng)教學(xué)研究
        計算機教育(2016年7期)2016-11-10 08:12:11
        在DiskOnChip上構(gòu)建VxWorks系統(tǒng)開發(fā)環(huán)境
        基于小生境遺傳算法的相控陣雷達任務(wù)調(diào)度
        提供最新的在線欧美综合一区| 国产小视频在线看不卡| 特级精品毛片免费观看| 无码夜色一区二区三区| 91综合久久婷婷久久| 国产爽快片一区二区三区| 久久精品国产99国产精偷| 婷婷丁香五月中文字幕| 亚洲欧美日韩在线中文一| 国产乱人伦偷精品视频还看的| 国产在热线精品视频| 国产欧美精品区一区二区三区| 中文亚洲AV片在线观看无码| 高清国产国产精品三级国产av| 午夜精品久久久久久久无码| 99久久免费看少妇高潮a片特黄| 国产精品国产三级国产AvkTV| 亚洲不卡免费观看av一区二区| 久久天天躁狠狠躁夜夜avapp| 日韩黑人欧美在线视频观看| 日韩久久免费精品视频| 国产婷婷色一区二区三区深爱网| 国产亚洲精品久久久ai换| 亚洲AV无码成人精品区网页| 国产精品自拍网站在线| 公与淑婷厨房猛烈进出| 久久精品国产自清天天线| 国产精品国产三级国产av主| 国产日产在线视频一区| 国产成人av大片大片在线播放| 欧美日韩国产在线观看免费| 国产午夜激情视频在线看| 艳妇臀荡乳欲伦交换h在线观看| 夜爽8888视频在线观看| 国产免费激情小视频在线观看| 亚洲一区二区国产激情| 国产伦久视频免费观看视频| 亚洲一区二区高清精品| 亚洲不卡免费观看av一区二区| 欧美成人片在线观看| 乱人伦视频69|