1、任务
(1)任务可以是一个无限的循环,也可以在一次执行完毕后被删除。
任务的代码并不是真正的删除了,而是UCOSII不再理会该任务代码,该任务代码不会再执行。
(2)建立任务,OSTaskCreate()
如果想让UCOSII管理用户的任务,必须先建立任务,可以通过将任务的地址(函数名)和其他参数传递到这2个函数中来建立任务。
(3)任务可以在多任务调度之前开始建立,也可以在其他的任务中创建需要的任务。在启动UCOS之前必须至少得建立一个任务。
2、分析创建任务
(1)参数分析:
参数1:任务的函数名:任务切换的时的入口地址。
参数2:传递给建立任务的参数,此参数基本不会用到。
参数3:传递给建立任务的堆栈,每个任务都有独一无二的堆栈。
参数4:传递给任务的优先级。
(2)函数内容分析:
①当OS_TASK_CREATE_EN宏大于0的时候,我们才可以使用创建任务的函数。
②如果创建的时候检测到 任务的优先级 比 最大的优先级(数值上,实际上是最小)还大的话,那么就直接退出,输出一个错误码。
③不允许创建任务是在中断中进行的,在中断时创建任务会返回一个错误码。
④最后就是把刚刚的四个参数赋值到任务当中去,实现任务的创建。
3、任务堆栈
任务的堆栈可以使用静态的堆栈生成,也可以使用动态的堆栈生成。
(1)静态堆栈:
static OS_STK MyTaskStack[stac