UCOS自学笔记(3)--系统任务
空闲任务
- 空闲任务是UCOSIII创建的第一个任务
- 空闲任务是必须创建的
- 空闲任务的优先级总是OS_CFG_PRIO_MAK-1
- 空闲任务不能调用任何可使空闲任务进入等待的函数
此任务一般在OS_init中会自动创建了。
时钟节拍任务
主要是用来跟踪任务延时和等待的,是UCOSIII必须创建的任务之一。任务优先级使用宏定义OS_CFG_TICK_TASK_PRIO(这个宏定义可以在配置文件中改变),一般应设置一个较高的优先级。
统计任务
- 统计CPU使用率 和统计各个任务的CPU使用率和堆栈使用情况。
它不是必须启动的任务。
在这里可以开启。
必须在主函数创建的第一个,也是唯一一个开始任务的函数中调用。
统计任务的优先级一般是OS_CFG_PRIO_MAK-2,也就是倒数第二个的优先级。
统计任务会把每一个任务的CPU使用率存放到任务控制块中,
在控制块的成员变量中,可以找到他们:
定时任务
可选任务
定时任务宏定义配置
它的优先级一般是2。
中断服务管理任务
当我们在UCOSIII中使用POST类的函数时,会被加入到一个特殊的的缓冲队列中,当所有嵌套的ISR(中断服务函数)都结束时,UCOSIII会做一次任务切换,就会运行中断服务管理任务。它就会把缓冲队列中的数据发送个相应的任务(可减少中断关闭的时间)。它的优先级永远要是0!
修改宏定义后启用
钩子函数
注意:钩子函数一般在特定的文件中写入,而不是直接写在对应函数中(类似中断函数的样式):
可根据自己的实际情况来制定。