999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2021-07-01 17:23:10高博牛偉馬振華
中國新通信 2021年6期

高博 牛偉 馬振華

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

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

引言

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

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

一、實(shí)現(xiàn)原理

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

嵌入式實(shí)時系統(tǒng)中往往具有多個實(shí)時任務(wù),每個任務(wù)的執(zhí)行周期均有嚴(yán)格的要求,任務(wù)間也具有優(yōu)先級的區(qū)分,優(yōu)先級高的可以搶占優(yōu)先級低的任務(wù)。上述概念就是嵌入式實(shí)時系統(tǒng)中的任務(wù)調(diào)度,它的核心操作就是任務(wù)上下文切換。一個實(shí)時系統(tǒng)中實(shí)時周期任務(wù)的運(yùn)行過程示意圖參見圖 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ù)上下文切換的過程與中斷類似,當(dāng)需要任務(wù)切換時,需要完整地保存正在執(zhí)行任務(wù)的現(xiàn)場,即CPU寄存器,并恢復(fù)即將執(zhí)行任務(wù)的現(xiàn)場。除了最基本的任務(wù)切換功能外,還需要一些額外的算法和機(jī)制來支持任務(wù)調(diào)度以及任務(wù)優(yōu)先級控制。本文提出一種方法,充分利用DSP2812本身的中斷機(jī)制,實(shí)現(xiàn)一種簡單的任務(wù)優(yōu)先級控制和任務(wù)切換方法,僅支持搶占式任務(wù)調(diào)度,可以用于輕量級的嵌入式實(shí)時系統(tǒng)。

1.2 DSP2812的中斷機(jī)制

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

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

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

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

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

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

DSP2812的可屏蔽中斷首先受到全局中斷標(biāo)志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中斷。

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

二、軟件實(shí)現(xiàn)

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

2.1中斷配置

具有實(shí)時任務(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)先級從高到低的順序?yàn)镻IE1.4、PIE1.7、PIE2.1和PIE2.2。

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

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

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

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

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

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

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

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

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

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

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

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

三、方法驗(yàn)證

采用第3節(jié)的示例對本文提出的任務(wù)調(diào)度方法進(jìn)行驗(yàn)證,每個任務(wù)均執(zhí)行耗費(fèi)一定時間的操作,分別測量每個任務(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ù)運(yùn)行周期穩(wěn)定,能夠?qū)崿F(xiàn)實(shí)時任務(wù)調(diào)度。

四、結(jié)束語

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

主站蜘蛛池模板: 少妇高潮惨叫久久久久久| 色婷婷亚洲综合五月| 高清乱码精品福利在线视频| 98超碰在线观看| 亚洲品质国产精品无码| 午夜国产精品视频黄| 亚洲精品图区| 欧美日本激情| 久久久四虎成人永久免费网站| 萌白酱国产一区二区| 老司国产精品视频91| 波多野结衣第一页| 国产裸舞福利在线视频合集| 国产精品久久久久久久伊一| 色综合中文| 国产精品污污在线观看网站| 成人自拍视频在线观看| 老司机aⅴ在线精品导航| 亚洲欧美在线看片AI| 一区二区三区成人| 日本草草视频在线观看| 久久无码av三级| 国产精品99r8在线观看| 色综合激情网| 奇米影视狠狠精品7777| 四虎永久在线视频| 婷婷成人综合| 国产亚洲精品自在线| 九九免费观看全部免费视频| 精品久久久久久久久久久| 久久男人视频| 成人午夜视频网站| 国内精自线i品一区202| 无码精品国产dvd在线观看9久 | 国产欧美日韩综合一区在线播放| 波多野结衣中文字幕一区二区| 性做久久久久久久免费看| 国产无码制服丝袜| 99这里只有精品6| 亚洲精品综合一二三区在线| 午夜激情福利视频| 极品性荡少妇一区二区色欲 | 国产簧片免费在线播放| 亚洲国产av无码综合原创国产| 九九线精品视频在线观看| 国产成人1024精品下载| 国产精品尤物在线| 久久semm亚洲国产| 巨熟乳波霸若妻中文观看免费| 欧美亚洲国产精品久久蜜芽| 无码久看视频| 一级毛片无毒不卡直接观看| 香蕉久久国产精品免| 欧美另类图片视频无弹跳第一页| 毛片免费视频| a欧美在线| 亚洲第一区欧美国产综合| 亚洲精品免费网站| 欧美五月婷婷| 国产特一级毛片| 中文国产成人久久精品小说| 国禁国产you女视频网站| 欧美成人午夜在线全部免费| 无码网站免费观看| 中文字幕久久精品波多野结| 国产免费黄| 综合色亚洲| 亚洲中文字幕97久久精品少妇| 大香伊人久久| 无码福利日韩神码福利片| 亚洲精品天堂自在久久77| 一本视频精品中文字幕| 亚洲视屏在线观看| 专干老肥熟女视频网站| 亚洲男人在线| 国产h视频在线观看视频| 男女性色大片免费网站| 夜夜爽免费视频| 最近最新中文字幕在线第一页 | 久久永久视频| 国产微拍一区二区三区四区| 香蕉久人久人青草青草|