OSTaskSuspend

OSTaskSuspend,函式,無條件掛起一個任務。調用此函式的任務也可以傳遞參數 OS_PRIO_SELF,掛起調用任務本身。當前任務掛起後,只有其他任務才能喚醒被掛起的任務。任務掛起後,系統會重新進行任務調度,運行下一個優先權最高的就緒任務。

功能描述

OSTaskSuspend() :無條件掛起一個任務(任務優先權)
無條件掛起一個任務。調用此函式的任務也可以傳遞參數 OS_PRIO_SELF,掛起調用任務本身。當前任務掛起後,只有其他任務才能喚醒被掛起的任務。任務掛起後,系統會重新進行任務調度,運行下一個優先權最高的就緒任務。喚醒掛起任務需要調用函式OSTaskResume()。
任務的掛起是可以疊加到其他操作上的。例如,任務被掛起時正在進行延時操作,那么任務的喚醒就需要兩個條件:延時的結束以及其他任務的喚醒操作。又如,任務被掛起時正在等待信號量,當任務從信號量的等待對列中清除後也不能立即運行,而必須等到被喚醒後。

函式原型及參數

INT8U OSTaskSuspend(INT8U prio);
參數說明:prio為指定要獲取掛起的任務優先權,也可以指定參數 OS_PRIO_SELF,掛起任務本身。此時,下一個優先權最高的就緒任務將運行。
返回值:
OSTaskSuspend() 的返回值為下述之一:
* OS_NO_ERR:函式調用成功。
* OS_TASK_SUSPEND_IDLE:試圖掛起μC/OS-II中的空閒任務(Idle task)。此為非法操作。
* OS_PRIO_INVALID:參數指定的優先權大於 OS_LOWEST_PRIO 或沒有設定 OS_PRIO_SELF 的值。
* OS_TASK_SUSPEND_PRIO:要掛起的任務不存在。

相關詞條

相關搜尋

熱門詞條

聯絡我們