關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > μC/OS―II實時操作系統(tǒng)中任務(wù)延時的研究與改進(jìn)

μC/OS―II實時操作系統(tǒng)中任務(wù)延時的研究與改進(jìn)

作者: 時間:2011-06-21 來源:網(wǎng)絡(luò) 收藏

c.JPG
2.2 從鏈表中刪除控制塊
當(dāng)完成、任務(wù)恢復(fù)、任務(wù)恢復(fù)、任務(wù)刪除時,需要把任務(wù)從任務(wù)延時鏈表中刪除。使用函數(shù)TCBDlyDel(),此函數(shù)無返回,形參有兩個:第一個為任務(wù)控制塊指針,第二個為操作類型opt,函數(shù)原型為void TCBDlyDel(_TCB*ptcb,INT8U opt)。opt的取值為:OS_Dly_OPT_NONE(正常執(zhí)行,從任務(wù)延時鏈表刪除,加入任務(wù)鏈表),OS_Dly_OPT_DEL(把任務(wù)從任務(wù)延時鏈表刪除,OSTaskDel()函數(shù)使用)。函數(shù)OSTCBDlyDel的流程如圖1所示。

本文引用地址:http://www.butianyuan.cn/article/161941.htm

d.JPG


在函數(shù)OSTimeDlyResume()、OS_EventTaskRdy()、OS_FlagTaskRdy()以及OSTaskResume()中,在其代碼ptcb->OSTCBDly=0后面(下一行)加入0STCBDlyDel(ptcb,OS_Dly_OPT_NONE)。然后在時鐘節(jié)拍處理函數(shù)OSTime Tick()中作適當(dāng)修改,修改后的偽代碼如下:
e.JPG

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


評論


相關(guān)推薦

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

關(guān)閉