一、任务是什么?
在UCOSIII中任务就是程序实体,UCOSIII能管理和调度这些小任务。
UCOSIII中的任务有三部分组成:任务堆栈、任务控制块和任务函数
任务堆栈:在上下文切换的时候用来保存任务的工作环境,本质上是保存了内存中一些寄存器的值。
任务控制块:任务控制块用来记录任务的各个属性。
任务函数:由用户编写的任务处理代码,是实实在在干活的。
任务函数模板:
void XXX_task(void *p_arg)
{
while(1)
{
.........//任务处理过程
}
}
//任务函数不由用户调用,有操作系统决定何时执行。
二、UCOSIII系统任务
UCOSIII默认有5个系统任务:
1、空闲任务:UCOSIII创建的第一个任务,UCOSIII必须创建的任务,次任务由UCOSIII自动创建,不需要用户手动创建。
2、时钟节拍任务:同样必须创建。
3、统计任务:用来统计CPU使用率和各个任务的堆栈使用量。