void OSTaskCreate(.....)创建函数,上节已经介绍
void OSTaskDel(OS_TCB *p_tcb,OS_ERR *p_er)
删除任务,第一参数要删的任务的控制块,第二个是接收错误码的
删除任务不是删除任务代码,而是操作系统不再使用这个任务。
少用这个函数可以用挂起代替,因为如果任务A在使用某个共享资源,在删除之前A没有释放共享资源,其它任务就不会取得资源的使用权。
OSTaskSuspend(OS_TCB *p_tcb,OS_ERR *p_err)
挂起任务,即先暂停,过去再恢复运行
OSTaskResume(OS_TCB *p_tcb,OS_ERR *p_err)
让挂起的任务恢复运行
OSSchedRoundRobinCfg(CPU_BOOLEAN en,OS_TICK dflt_time_quanta,OS_ERR *p_err)
使能失能UCOSIII,使用时间片轮转调度功能不仅要把宏OS_CFG_SCHED_ROUND_ROBIN_EN定义为1,还要调用此函数来使能UCOSIII才行。
en:设置为DEF_ENACLED打开时间片轮转功能,设置DEF_DISABLED关闭功能
dflt_time_quanta:设置时间片长度,即系统时钟节拍个数,设置系统时钟频率OSCfg_TickRate_Hz为200Hz,每个时钟节拍是5ms,即一个时间片是5ms,n个时间片就是n*5ms.
OSSchedRoundRobinYield(OS_ERR *p_err)
任务放弃本次时间片函数,使用的函数把CPU的使用权让给同优先级下的下一个任务。
网友评论