<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于M D K RTX的COrtex―M3多任務(wù)應用設計

基于M D K RTX的COrtex―M3多任務(wù)應用設計

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

該文件的目的是避免半主機方式軟件中斷,因為這時(shí)所有中斷都由RL―統一管理。半主機是用于A(yíng)RM目標的一種機制,可將來(lái)自程序代碼的輸入/輸出請求傳送至運行調試器的主機。它由一組已定義的SWI操作來(lái)實(shí)現。庫函數調用相應的SWI(軟件中斷),然后調試代理程序處理SWI異常,并提供所需的與主機之間的通信。

本文引用地址:http://dyxdggzs.com/article/152649.htm


4
4.1 多
根據圖1所示的最小系統框圖,采用由表及里(out―side-in approach)分解應用的方法。該應用的上下文框圖如圖3所示,中間的圈表示軟件應用,矩形框表示應用的輸入和輸出設備。箭頭標有具體含義名,表示輸入和輸出通信的流程。

根據上下文框圖以及避免“資源沖突”原則,將對同一個(gè)外設的訪(fǎng)問(wèn)放在同一個(gè)設備中,無(wú)論何時(shí)切換,都不會(huì )對任何獨立的“外設”造成影響。
將應用分解為4個(gè)任務(wù),RL―的第一個(gè)任務(wù)必須是系統任務(wù)Init Task,該任務(wù)用來(lái)初始化其他3個(gè)任務(wù),任務(wù)創(chuàng )建完畢后,3個(gè)任務(wù)都處于READY狀態(tài);第2個(gè)任務(wù)t_phase_ADC Task用來(lái)讀取A/D采樣的數據;第3個(gè)任務(wù)t_phase_DEA Task用來(lái)處理采樣的數據;第4個(gè)任務(wù)t_phase_DIS Task用來(lái)將數據送到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ù),實(shí)現任務(wù)切換。任務(wù)的創(chuàng )建和初始化是在主函數中定義的:

任務(wù)初始化完畢后,3個(gè)任務(wù)都處于就緒狀態(tài)。t_phase_ADC任務(wù)用來(lái)采樣,多次采樣取平均值,通過(guò)給任務(wù)t_phase_DEA發(fā)信號signal_func(t_phase_DEA),喚醒t_phase_DEA任務(wù)。

os_evt_wait_and進(jìn)行控制。該任務(wù)判斷采樣的數據是否在警戒溫度范圍內,如果出現溫度異常,置標志位為1。執行完自身任務(wù)后,通過(guò)signal_func(t_phase_DIS),將喚醒t_phase_DIS任務(wù)。


t_phase_DIS任務(wù)用來(lái)在LCD液晶屏上顯示溫度值。如果發(fā)現標志位為1,則LED燈閃爍和蜂鳴器高頻報警。
4.2 應用設計測試
采用基本RMA可調度性測試。式1用來(lái)完成系統的基本RMA可調度性測試。


這里:Ci為與周期性任務(wù)i相關(guān)的最壞執行時(shí)間,Ti為與任務(wù)i相關(guān)的周期,n為任務(wù)的個(gè)數。
U(n)是利用系數,式1的右邊是理論處理器利用率的上界。如果給定一組任務(wù),其處理器利用率小于理論利用率上界,則這組任務(wù)是可調度的。U的值隨n的增加而下降;當n的值為無(wú)限時(shí),最終收斂于69%。
表4總結了使用RMA進(jìn)行調度的3個(gè)任務(wù)的特性。

使用式1,該應用設計處理器利用率計算如下:


應用設計總的利用率是27.42%,低于78%的理論邊界。此4個(gè)任務(wù)的系統是可調度的,該應用設計是成功的。


結 語(yǔ)
本文描述了如何在Cortex―上使用MDK RL―的方法,并給出了一個(gè)簡(jiǎn)單的多任務(wù)應用設計??梢钥闯龆嗳蝿?wù)的程序設計被大大簡(jiǎn)化了,它不但滿(mǎn)足多個(gè)任務(wù)的時(shí)間要求,降低了開(kāi)發(fā)難度,而且程序的可讀性和可維護性也有了很大的提高。利用MDK RL―RTX構建的嵌入式工業(yè)控制系統具有成本低、性能高等特點(diǎn),應用廣泛,有著(zhù)良好的發(fā)展前景。


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

評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>