文章目录
- 前言
- 一、空闲任务概念
- 二、钩子函数概念
- 三、任务调度算法
- 四、任务调度算法实验
-
- 1.实验代码
- 2.是否抢占
- 3.时间片是否轮转
- 4.空闲任务让步
- 总结
前言
本篇文章将带大家学习一下什么是空闲任务以及钩子函数,以及学习FreeRTOS中的任务调度算法,了解在FreeRTOS中任务是如何进行切换调度的。
一、空闲任务概念
空闲任务(Idle Task)是嵌入式实时操作系统(RTOS)中的一种特殊任务。它是系统中优先级最低的任务,并且在系统中没有其他任务需要执行时运行。空闲任务的目的是让处理器在没有其他工作需要执行时保持忙碌状态,从而防止处理器进入空转状态。
空闲任务在RTOS中发挥着重要的作用。当所有其他任务都没有工作要执行时,空闲任务就会运行。它通常执行一些轻量级的操作,如低功耗模式的进入、系统统计信息的更新、调度器的处理等。空闲任务的执行时间应尽量短,以充分利用处理器资源。
空闲任务可以被视为一个后备任务,确保系统始终有任务可以运行,即使没有其他任务就绪。这对于实时系统来说尤为重要,因为实时系统需要对外部事件以及响应用户请求作出快速响应。通过空闲任务,RTOS可以保证系统的连续性和响应性。
在FreeRTOS中,空闲任务是由内核自动创建和管理的。
在使用vTaskStartScheduler开启调度器后会自动的帮我们创建好空闲任务。
二、钩子函数概念
FreeRTOS 中的钩子函数(Hook Functions