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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于MDK RTX的Cortex-M3多任務應用設計

          基于MDK RTX的Cortex-M3多任務應用設計

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


          定義任務:





          使用os_tsk_create創(chuàng)建任務t_phase_ADC、t_phase_DEA、t_phase_DIS。

          os_tsk_delete_self刪除自身任務,實現(xiàn)任務切換。任務的創(chuàng)建和初始化是在主函數(shù)中定義的:



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



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



          t_phase_DIS任務用來在LCD液晶屏上顯示溫度值。如果發(fā)現(xiàn)標志位為1,則LED燈閃爍和蜂鳴器高頻報警。

          4.2 應用設計測試

          采用基本RMA可調(diào)度性測試。式1用來完成系統(tǒng)的基本RMA可調(diào)度性測試。



          這里:Ci為與周期性任務i相關的最壞執(zhí)行時間,Ti為與任務i相關的周期,n為任務的個數(shù)。

          U(n)是利用系數(shù),式1的右邊是理論處理器利用率的上界。如果給定一組任務,其處理器利用率小于理論利用率上界,則這組任務是可調(diào)度的。U的值隨n的增加而下降;當n的值為無限時,最終收斂于69%。

          表4總結(jié)了使用RMA進行調(diào)度的3個任務的特性。



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



          應用設計總的利用率是27.42%,低于78%的理論邊界。此4個任務的系統(tǒng)是可調(diào)度的,該應用設計是成功的。

          結(jié)語

          本文描述了如何在Cortex—M3上使用MDK RL—RTX的方法,并給出了一個簡單的多任務應用設計??梢钥闯龆嗳蝿盏某绦蛟O計被大大簡化了,它不但滿足多個任務的時間要求,降低了開發(fā)難度,而且程序的可讀性和可維護性也有了很大的提高。利用MDK RL—RTX構(gòu)建的嵌入式工業(yè)控制系統(tǒng)具有成本低、性能高等特點,應用廣泛,有著良好的發(fā)展前景。

          參考文獻

          1. 李寧 ARM 開發(fā)工具RealView MDK使用入門 2008
          2. 任哲 ARM 體系結(jié)構(gòu)及其嵌入式處理器 2008
          3. Cesar Marquez Chin Identification of arm movements using correlation of electrocorticographic spectral components and kinematic recordings 2007(2)
          4. 查看詳情
          5. Li Qing Real-time concepts for Embedded Systems 2003

          上一頁 1 2 3 下一頁

          關鍵詞: MDKRTXCortex-M

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();