FreeRTOS 的任务状态
FreeRTOS 的运行支持以下四种状态:
- Running—运行态
当任务处于实际运行状态称之为运行态,即CPU的使用权被这个任务占用。- Ready—就绪态
处于就绪态的任务是指那些能够运行(没有被阻塞和挂起),但是当前没有运行的任务,因为同优先级或更高优先级的任务正在运行。- Blocked—阻塞态
由于等待信号量,消息队列,事件标志组等而处于的状态被称之为阻塞态,另外任务调用延迟函数也会处于阻塞态。- Suspended—挂起态
类似阻塞态,通过调用函数 vTaskSuspend() 对指定任务进行挂起,挂起后这个任务将不被执行,只有调用函数 xTaskResume() 才可以将这个任务从挂起态恢复。
下面是任务在各个状态之间切换的关系图: