基于M D K RTX的COrtex―M3多任務(wù)應(yīng)用設(shè)計
該文件的目的是避免半主機方式軟件中斷,因為這時所有中斷都由RL―RTX統(tǒng)一管理。半主機是用于ARM目標(biāo)的一種機制,可將來自應(yīng)用程序代碼的輸入/輸出請求傳送至運行調(diào)試器的主機。它由一組已定義的SWI操作來實現(xiàn)。庫函數(shù)調(diào)用相應(yīng)的SWI(軟件中斷),然后調(diào)試代理程序處理SWI異常,并提供所需的與主機之間的通信。本文引用地址:http://butianyuan.cn/article/152649.htm
4 應(yīng)用設(shè)計
4.1 多任務(wù)應(yīng)用設(shè)計
根據(jù)圖1所示的最小系統(tǒng)框圖,采用由表及里(out―side-in approach)分解應(yīng)用的方法設(shè)計多任務(wù)。該應(yīng)用的上下文框圖如圖3所示,中間的圈表示軟件應(yīng)用,矩形框表示應(yīng)用的輸入和輸出設(shè)備。箭頭標(biāo)有具體含義名,表示輸入和輸出通信的流程。
根據(jù)上下文框圖以及避免“資源沖突”原則,將對同一個外設(shè)的訪問放在同一個設(shè)備中,無論何時切換任務(wù),都不會對任何獨立的“外設(shè)”造成影響。
將應(yīng)用分解為4個任務(wù),RL―RTX的第一個任務(wù)必須是系統(tǒng)任務(wù)Init Task,該任務(wù)用來初始化其他3個任務(wù),任務(wù)創(chuàng)建完畢后,3個任務(wù)都處于READY狀態(tài);第2個任務(wù)t_phase_ADC Task用來讀取A/D采樣的數(shù)據(jù);第3個任務(wù)t_phase_DEA Task用來處理采樣的數(shù)據(jù);第4個任務(wù)t_phase_DIS Task用來將數(shù)據(jù)送到LCD液晶屏上,顯示、控制LED燈閃爍和蜂鳴器高頻報警。圖4顯示了任務(wù)觸發(fā)的流程。
定義任務(wù):
使用os_tsk_create創(chuàng)建任務(wù)t_phase_ADC、t_phase_DEA、t_phase_DIS。
os_tsk_delete_self刪除自身任務(wù),實現(xiàn)任務(wù)切換。任務(wù)的創(chuàng)建和初始化是在主函數(shù)中定義的:
任務(wù)初始化完畢后,3個任務(wù)都處于就緒狀態(tài)。t_phase_ADC任務(wù)用來采樣,多次采樣取平均值,通過給任務(wù)t_phase_DEA發(fā)信號signal_func(t_phase_DEA),喚醒t_phase_DEA任務(wù)。
os_evt_wait_and進(jìn)行控制。該任務(wù)判斷采樣的數(shù)據(jù)是否在警戒溫度范圍內(nèi),如果出現(xiàn)溫度異常,置標(biāo)志位為1。執(zhí)行完自身任務(wù)后,通過signal_func(t_phase_DIS),將喚醒t_phase_DIS任務(wù)。
t_phase_DIS任務(wù)用來在LCD液晶屏上顯示溫度值。如果發(fā)現(xiàn)標(biāo)志位為1,則LED燈閃爍和蜂鳴器高頻報警。
4.2 應(yīng)用設(shè)計測試
采用基本RMA可調(diào)度性測試。式1用來完成系統(tǒng)的基本RMA可調(diào)度性測試。
這里:Ci為與周期性任務(wù)i相關(guān)的最壞執(zhí)行時間,Ti為與任務(wù)i相關(guān)的周期,n為任務(wù)的個數(shù)。
U(n)是利用系數(shù),式1的右邊是理論處理器利用率的上界。如果給定一組任務(wù),其處理器利用率小于理論利用率上界,則這組任務(wù)是可調(diào)度的。U的值隨n的增加而下降;當(dāng)n的值為無限時,最終收斂于69%。
表4總結(jié)了使用RMA進(jìn)行調(diào)度的3個任務(wù)的特性。
使用式1,該應(yīng)用設(shè)計處理器利用率計算如下:
應(yīng)用設(shè)計總的利用率是27.42%,低于78%的理論邊界。此4個任務(wù)的系統(tǒng)是可調(diào)度的,該應(yīng)用設(shè)計是成功的。
結(jié) 語
本文描述了如何在Cortex―M3上使用MDK RL―RTX的方法,并給出了一個簡單的多任務(wù)應(yīng)用設(shè)計??梢钥闯龆嗳蝿?wù)的程序設(shè)計被大大簡化了,它不但滿足多個任務(wù)的時間要求,降低了開發(fā)難度,而且程序的可讀性和可維護性也有了很大的提高。利用MDK RL―RTX構(gòu)建的嵌入式工業(yè)控制系統(tǒng)具有成本低、性能高等特點,應(yīng)用廣泛,有著良好的發(fā)展前景。
評論