FreeRTOS基础知识
摘要:FreeRTOS任务调度支持抢占式(按优先级)、时间片(同优先级)和协程三种方式。任务有四种状态:运行态(当前执行)、就绪态(可执行但未运行)、阻塞态(等待延时/事件)和挂起态(暂停需唤醒)。调度器通过就绪列表(pxReadyTasksLists)、阻塞列表(pxDelayedTaskList)和挂起列表(xSuspendedTaskList)管理任务状态转换,始终选择就绪列表中最高优先级的
一、任务调度简介(熟悉)
调度器就是使用相关的调度算法来决定当前需要执行的任务
FreeRTOS支持三种任务调度方式:
1、抢占式调度:主要 针对优先级不同的任务,每个任务都有一个优先级,优先级高的抢占优先级低的任务。
2、时间片调度:主要针对优先级相同的任务,任务调度器会根据系统时钟节拍到的时候切换任务。
3、协程式调度
二、任务状态(熟悉)
FreeRTOS中任务共有四种状态:
1、运行态:正在执行的任务就是运行态,在stm32中,同一时刻只有一个任务正在运行;
2、就绪态:如果该任务已经能够执行,但当前还未执行称为就绪态;
3、阻塞态 :如果一个任务因延时或等待外部事件发生,称为阻塞态;
4、挂起态:类似暂停,调用vTaskSuspend()进入挂起态,需要调用解挂函数vTaskResume才可进入就绪态;
四个任务状态的装换图:
这四种状态除了运行态,其他三种任务状态都有其对应的任务状态列表
就绪列表:pxReadyTasksLists[x],其中x代表任务优先级数值
阻塞列表:pxDelayedTaskList
挂起状态 :xSuspendedTaskList
调度器总是在处于就绪列表的任务中 ,选择最高优先级的任务运行。
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐


所有评论(0)