1、任务的5种状态:①睡眠状态(任务只以代码的形式驻留在程序空间,还没有交给操作系统管理时的情况)②就绪状态(系统为任务配备了任务控制块且在任务就绪表中进行了就绪登记)③运行状态(处于就绪状态的任务经过调度获得了CPU的使用权)④等待状态(正在运行的任务,需要等待一段时间或者需要等待一个事件发生在运行的时候为等待状态)⑤中断服务状态(一个正在运行的任务一旦响应中断申请就会中止运行而去执行中断服务程序)
2、5种状态之间的转换
1.任务的执行代码通常是一个无限循环结构,为了有效的对中断进行控制,可使用定义的宏OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()来控制任务何时响应中断,何时屏蔽中断。在运行这两个宏之间的代码时是不会响应中断的,这种受代码抱回的代码段叫做临界段
μC/OS预定义了两为应用程序服务的系统任务,空闲任务和统计任务。空闲任务是每个应用程序必须使用的,而统计任务是应用程序根据实际需要来选择使用的
1.空闲任务
在空闲任务的代码中有一行为pdata=pdata,因为在这个任务中没有用到参数pdata。因为一些编译器会对一个定义了却没有使用的变量进行报错,从而加了这行代码,那么编译器就不会报错
2.统计任务(OSTaskStat())
统计任务每秒计算一次CPU在单位时间内被使用的时间,并把计算结果以百分比的形式存放在变量OSC-PUUsage中
2.1.4
μC/OS