1. OSInit(&err); //初始化UCOSIII
在系统任务创建之前,进行系统初始化
2. OSTaskCreate((OS_TCB * )&StartTaskTCB, //任务控制块
(CPU_CHAR * )"start task", //任务名字
(OS_TASK_PTR )start_task, //任务函数
(void * )0, //传递给任务函数的参数
(OS_PRIO )START_TASK_PRIO, //任务优先级
(CPU_STK * )&START_TASK_STK[0], //任务堆栈基地址
(CPU_STK_SIZE)START_STK_SIZE/10, //任务堆栈深度限位
(CPU_STK_SIZE)START_STK_SIZE, //任务堆栈大小
(OS_MSG_QTY )0, //任务内部消息队列能够接收的最大消息数目,为0时禁止接收消息
(OS_TICK )0, //当使能时间片轮转时的时间片长度,为0时为默认长度,
(void * )0, //用户补充的存储区
(OS_OPT )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR, //任务选项
(OS_ERR * )&err);
任务创建函数,对任务的任务控制块、任务优先级、任务堆栈、任务函数等进行处理。
3. OSStart(&err); //开启UCOSIII
在对任务初始化、任务创建之后,开启UCOS III之后系统开始运行。
4. OSTaskDel( OS_TCB *p_tcb, OS_ERR *p_err ); //任务删除函数
如果不想使用某个任务了,调用任务删除函数删除这个任务。
注意两点:1、删除某个任务以后,他占用的OS_TCB和堆栈可以再次利用来创建其他任务。
2、尽管UCOS III允许系统运行中删除任务,但是应该尽量避免这种操作,如果这个任务可能占有与其他任务共享的资源,在这个被占有的资源没有被释放就有可能导致奇怪的结果。
5. OSTaskSuspend ( OS_TCB *p_tcb, OS_ERR *p_err )//任务挂起函数
鉴于删除函数,当一个任务不想被运行又不被删除,我们可以采用挂起函数来这个任务挂起。
6. OSTaskResume( OS_TCB *p_tcb, OS_ERR *p_err )//任务恢复函数
解除挂起任务时,采用恢复函数。