μC/OS―II實時操作系統(tǒng)中任務延時的研究與改進
對于任務刪除函數(shù)OSTCBDlyDel(),首先判斷任務控制塊中的任務延時值是否為0,如果不等于0,調(diào)用函數(shù)OSTCBDlyDel(ptcb,OS_Dly_ OPT_DEL),把任務從任務延時鏈表中刪除;如果等于0,把任務從任務鏈表中刪除。最后,把任務控制塊回收到空閑任務鏈表中。
3 實驗測試
3.1 測試環(huán)境
本次實驗使用軟件開發(fā)環(huán)境Keil4,把μC/OS—II操作系統(tǒng)移植到基于Cortex—M3內(nèi)核的LPC1768處理器上。對實時操作系統(tǒng)μC/OS—II 2.86進行改進,并對改進后的操作系統(tǒng)進行軟件仿真測試。
ARM Cortex—M3內(nèi)核采用3級流水線和哈佛結(jié)構(gòu),帶獨立的本地指令和數(shù)據(jù)總線以及用于外設的稍微低性能的第三條總線,還包含一個支持隨機跳轉(zhuǎn)的內(nèi)部預取指單元。LPC1700系列微控制器主要用于處理要求高度集成和低功耗的嵌入式應用,最高工作頻率可達100 MHz。內(nèi)部有高達512 KB的Flash存儲器、64KB的數(shù)據(jù)存儲器,片內(nèi)外設包括以太網(wǎng)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等眾多功能,方便系統(tǒng)的開發(fā),節(jié)約成本。
本次測試為:在μC/OS—II中創(chuàng)建25個用戶任務,其中的10個任務延時一段時間(for循環(huán)延時),并發(fā)送信號量,已激活等待此信號量的任務,而后調(diào)用函數(shù)OSTimeDly(),任務延時。而另外15個任務無限期等待另外幾個任務的信號量。Keil4的軟件仿真中,LPC1768的外部時鐘設定為22.1184 MHz。
3.2 實驗結(jié)果
下面通過Keil4軟件仿真中的Performance Analyzer功能,觀察μC/OS—II原操作系統(tǒng)與改進后的操作中函數(shù)OSTime Tick()的運行時間。性能測評圖如圖2、圖3所示。本文引用地址:http://www.ex-cimer.com/article/161941.htm
可以看出,改進后OSTimeTick()函數(shù)的系統(tǒng)占用率只有原先的50%,當然在實際使用環(huán)境中,改進后OSTimeTick()函數(shù)的系統(tǒng)占用率與系統(tǒng)中延時任務的多少、系統(tǒng)的運行速度等因素有關(guān),不可能降低這么多,至少從理論上與仿真測試中可以驗證此方法可以降低系統(tǒng)的額外開銷,提高系統(tǒng)的實時性。
結(jié)語
隨著技術(shù)的進步,處理器芯片的內(nèi)存不斷增大,運行速度不斷提高,而且應用系統(tǒng)設計越來越復雜,系統(tǒng)需要運行越來越多的任務,時鐘節(jié)拍處理函數(shù)將占用大量的處理器時間,影響系統(tǒng)的實時性。通過本文對原操作系統(tǒng)中任務延時機制的改進與優(yōu)化,使時鐘節(jié)拍處理函數(shù)的運行時間僅與同時延時的任務數(shù)有關(guān)。通過Keil4開發(fā)環(huán)境下的軟件仿真可以看出,改進后系統(tǒng)開銷大大降低。
評論