<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于MDK RTX的Cortex-M3多任務(wù)應(yīng)用設(shè)計(jì)

          基于MDK RTX的Cortex-M3多任務(wù)應(yīng)用設(shè)計(jì)

          作者: 時(shí)間:2016-12-02 來源:網(wǎng)絡(luò) 收藏


          使用RL—RTX,包含以下幾個(gè)步驟:

          第1步,由于RL—RTX集成在MDK開發(fā)套件中,在使用MDK創(chuàng)建工程后,需要在工程中添加RTX內(nèi)核選項(xiàng)。選擇Project→Options for Target,在Operating下拉框中選擇RTX內(nèi)核,使得在編譯時(shí)把RL—RTX所需的庫編譯進(jìn)去。

          第2步,在嵌入式應(yīng)用程序的開發(fā)中使用RL—RTX內(nèi)核,須對其進(jìn)行配置。復(fù)制\Keil\ARM\Startup目錄下RTX_Config.c文件到工程文件夾并添加到工程中。該文件中,部分配置參數(shù)說明如表3所列。



          基于Cortex—M3平臺的超溫報(bào)警器,可以設(shè)計(jì)3個(gè)任務(wù)并發(fā),分別進(jìn)行數(shù)據(jù)采集、數(shù)據(jù)處理和數(shù)據(jù)顯示。3個(gè)任務(wù)較小,系統(tǒng)安排的任務(wù)棧足夠使用,棧的容量以32位無符號整型定義,容量為64字。選擇硬件平臺片上定時(shí)器1。

          DSl8820具有300 ms的更新速率,在采集數(shù)據(jù)過程中,通過多次采集取平均值,數(shù)據(jù)采集任務(wù)執(zhí)行的時(shí)間為30 ms,數(shù)據(jù)處理任務(wù)執(zhí)行時(shí)間為40 ms,數(shù)據(jù)顯示任務(wù)執(zhí)行時(shí)間為20 ms。根據(jù)公式,對響應(yīng)時(shí)間的要求:t(響應(yīng)時(shí)間)=N(進(jìn)程數(shù)目)×q(時(shí)間片)。總體響應(yīng)時(shí)間為90 ms,進(jìn)程數(shù)目為3,因此時(shí)間片設(shè)置為30 ms合適。在任務(wù)OS_IDLE_DEMON()中添加休眠代碼,空閑時(shí)系統(tǒng)休眠,降低功耗。

          第3步,復(fù)制\Keil\ARM\Startup下Retarget.c文件到工程文件夾中,并添加到工程中。

          修改文件,使其包含如下內(nèi)容:



          該文件的目的是避免半主機(jī)方式軟件中斷,因?yàn)檫@時(shí)所有中斷都由RL—RTX統(tǒng)一管理。半主機(jī)是用于ARM目標(biāo)的一種機(jī)制,可將來自應(yīng)用程序代碼的輸入/輸出請求傳送至運(yùn)行調(diào)試器的主機(jī)。它由一組已定義的SWI操作來實(shí)現(xiàn)。庫函數(shù)調(diào)用相應(yīng)的SWI(軟件中斷),然后調(diào)試代理程序處理SWI異常,并提供所需的與主機(jī)之間的通信。

          4 應(yīng)用設(shè)計(jì)

          4.1 多任務(wù)應(yīng)用設(shè)計(jì)

          根據(jù)圖1所示的最小系統(tǒng)框圖,采用由表及里 (out—side-in approach)分解應(yīng)用的方法設(shè)計(jì)多任務(wù)。該應(yīng)用的上下文框圖如圖3所示,中間的圈表示軟件應(yīng)用,矩形框表示應(yīng)用的輸入和輸出設(shè)備。箭頭標(biāo)有具體含義名,表示輸入和輸出通信的流程。



          根據(jù)上下文框圖以及避免“資源沖突”原則,將對同一個(gè)外設(shè)的訪問放在同一個(gè)設(shè)備中,無論何時(shí)切換任務(wù),都不會對任何獨(dú)立的“外設(shè)”造成影響。

          將應(yīng)用分解為4個(gè)任務(wù),RL—RTX的第一個(gè)任務(wù)必須是系統(tǒng)任務(wù)Init Task,該任務(wù)用來初始化其他3個(gè)任務(wù),任務(wù)創(chuàng)建完畢后,3個(gè)任務(wù)都處于READY狀態(tài);第2個(gè)任務(wù)t_phase_ADCTask用來讀取A/D采樣的數(shù)據(jù);第3個(gè)任務(wù)t_phase_DEA Task用來處理采樣的數(shù)據(jù);第4個(gè)任務(wù)t_phase_DIS Task用來將數(shù)據(jù)送到LCD液晶屏上,顯示、控制LED燈閃爍和蜂鳴器高頻報(bào)警。圖4顯示了任務(wù)觸發(fā)的流程。


          關(guān)鍵詞: MDKRTXCortex-M

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();