ucosIII任务管理(未完持续)

概述要点

  • 单CPU 中,在任何时刻只能是一个任务被执行
  • C/OS-III 支持多任务且对任务数量没有限制,任务数仅取决于处理器内存的大小(RAM)。
  • 允许任务具有相同的优先级

任务的组成

  • 任务堆栈:上下文切换用于保存任务当前环境。也就是内部寄存器的值。
  • 任务控制块:保存任务的各个属性
  • 任务函数:完成指定功能

系统任务:

  • 空闲任务:UCOSIII创建的第一个任务,UCOSIII必须创建的任务,此任务有UCOSIII自动创建,不需要用户手动创建。
  • 时钟节拍任务:此任务也是必须创建的任务。
  • 统计任务:可选任务,用来统计CPU使用率和各个任务的堆栈使用量。此任务是可选任务,由宏OS_CFG_STAT_TASK_EN控制是否使用此任务。
  • 定时任务:用来向用户提供定时服务,也是可选任务,由宏OS_CFG_TMR_EN控制是否使用此任务。
  • 中断服务管理任务:可选任务,由宏OS_CFG_ISR_POST_DEFERRED_EN控制是否使用此任务。

任务状态

  • 休眠态(Dormant):任务已经在CPU的flash中了,但是还不受UCOSIII管理。
  • 就绪态(Ready):系统为任务分配了任务控制块,并且任务已经在就绪表中登记,这时这个任务就具有了运行的条件,此时任务的状态就是就绪态。
  • 运行态(Running):任务获得CPU的使用权,正在运行,单CPU任何时刻只有一个任务在运行。
  • 挂起态(Pending):正在运行的任务需要等待一段时间,或者等待某个事件,这个任务就进入了挂起态,此时系统就会把CPU使用权转交给别的任务。
  • 中断服务态(Interrupted):当发送中断,当前正在运行的任务会被挂起,CPU转而去执行中断服务函数,此时任务的任务状态叫做中断服务态。

状态转换如下图
这里写图片描述

这里写图片描述

猜你喜欢

转载自blog.csdn.net/hushiganghu/article/details/68945766
今日推荐