Advertisement

FreeRTOS 笔记之⑥:实现空闲任务和阻塞延时管理

阅读量:

目录

1. 空闲任务实现

2. 实现阻塞延时

2.1 vTaskDelay ()函数

2.2 vTaskSwitchContext()函数

2.3 SysTick中断服务函数

2.4 SysTick初始化函数


在之前的章节中描述的任务部分采用的是软件延时机制(即通过让CPU空闲等待来实现延时效果),而RTOS系统带来的显著优势在于始终保证其高效运行状态——使得所有任务若需实现延时效果均无法依赖CPU空闲等待的方式完成

RTOS中实现任务延时期望的操作称为阻塞延时。当任务需要执行长时间操作前,在获得处理器控制权之前会将该处理器调度到其他作业中执行。当任务达到预设的时间限制后恢复对其处理资源的控制权以继续执行其操作。这一机制最大限度地提升了系统的利用率,并避免单纯的等待状态

启动调度器

当某个程序延迟执行时会陷入阻塞状态 CPU此时将执行什么操作 如果没有任何其他可执行的任务存在 RTOS通常会在这种情况下自动生成一个空闲级别的相关操作 CPU将执行该级别的相关操作 在FreeRTOS系统中 该空闲级别的任务是由启动调度器机制建立的最低优先级的任务 其主要功能是负责系统内存的清理与管理

但是仅用于简明扼要地说明本章中实现的一个空闲任务的情况时,在代码中我们仅仅对一个全局变量进行计数。

考虑到空闲任务的这一特性,在实际应用环境中,当系统启

全部评论 (0)

还没有任何评论哟~