sunsili 发表于 2022-2-25 21:02:44

FreeRTOS任务-任务状态

FreeRTOS任务
[更多关于任务... ]FreeRTOS 教程书籍 提供有关任务及其行为的更多详细信息 。
任务状态任务可以存在以下状态之一:
[*]运行当一个任务实际执行时,它被称为处于运行状态。它目前正在使用处理器。如果运行 RTOS 的处理器只有一个内核,那么在任何给定时间只能有一个任务处于运行状态。

[*]准备好就绪任务是那些能够执行(它们不处于阻塞或挂起状态)但当前未执行的任务,因为具有相同或更高优先级的不同任务已经处于运行状态。

[*]阻塞如果任务当前正在等待时间或外部事件,则称该任务处于阻塞状态。例如,如果一个任务调用 vTaskDelay() 它将阻塞(被置于阻塞状态)直到延迟期到期 - 一个临时事件。任务也可以阻塞以等待队列、信号量、事件组、通知或信号量事件。处于阻塞状态的任务通常有一个“超时”时间段,在此之后任务将超时并被解除阻塞,即使任务等待的事件尚未发生。
Blocked 阻塞状态的任务不使用任何处理时间,不能选择进入 Running 运行状态。

[*]暂停与 Blocked 状态的任务一样,Suspended 状态的任务无法选择进入 Running 状态,但 Suspended 状态的任务没有超时。相反,任务仅在分别通过 vTaskSuspend() 和 xTaskResume() API 调用明确命令时进入或退出暂停状态。

有效的任务状态转换

页: [1]
查看完整版本: FreeRTOS任务-任务状态