一、FreeRTOS学习笔记-基础知识
一基础知识
1、任务调度(调度器)
调度器就是使用相关的调度算法来决定当前需要执行的哪个任务
FreeRTOS三种任务调度方式:
1、抢占式调度:主要是针对优先级不同的任务,每个任务都有一个优先级,优先级高的任务可以抢占优先级低的任务。(FreeRTOS中数字越大优先级越高)
2、时间片调度:主要针对优先级相同的任务,当多个任务的优先级相同时, 任务调度器会在每一次系统时钟节拍到的时候切换任务。
3、协程式调度:当前执行任务将会一直运行,同时高优先级的任务不会抢占低优先级任务FreeRTOS现在虽然还支持,但是官方已经表示不再更新协程式调度
2、任务状态
FreeTROS共有四种状态1、运行态 2、就绪态 3、阻塞态 4、挂起态
这四种状态中,除了运行态,其他三种任务状态的任务都有其对应的任务状态列表
1、就绪列表:pxReadyTasksLists[x]API函数
2、阻塞列表:pxDelayedTaskList[x]API函数
3、挂起列表:xSuspendedTaskList[x]挂起列表
调度器总是在所有处于就绪列表的任务中,选择具有最高优先级的任务来执行