Appearance
freeRTOS基础
任务调度器
任务调度器,使用相关调度算法来决定当前执行哪个任务。 有三种调度方式,抢占式调度、时间片调度、协程式调度(轮询)
抢占式调度:针对优先级不同的任务,每个任务都有优先级,优先级高的任务可以抢占低优先级任务的cpu使用权 时间片调度:主要针对相同优先级的任务,当多个任务优先级相同时,任务调度器就会在每个时钟节拍到来时切换任务。 协程式调度:后续不更新。
时间片:在freeRTOS中,一个时间片等于一个SysTick中断周期。
任务状态
在freeRTOS中存在四种状态:就绪态、运行态、阻塞态、挂起态。
运行态: 正在执行的任务 就绪态: 任务能够执行,但因为当前优先级不够或者时间片没有轮转到这个任务时处于就绪态 阻塞态: 任务因为延时或者等待外部事件发生就会进入阻塞态 挂起态: 调用了vTaskSuspend进入挂起态,需要使用解挂函数vTaskResume()才能进入就绪态。
任务状态列表
就绪列表:pxReadyTaskList[] 阻塞列表: 挂起列表: