• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 關 閉

    新聞中心

    EEPW首頁 > 工控自動化 > 設計應用 > μC/OS―II實時操作系統中任務延時的研究與改進

    μC/OS―II實時操作系統中任務延時的研究與改進

    作者: 時間:2011-06-21 來源:網絡 收藏

    f.JPG
    對于刪除函數TCBDlyDel(),首先判斷控制塊中的值是否為0,如果不等于0,調用函數TCBDlyDel(ptcb,_Dly_ OPT_DEL),把任務從任務鏈表中刪除;如果等于0,把任務從任務鏈表中刪除。最后,把任務控制塊回收到空閑任務鏈表中。

    3 實驗測試
    3.1 測試環境
    本次實驗使用軟件開發環境Keil4,把μC/OS—移植到基于Cortex—M3內核的LPC1768處理器上。對μC/OS— 2.86進行,并對后的進行軟件仿真測試。
    ARM Cortex—M3內核采用3級流水線和哈佛結構,帶獨立的本地指令和數據總線以及用于外設的稍微低性能的第三條總線,還包含一個支持隨機跳轉的內部預取指單元。LPC1700系列微控制器主要用于處理要求高度集成和低功耗的嵌入式應用,最高工作頻率可達100 MHz。內部有高達512 KB的Flash存儲器、64KB的數據存儲器,片內外設包括以太網MAC、USB主機/從機/OTG接口、8通道的通用DMA控制器、4個UART、2條CAN通道、2個SSP控制器、SPI接口、3個I2C接口、2輸入和2輸出的I2S接口、8通道的12位ADC、10位DAC、電機控制PWM、正交編碼器接口、4個通用定時器、6輸出的通用PWM、帶獨立電池供電的超低功耗RTC等眾多功能,方便系統的開發,節約成本。
    本次測試為:在μC/OS—中創建25個用戶任務,其中的10個任務一段時間(for循環延時),并發送信號量,已激活等待此信號量的任務,而后調用函數OSTimeDly(),任務延時。而另外15個任務無限期等待另外幾個任務的信號量。Keil4的軟件仿真中,LPC1768的外部時鐘設定為22.1184 MHz。
    3.2 實驗結果
    下面通過Keil4軟件仿真中的Performance Analyzer功能,觀察μC/OS—II原操作系統與后的操作中函數OSTime Tick()的運行時間。性能測評圖如圖2、圖3所示。

    本文引用地址:http://www.czjhyjcfj.com/article/161941.htm

    g.JPG


    可以看出,改進后OSTimeTick()函數的系統占用率只有原先的50%,當然在實際使用環境中,改進后OSTimeTick()函數的系統占用率與系統中延時任務的多少、系統的運行速度等因素有關,不可能降低這么多,至少從理論上與仿真測試中可以驗證此方法可以降低系統的額外開銷,提高系統的性。

    結語
    隨著技術的進步,處理器芯片的內存不斷增大,運行速度不斷提高,而且應用系統設計越來越復雜,系統需要運行越來越多的任務,時鐘節拍處理函數將占用大量的處理器時間,影響系統的性。通過本文對原操作系統中任務延時機制的改進與優化,使時鐘節拍處理函數的運行時間僅與同時延時的任務數有關。通過Keil4開發環境下的軟件仿真可以看出,改進后系統開銷大大降低。

    linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

    上一頁 1 2 3 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 南部县| 凤山市| 长汀县| 湖州市| 涟水县| 洛浦县| 汉中市| 泰和县| 临湘市| 剑河县| 临城县| 南昌县| 朔州市| 容城县| 临潭县| 鹤庆县| 德清县| 珠海市| 仁怀市| 探索| 高尔夫| 新晃| 兴海县| 密山市| 汕尾市| 金沙县| 屯门区| 葵青区| 洛南县| 柯坪县| 永宁县| 和田县| 乐至县| 上犹县| 平昌县| 旌德县| 光山县| 上思县| 阿瓦提县| 腾冲县| 故城县|