在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > uC/OS-II 學(xué)習(xí)筆記之:任務(wù)刪除

            uC/OS-II 學(xué)習(xí)筆記之:任務(wù)刪除

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

            一、概念:任務(wù)的刪除就是把任務(wù)由運行態(tài)或就緒態(tài)置于睡眠態(tài),是任務(wù)創(chuàng)建的逆過程。

            本文引用地址:http://www.biyoush.com/article/201609/303413.htm

            二、操作:具體操作就是把將待刪除的任務(wù)的任務(wù)控制塊從任務(wù)控制鏈表中刪除,并歸還給空任務(wù)控制鏈表,

            然后在任務(wù)就緒表中把該任務(wù)的就緒狀態(tài)位置為0,這樣任務(wù)就不會再被調(diào)度器調(diào)用了。

            一般情況,為了安全起見,我們先在某個任務(wù)中提出刪除任務(wù)的請求,然后再在將待刪除任務(wù)中執(zhí)行刪除操作,

            即由待刪除任務(wù)自己刪除自己,而提出刪除任務(wù)請求的任務(wù)只負(fù)責(zé)提出請求。這樣的好處是可以讓待刪除任務(wù)

            在合適的時候刪除自己,以利于在刪除自身之前釋放掉其占用的資源。

            三、函數(shù)

            (1)請求刪除任務(wù)函數(shù):OSTaskDelReq(prio)//prio為待刪除任務(wù)的優(yōu)先級別

            (2)提出刪除請求的任務(wù)在調(diào)用該函數(shù)時,具體使用如下:

            //只有當(dāng)待刪除任務(wù)不存在了,就跳出循環(huán)

            while (OSTaskDelReq(1) != OS_TASK_NOT_EXIST)

            {

            OSTimeDly(1);//延時一個時鐘節(jié)拍

            }

            (3)待刪除任務(wù)在調(diào)用該函數(shù)時,具體使用如下:

            if (OSTaskDelReq(OS_PRIO_SELF) == OS_TASK_DEL_REQ)

            {

            OSTaskDel(OS_PRIO_SELF);//刪除任務(wù)自身

            }

            四、典型應(yīng)用

            //調(diào)用刪除任務(wù)函數(shù)的任務(wù)

            //任務(wù)1,設(shè)優(yōu)先級別為1

            void TaskLed0(void *pdata)

            {

            while (1)

            {

            LED0 = !LED0;

            OSTimeDlyHMSM(0, 0, 0, 400);

            while (OSTaskDelReq(2) != OS_TASK_NOT_EXIST)

            {

            OSTimeDly(1);//延時一個時鐘節(jié)拍

            }

            }

            }

            //被刪除任務(wù)

            //任務(wù)2,設(shè)優(yōu)先級別為2

            void TaskLed1(void *pdata)

            {

            while (1)

            {

            LED1 = !LED1;

            OSTimeDlyHMSM(0, 0, 0, 400);

            //判斷是否有其它任務(wù)發(fā)出了刪除自身的請求

            if (OSTaskDelReq(OS_PRIO_SELF) == OS_TASK_DEL_REQ)

            {

            OSTaskDel(OS_PRIO_SELF);//刪除任務(wù)自身

            }

            }

            }

            解析:這就是一個在任務(wù)1里提出刪除任務(wù)2的請求,然后任務(wù)2刪除自身的例子。

            參: 任哲 《嵌入式實時操作系統(tǒng)-II原理及應(yīng)用》

            參: 盧有亮 《嵌入式實時操作系統(tǒng)原理與實踐》



            關(guān)鍵詞: uC/OS

            評論


            相關(guān)推薦

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

            關(guān)閉