/*任務的建立,暫停,恢復以及刪除
* 設定《任務鉤子》用以觀察任務的建立和刪除
* 程式建立了2個任務:taska與taskb,優先順序分別為125和130
* 由於vxworks的優先順序從高到低為0-255,因此task1會優先執行。
* taska中的i==2時,taskb將暫停,
* taska迴圈結束後,taskb恢復執行
* 在任務的執行過程中,《任務鉤子》會根據任務的建立和刪除輸出相應資訊
* */
#include#include#include#include#define task_priority 125
#define task_priority_two 130
#define stack_size 225
/*任務a*/
void taska(void);
/*任務b*/
void taskb(void);
/*任務id*/
int taskid_a, taskid_b;
void createhook(wind_tcb *pnewtcb);
void deletehook(wind_tcb *pnewtcb);
int main()
/*taska的i==2時,taskb暫停.
*taska結束後,taskb恢復執行.*/
void taska()
sleep(1);
} taskresume(taskid_b);
printf("taskb resumed!\n");
}void taskb()
}void createhook(wind_tcb *pnewtcb)
void deletehook(wind_tcb *pnewtcb)
執行結果:
[hook]:taska is runing...!
[hook]:taskb is runing...!
taska:0
taskb:0
taska:1
taskb:1
taska:2
taskb suspend!
taska:3
taska:4
taskb resumed!
[hook]:taska was deleted!
taskb:2
taskb:3
taskb:4
[hook]:taskb was deleted!
任務建立和刪除
在freertos移植到cortex m3硬體平台的文章中,我們已經見過任務建立api,但那篇文章的重點在於如何移植freertos,本文將重點放在任務的建立和刪除api函式上面。任務建立和刪除api函式位於檔案task.c中,需要包含task.h標頭檔案。1.1函式描述 objc view pla...
FreeRTOS任務的建立和刪除
freertos 最基本的功能就是任務管理,而任務管理最基本的操作就是建立和刪除任務。任務的建立 basetype t xtaskcreate taskfunction t pxtaskcode,const char const pcname,const uint16 t usstackdepth,...
02 FreeRTOS任務建立和刪除
basetype t xtaskcreate taskfunction t pxtaskcode,const char const pcname,const uint16 t usstackdepth,void const pvparameters,ubasetype t uxpriority,ta...