Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
PM电源管理
低功耗
电源管理
RT-Thread 4.1.0 开启 PM 电源管理框架
发布于 2022-06-03 22:04:24 浏览:1814
订阅该版
[tocm] ## 前言 - 如今嵌入式产品越来越关注低功耗设计,也就是PM电源管理 - 如果使用裸机程序,低功耗的管理流程相对简单一些,在多任务的操作系统中,如基于RT-Thread,如何进行低功耗管理呢? - RT-Thread 有一套PM 电源管理框架,并在一些实际的低功耗产品中使用,本篇初步讲一下PM框架的开启与使用 ## 功耗话题 - 电源管理(Power Management),也就是低功耗管理,通过控制电源的开关,实现系统低功耗运行 - 低功耗运行:可以理解为间歇性运行,类似于PWM(脉宽调制解调)控制,空闲时进入睡眠,工作时唤醒工作,工作完空闲后继续睡眠,如此间歇性工作。 - 之前零零散散写过几篇低功耗管理的文章,主要偏向低功耗的调优方法,如今很多功耗管理的用户都有自己功耗调优的方法与能力,只是一上来不清楚如何使用RT-Thread PM框架,遇到的问题也不清楚如何表达清楚 - 遇到的问题往往是为何进入不了深睡眠,为何唤醒后死机等等此类话题 - 前期没有清晰的PM框架使用指导文档,可能会降低功耗管理者的耐心,增加功耗管理人员的工作量 - 实践总结:功耗管理牵涉到很多的专业与非专业的知识点,如硬件与软件协同调试能力,所以功耗调优工作很难【一蹴而就】 ## 开发环境 - stm32l476-st-nucleo开发板,基于STM32L476RG - RT-Thread 4.1.0 - Keil MDK5 ## 最小RT-Thread 系统 - 这里【推荐】搭一个基于RT-Thread 【标准版】的最小系统,而不是Nano版本,搭建的方法其实很简单,就是整理好代码目录,修复工程构建路径,BSP只添加自己MCU平台的即可 - 建议使用Git管理这个最小系统 - 内核:rt-thread,这里不包括bsp、git 相关的目录 ![2022-06-03_205801.png](https://oss-club.rt-thread.org/uploads/20220603/1f6c8a92b0a120f0ba4581d8d8a05cf5.png.webp) - libraries,这里只包括MCU平台本身的,如STM32L4 的HAL库 ![2022-06-03_210040.png](https://oss-club.rt-thread.org/uploads/20220603/9b0fe721bf6ea748ba8c30a9e009deec.png.webp) - 板子类似bsp,只需要与自己的板子MCU平台一致或相似的 ![2022-06-03_210224.png](https://oss-club.rt-thread.org/uploads/20220603/fdae306ac288797eac9238228149b432.png.webp) - 修改Kconfig 路径,工程目录变动引起的,调整一下 ![2022-06-03_211655.png](https://oss-club.rt-thread.org/uploads/20220603/14927238af3640867b8a695b5505991f.png.webp) - 修改 SConstruct 路径,工程目录变动引起的,调整一下 ![2022-06-03_211754.png](https://oss-club.rt-thread.org/uploads/20220603/a1555fb2f0af3087dd4f073d971b5f97.png.webp) - 使用RT-Thread ENV 工具:menuconfig 配置,记得保存`save` 一下,这样会更新配置文件:`rtconfig.h`,然后:`scons --target=mdk5` 构建生成`Keil MDK5` 工程。 - 【备注】如果使用RT-Thread Studio,可能方法不太一致 - 默认生成的工程,打开可以正常的编译下载,下载后RT-Thread 最小系统正常运行,串口 Shell终端正常使用。这也得益于RT-Thread BSP 为我们做好了这些 ![2022-06-03_212507.png](https://oss-club.rt-thread.org/uploads/20220603/6eaf65915238fc9f40bf6c6f60b23237.png.webp) ![2022-06-03_212453.png](https://oss-club.rt-thread.org/uploads/20220603/24294208d0fc10250191b9ed49c5f933.png) - 至此RT-Thread 最小系统完成搭建工作。以上搭建最小系统的过程写这么详细,源于很多调试RT-Thread PM框架的同学,可能对RT-Thread 接触不多,基本操作可能不熟练,算是【磨刀不误砍柴工】吧。 - 这里推荐先搭建一个RT-Thread最小系统主要是为了尽快的搭建PM管理框架,并实现PM框架适配、功耗拆解与调试,这会提高调试的效率,利于问题的定位与快速解决 ## 开启PM框架 - 【说明一】RT-Thread PM管理框架如今应用在很多平台,我当前接触的MCU平台大概也有四个,这说明RT-Thread PM框架并不是针对某个平台如:STM32,而是通过适配,可以用于很多平台。 - 【说明二】为何RT-Thread 官方的BSP中开启了PM框架,却没有PM 电源适配?作为使用者,我的理解是:PM管理针对的是硬件的电源管理,与具体的硬件设计息息相关,如板子具体引脚配置、片外片内外设的驱动等,而硬件都是千差万别的,不可能为每个BSP都可以做PM适配。 - 这不代表其他MCU平台开启PM框架后,PM框架的适配工作从零开始,因为可以借鉴BSP 现有 STM32L4系列PM框架适配方法 - 对于STM32L4 系列的平台,这里的`L`表示的是STM32 低功耗系列(Low Power),RT-Thread 有很好的PM框架适配,所以开启PM框架后,适配工作基本完成 ![2022-06-03_213158.png](https://oss-club.rt-thread.org/uploads/20220603/64ae7c3d96116ffeb8c7454c55a0c1db.png) - 开启PM框架后需要再次打开RT-Thread ENV工具:运行 `scons --target=mdk5`,重新构建工程,保证PM框架相关的代码自动加入工程。 - 注意:STM32L4 因为适配了PM框架,所以PM框架的文件加入工程外,PM框架适配的文件也自动加入,其他的MCU平台,PM框架适配文件需要【功耗管理者】自行加入,可以参考现有的PM框架适配文件。 ![2022-06-03_213457.png](https://oss-club.rt-thread.org/uploads/20220603/76de290478568f449b423e82189d522c.png.webp) ![2022-06-03_213630.png](https://oss-club.rt-thread.org/uploads/20220603/32aeff347d963520018e008bac8a1b37.png.webp) - PM 相关文件说明: ![677410672fc6ce80964083f34ebfd2a3.png](https://oss-club.rt-thread.org/uploads/20220603/677410672fc6ce80964083f34ebfd2a3.png) ## PM框架调试 - 开启PM框架后,就可以使用PM框架提供的命令进行调试 ### PM框架开启后,为何一直无法进入深睡眠? - PM框架开启后,框架在适配时,默认请求了【不睡眠】,所以 ![2022-06-03_214934.png](https://oss-club.rt-thread.org/uploads/20220603/785cb9c224bf52243c3f0645bb392495.png.webp) - 可以使用串口的shell 命令 【释放】这个【None】睡眠模式 ![2022-06-03_215305.png](https://oss-club.rt-thread.org/uploads/20220603/476adcd17328e2d1656385859666d830.png) - 可以使用代码的方法:【释放】这个【None】睡眠模式 ![2022-06-03_215728.png](https://oss-club.rt-thread.org/uploads/20220603/4910f6ed393d979f6814ce276af3e190.png.webp) ![2022-06-03_215815.png](https://oss-club.rt-thread.org/uploads/20220603/bdb74173b54772453647fa25e5772497.png) ## 小结 - PM 框架已经开启了,STM32L4平台上,PM框架的适配文件有了,可以根据自己的平台进行参考与适配 - PM 框架整体包含【睡眠管理】【低功耗定时器管理】【变频管理】,本篇只简单讲到:【睡眠管理】 - 待后续文章继续讲解
2
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
张世争
学以致用
文章
131
回答
809
被采纳
175
关注TA
发私信
相关文章
1
STM32F103的低功耗
2
最近用rtthread系统下AD采样并低功耗,中断响应不及时
3
rt-thread低功耗休眠应用问题请教
4
关于RTT对低功耗的支持
5
RT-Thread怎么休眠实现低功耗。
6
RT-Thread V3.0支持的低功耗,OS会自行进入吗?
7
关于RTThread3.0低功耗休眠模式
8
RTT3.0的bsp包中哪些MCU自带低功耗定时器?
9
关于低功耗上次说针对L4出个BSP的,怎么迟迟不见呀
10
低功耗问题。
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
a1012112796
10
个答案
1
次被采纳
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
YZRD
2
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部