简要说明下RTOS的机制理解
简单来说 ,就是RTOS有几个状态
分别为
Running—运行态
当任务处于实际运行状态被称之为运行态, 即 CPU 的使用权被这个任务占用。
Ready—就绪态
处于就绪态的任务是指那些能够运行(没有被阻塞和挂起) , 但是当前没有运行的任务, 因为同优先
级或更高优先级的任务正在运行。
Blocked—阻塞态
由于等待信号量,消息队列,事件标志组等而处于的状态被称之为阻塞态,另外任务调用延迟函数也
会处于阻塞态。
◆Suspended—挂起态
类似阻塞态,通过调用函数 vTaskSuspend()对指定任务进行挂起,挂起后这个任务将不被执行,只
有调用函数 xTaskResume()才可以将这个任务从挂起态恢复。
1.CPU只能同一时刻处理。任务在进入阻塞太以后,可以释放CPU控制权,用来给其它任务处理。不会像裸机那样需要死等。
2.进入阻塞的几种情况
1.自己主动延时
2.等待信号量
3.等待消息队列
4.等待时间标志组
需要注意的是当任务从阻塞态北唤醒时,不会直接进入运行态。而是会先进入就绪态,等待调度器的调度。如果任务这时候是最高优先级,才会进入运行态