1.1
、任务的创建:
UCOSIII
中要想使用任务,第一件事就是创建一个任务,创建任务使用函数
OSTaskCreate()
。
void OSTaskCreate ( OS_TCB *p_tcb,
CPU_CHAR *p_name,
OS_TASK_PTR p_task,
void *p_arg,
OS_PRIO prio,
CPU_STK *p_stk_base,
CPU_STK_SIZE stk_limit,
CPU_STK_SIZE stk_size,
OS_MSG_QTY q_size,
OS_TICK time_quanta,
void *p_ext,
OS_OPT opt,
OS_ERR *p_err)
1.2
、任务的删除:
如果我们不想使用某个任务了就可将其删除,删除任务使用函数OSTaskDel(),函数原型如下:
void OSTaskDel (OS_TCB *p_tcb,
OS_ERR *p_err)
入口参数的解释如下:
*p_tcb : 指向要删除的任务 TCB,
也可以传递一个 NULL 指针来删除调用 OSTaskDel()函数的任务自身
。
*p_err: 指向一个变量用来保存调用 OSTaskDel()函数后返回的
错误码
。
1、删除某个任务以后,它占用的OS_TCB和堆栈就可以再次利用来创建其他的任务。
2、尽管UCOSIII允许在系统运行中删除任务,但是应该尽量避免这种操作,如果这个任务可能占有与其他任务共享的资源,在删除此任务之前这个被占有的资源没有被释放就有可能导致奇怪的结果。
2.1、UCOSIII任务挂起:
当我们想暂停某个任务,但是又不想删除掉这个任务的时候就可以使用函数OSTaskSuspend()来将这个任务挂起,函数原型如下:
void OSTaskSuspend ( OS_TCB *p_tcb,
OS_ERR *p_err)
2.2、任务恢复
当我们想要恢复某个被挂起的任务的时候可以调用函数OSTaskResume(),函数原型如下:
void OSTaskResume (OS_TCB *p_tcb,
OS_ERR *p_err)