【STM32 FreeRTOS】Tickless低功耗模式

张裕  高级会员 | 2024-8-20 19:06:23 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 212|帖子 212|积分 636

STM32低功耗模式


STM32 提供了 3 种低功耗模式,以到达不同层次的低落功耗的目标


  • 就寝模式(内核停止工作,外设仍在运行)
  • 停止模式(所偶然钟都停止)
  • 待机模式( 1.8 V 内核电源关闭)
FreeRTOS主要利用的就寝模式进入低功耗模式。
Tickless低功耗模式

如何低落功耗

Tickless低功耗模式的本质是通过调用指令WFI进入就寝模式!
Tickless模式的设计头脑

在任务运行时间统计实验中,我们可以看出,实在大部门时间都是在实行空闲任务。
可以在本该空闲任务实行的期间,让MCU进入相应的低功耗模式;当其他任务准备运行的时候,叫醒MCU退出低功耗模式。
难点:
1、进入低功耗模式后,多久叫醒?也就是下一个要运行的任务如何被正确叫醒。
2、任何停止均可叫醒MCU,若滴答定时器频繁停止则会影响低功耗的结果。
可以将滴答定时器的停止周期修改为低功耗运行时间,退出低功耗后,需不上体系时钟节奏数。值得庆幸的是:FreeRTOS的低功耗Tickless模式机制已经处理好了这些难点。
Tickless模式相关设置项

configUSE_TICKLESS_IDLE
此宏定义用于使能低功耗Tickless模式,设置1体现利用体系定义好的函数,设置2体现自定义函数
configEXPECTED_IDLE_TIME_BEFORE_SLEEP
此宏定义用于定义体系进入相应低功耗模式的最短时长,默认设置为2
configPRE_SLEEP_PROCESSING(x)
此宏用于定义需要再体系进入低功耗模式前实行的事务,如:进入低功耗前关闭外设时钟,以到达低落功耗的目标。
configPOST_SLEEP_PROCESSING
此宏用于定义需要再退出低功耗模式后实行的事务,如:退出低功耗模式后开启之前关闭的外设时钟。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张裕

高级会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表