(FreeRTOS专题)七、低功耗与内存管理

一、低功耗模式

1.低功耗模式简介

         FreeRTOS 的 Tickless 模式是一种特殊的运行模式,用于最小化系统的时钟中断频率,以降低功耗。在 Tickless 模式下,系统只在有需要时才会启动时钟中断,而在无任务要运行时则完全进入休眠状态,从而降低功耗。在滴中断重启时,会对RTOS滴计数值进行校正调整。

          Tickless模式的实现方式通常依赖于微控制器的硬件特性,尤其是低功耗定时器或实时时钟单元。以下是 Tickless 模式的一般工作原理

(1)空闲任务检测:FreeRTOS会通过空闲任务(dleTask)来检测系统是否有任务需要执行。如果没有任务需要执行,系统可以进入休眠状态。

(2)时钟中断:当有任务需要执行时,系统会启动时钟中断,唤醒处理器

(3)时钟中断处理:在时钟中断处理函数中,FreeRTOS将检查任务的状态并决定是否继续执行

(4)休眠状态:如果没有任务需要执行,系统可以进入休眠状态,关闭时钟中断在休眠状态下,处理器可以进入更低功耗的模式

(5)任务唤醒:当有任务需要执行时,系统会再次启动时钟中断,唤醒处理器,然后执行相应的任务。

        在 Tickless模式下,系统的时钟中断频率明显降低,从而降低了系统的平均功耗。Tickless 模式适用于那些对功耗要求较高、需要长时间运行在低功耗状态的嵌入式系统。比如:电池驱动设备、物联网(IoT)设备、低功耗传感器节点、无线通信块等。

2.Tickless 模式详解

        STM32F103xC、STM32F103xD和STM32F103xE增强型产品支持三种低功耗模式,可以在要求低功耗、短启动时间和多种唤醒事件之间达到最佳的平衡

(1)睡眠模式(Sleep Mode)

         只有CPU停止,所有外设处于工作状态并可在发生中断/事件时唤醒CPU

(2)停机模式(Stop Mode)

         在保持SRAM 和寄存器内容不丢失的情况下,停机模式可以达到最低的电能消耗。在停机模式下,停止所有内部1.8V部分的供电,PLL、HSI的RC振荡器和HSE晶体振荡器被关闭,调压器可以被置于普通模式或低功耗模式。可以通过任一配置成EXTI的信号把微控制器从停机模式中唤醒,EXTI信号可以是16个外部IO口之一、PVD的输出、RTC闹钟或 USB的唤醒信号。

你可能感兴趣的:(FreeRTOS专题,单片机,mcu,stm32)