FreeRTOS——低功耗管理

目录

一、概念及其应用

1.1应用

 1.2STM32电源管理系统

2.3STM32低功耗模式

2.3.1睡眠模式

2.3.2停止模式

2.3.3待机模式

三、Tickless低功耗模式

3.1低功耗模式配置

3.2低功耗模式应用

3.3低功耗电路分析

3.4低功耗处理相关接口

四、实现原理

 4.1任务等待删除的检查

4.2空闲任务

4.3Tickless流程

4.4休眠处理

4.4.1计算SysTick装载值

4.4.2进入低功耗模式

4.4.3恢复systick


一、概念及其应用

1.1应用

可穿戴的、电池供电、待机时间长的产品:

还有%80的物联网产品

 1.2STM32电源管理系统

主要分为:备份域(VBAT备用电池供电)、调压器供电电路(内部1.2V提供供电)、ADC电源电路(模数分离保证ADC测量精度)

 实际上,低功耗就是做减法,做关断

2.3STM32低功耗模式

包括睡眠模式、停机模式、待机模式

2.3.1睡眠模式

  • 仅关闭内核时钟,内核停止运行,但片上外设包括CortexM4核心外设仍正常运行

  • WFI、WFE两种方式进入,即由等待中断唤醒和等待事件唤醒

一般情况下不用睡眠模式,因为它实现不了大面积的低功耗

2.3.2停止模式

  • 进一步关闭所有外设的时钟,但不关闭1.2V区域的部分电源,

  • 还保留了内核寄存器、内存的信息,所以从停止模式(任意一个外部中断EXTI)唤醒,重启时钟后还可以从上次停止处继续执行代码。

  • 停止模式中可选择电压调节器为开模式或低功耗模式,可选择内部FLASH工作在正常模式或掉电模式

2.3.3待机模式

  • 关闭所有时钟,同时关闭1.2V区域的所有电源,唤醒后,只能对芯片复位,从头开始执行程序

  • 四种唤醒方式,WKUP引脚上升沿,RTC闹钟事件,NRST引脚的复位、IWDG独立看门狗的复位

三、Tickless低功耗模式

### FreeRTOS RTC 功能的低功耗配置 FreeRTOS 提供了一种灵活的方式来管理和调度任务,同时也支持多种硬件平台上的低功耗模式。为了实现 RTC(实时时钟)功能并优化其在低功耗环境下的性能,通常需要结合具体的硬件特性以及 FreeRTOS 的配置机制。 #### 配置 FreeRTOS 支持 RTC 和低功耗模式 1. **启用必要的宏定义** 在 `FreeRTOSConfig.h` 文件中,可以通过设置一系列以 `INCLUDE_` 开头的宏来控制哪些功能被编译到项目中。例如,如果需要使用队列、信号量或其他同步原语,则应确保这些宏已正确定义[^1]。对于 RTC 功能的支持,可能还需要额外的驱动层配合工作。 2. **中断服务程序的设计** 中断服务程序 (ISR) 是 FreeRTOS 应用的重要组成部分之一,在处理外部事件时起到关键作用。当涉及到 RTC 模块时,可以利用定时器溢出产生的周期性中断触发 ISR 来更新时间戳或者唤醒休眠状态的任务[^2]。需要注意的是,设计良好的 ISR 不仅要快速完成预定动作还要避免长时间占用 CPU 资源从而影响其他高优先级任务正常运行。 3. **进入低功耗模式** 大多数微控制器都提供了不同级别的省电模式可供选择。要在保持精确计时的同时降低能耗水平,可以选择让 MCU 进入停止(stop)/待机(standby)等较深睡眠状态下但仍保留某些外设活动的能力比如独立于核心工作的RTC单元继续运作。具体如何切换取决于所使用的MCU型号及其文档说明。 4. **示例代码展示** 以下是基于 STM32 平台的一个简单例子展示了如何初始化一个基础版本的 RTC 并将其集成进 FreeRTOS 系统当中: ```c #include "stm32f4xx_hal.h" #include "freertos.h" void vConfigureTimerForRunTimeStats(void){ /* Configure the SysTick timer as a free running counter */ } int main(){ HAL_Init(); // Initialize RTC here according to your hardware setup xTaskCreate(vRTCTask,"RTC Task",configMINIMAL_STACK_SIZE,NULL,tskIDLE_PRIORITY,&pxCreatedTask); vTaskStartScheduler(); while(1){}; } ``` 在这个片段里我们创建了一个名为vRTCTask的新线程专门负责监控来自RTC模块的数据变化情况并通过适当方式通知其余部分做出反应;当然实际应用过程中还需考虑更多细节诸如错误恢复策略等等因素。 #### 结论 综上所述,虽然没有直接提及任何特定的产品链接或教程名称,但是已经概述出了构建这样一个系统的几个重要方面——从理论层面探讨了有关概念再到实践环节给出了初步框架结构建议。希望这能帮助您更好地理解整个过程!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值