UCOSII任務的刪除和掛起

2021-08-02 22:07:00 字數 1346 閱讀 2690

int8u ostaskdel (int8u prio)函式用於刪除任務

prio:需要刪除的任務的優先順序

當乙個任務不需要執行的話,我們就可以將其刪除掉,刪除任務不是說刪除任務**,而是不再管理這個任務,在有些應用中我們只需要某個任務執行一次,執行完成後就將其刪除掉。雖然允許在系統執行的時候刪除任務,但是應該盡量避免這種操作。

int8u ostasksuspend(int8u prio)

prio: 需要掛起的任務的優先順序

有些時候需要任務暫停執行,但是以後還要執行,因此我們不能刪除掉任務,可以使用本函式將任務掛起,以後再恢復執行

int8u ostaskresume(int8u prio)

prio: 需要恢復的任務的優先順序

將掛起的任務進行恢復,使任務繼續執行

#define start_task_prio  10

#define start_stk_size 64

os_stk start_task_stk[start_stk_size];

void starttask(void *p_arg);

#define led0_task_prio 7

#define led0_stk_size 64

os_stk led0_task_stk[led0_stk_size];

void led0task(void *p_arg);

#define led1_task_prio 6

#define led1_stk_size 64

os_stk led1_task_stk[led1_stk_size];

void led1task(void *p_arg);

int main()

//開始任務,建立兩個任務後在後面不再使用,刪除掉開始任務

void starttask(void *p_arg)

//任務1

void led0task(void *p_arg)

if(time == 20)

}}//任務2

void led1task(void *p_arg)

}

雖然

ucos ii 任務的刪除

建立任務的過程,首先分配乙個空閒的tcb給任務,然後對該tcb的各個域進行賦值,對任務的堆疊進行初始化,其中,任務的 的位址被壓入堆疊。這為以後任務的執行做了充分準備。就緒表和就緒組做了適當的處理,根據任務的優先順序進行了設定。就緒tcb鍊錶也插入了該tcb。那麼若將任務刪除,就是任務建立的逆過程,...

任務的建立 掛起和恢復

ucosii有兩個建立任務的函式 ostaskcreate 和ostaskcreateext 其中ostaskcreateext 是ostaskcreate 的擴充套件。並提供了一些附加功能。int8u ostaskcreate void task void pd 指向任務的指標 void pdat...

C OS II 示例 ucos任務的掛起與刪除

1 設計乙個只有乙個任務mytask的應用程式。2 在 1 的任務mytask中再建立乙個任務yourtask。要求當任務yourtask執行20次後,掛起任務mytask 當任務yourtask執行40次後,恢復任務mytask。要求任務mytask和任務yourtask執行一段時間後,使任務my...