UCOS自学笔记(3)--系统任务

空闲任务

  • 空闲任务是UCOSIII创建的第一个任务
  • 空闲任务是必须创建的
  • 空闲任务的优先级总是OS_CFG_PRIO_MAK-1
  • 空闲任务不能调用任何可使空闲任务进入等待的函数
    此任务一般在OS_init中会自动创建了。

时钟节拍任务

主要是用来跟踪任务延时和等待的,是UCOSIII必须创建的任务之一。任务优先级使用宏定义OS_CFG_TICK_TASK_PRIO(这个宏定义可以在配置文件中改变),一般应设置一个较高的优先级。

统计任务

  • 统计CPU使用率 和统计各个任务的CPU使用率和堆栈使用情况。
    它不是必须启动的任务。
    UCOS自学笔记(3)--系统任务
    在这里可以开启。
    必须在主函数创建的第一个,也是唯一一个开始任务的函数中调用。
    UCOS自学笔记(3)--系统任务

统计任务的优先级一般是OS_CFG_PRIO_MAK-2,也就是倒数第二个的优先级。
统计任务会把每一个任务的CPU使用率存放到任务控制块中,
在控制块的成员变量中,可以找到他们:
UCOS自学笔记(3)--系统任务

定时任务

可选任务
定时任务宏定义配置
UCOS自学笔记(3)--系统任务
它的优先级一般是2。

中断服务管理任务

当我们在UCOSIII中使用POST类的函数时,会被加入到一个特殊的的缓冲队列中,当所有嵌套的ISR(中断服务函数)都结束时,UCOSIII会做一次任务切换,就会运行中断服务管理任务。它就会把缓冲队列中的数据发送个相应的任务(可减少中断关闭的时间)。它的优先级永远要是0!
修改宏定义后启用
UCOS自学笔记(3)--系统任务

钩子函数

UCOS自学笔记(3)--系统任务
注意:钩子函数一般在特定的文件中写入,而不是直接写在对应函数中(类似中断函数的样式):
UCOS自学笔记(3)--系统任务
可根据自己的实际情况来制定。