Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
PM2.0
【PM2.0组件优化】优化建议集思广益交流
发布于 2020-09-04 08:39:01 浏览:2373
订阅该版
[tocm] ## RT-Thread PM2.0组件优化建议 ------ ### 背景 目前 rt-thread 组件中,有一套 PM 管理的组件。但在具体项目中,未能使用起来。客户表示使用起来非常别扭。我们深入一线,切身参与到功耗开发的整个流程中,也发现了,当前 PM 组件的编程思想,与实际不符。所以开发第二代 PM 管理框架,让他在下个项目中,能够用起来,并能很好的管理整个系统的功耗。 ### 大家可以都提些建议或更好的意见,扩展性、易用性、更好的在产品中使用并发挥作用。
查看更多
shao7936626
2020-09-07
这家伙很懒,什么也没写!
Rt thread PM组件优化 针对平台:Stm32 传感器类: 解释:这边的传感器类别一般是购买现成的传感器模组或者芯片,然后传感器与mcu 进行通讯,mcu将传感器数据协议打包发送的场景; 遥信传感器: 水浸传感器,烟雾传感器,倾角开关等等; 遥测传感器: 气体传感器,温湿度传感器,光照传感器,液位、流量、流速传感器,三轴传感器等等; 以上传感器(只罗列一小部分):目前各行业都会使用,而且越来越多的要求都是安装方便,电池供电,不需要布线;对数据的精准度,及时性等不是那么高; 通讯类: 用Lora 通讯的设备:上述提到的各类传感器,城市里面现在非常流行的井盖位移传感器,广告牌倾倒传感器,高精度的桥梁监测传感器等等。 目前大部分小厂家采购直接购买Lora模组的形式,这样不用关心射频的问题,有部分lora模块自身已经支持低功耗,有部分未支持低功耗;其中大部分厂家为了支持lora模块的空中唤醒机制,都会将mcu的lpuart 给lora模块,但是往往lpuart不够用; 用Nb-iot通讯的设备:最常见的智能门锁,智慧烟感,手动报警器,声光报警器等等,目前nb-iot的通讯模组价格大部分已经比Lora模组要低百分之20到30了,而且不用自己去建立基站,除非是特殊项目,大部分需要上公网的传输数据的模组都会选择使用nb方式; 目前rtt中如果使用at组件去控制nb模组,进入psm状态,如果模组接收到信息,这个时候一般是需要通过普通串口来唤醒Mcu的(实现方式大家都清楚,裸机实现也不是太难),而在目前rtt上面是比较难实现的。 复杂类: 复杂一些的场景:有主电和备电,主电插着的时候,需要全速全功率运行和计算等等,到那时一旦主电断开,设备需要根据备电的电量进行自动的降低运行速率,甚至进度休眠状态,隔一段时间唤醒检测备电的情况等等。 个人建议: Stm32L系列mcu 时钟树非常复杂,外设的时钟源也非常复杂,如果新手直接上手,会非常难弄,这边是否有大神能够优化,提供几种常用的api,满足几种常用的场景; 基本上休眠还是和老白之前提的一样,一般只有stop2和shandy了,stop2模式,老白的版本,对所有的引脚不做任何变化,这边留给用户自己去优化,这个难度其实还是挺高的,这边我觉得可以提供一种极限的方式,根据目前stm32l4xx_hal_conf.h中开启的设备,除了rtc lpuart lptimer; 都进行反初始化;
14
个回答
默认排序
按发布时间排序
Aladdin-Wang
认证专家
2020-09-04
这家伙很懒,什么也没写!
一、对于需要长时间休眠,通过中断事件,或者定时事件唤醒的使用场景,比如汽车电子上,用户并不需要运行时降频或者主动降低功耗,也不需要休眠时对时钟进行补偿。对于这样的场景,我再使用的过程中,感觉想进入休眠很麻烦,不像使用裸机那样,睡眠前对外设进行反初始化就行了,使用PM组件后,还需要阻塞掉所有的线程,检查所有使用低功耗请求和释放的地方,最后还是要再自己关闭外设,打开想要唤醒的中断源。我比较怀疑PM组件好像并不适合用在这样的场景。 二、关于PM组件的驱动,对于用户来说适配PM组件的驱动是一件及其麻烦的事情,需要用户不仅要懂PM组件的框架,还需要懂单片机低功耗的原理,这对于小白来说直接就劝退了。我希望PM组件不仅做好框架,把驱动包也做起来,用户只需要简单的勾选,和几个简单的API,就能在自己的使用场景上使用起来。
aozima
2020-09-07
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
感觉除了低功耗模式或待机模式下,正常运行时的功耗同样考虑。 最基本的就是idle WFI指令,另外就是tickless可以做成标配,或是很方便启用。
aprilhome
2020-09-04
这家伙很懒,什么也没写!
支持支持! 是否可以考虑实际应用,例如潘多拉板,平时是待机状态,接收到串口命令后唤醒,执行完成后再进待机。如何进入低功耗,如何唤醒,进入低功耗好像比较方便,直接一个函数就可以,退出呢,比如想用串口接收到数据唤醒,如何配置,时钟修改,唤醒事件设置这些,应该在哪里实现。 再就是支持文档,看的一知半解,是否可以有移植步骤,在什么地方添加什么功能函数之类,看制作BPS的步骤文档就很清楚。 谢谢!
liuduanfei
2020-09-04
这家伙很懒,什么也没写!
希望文档能够丰富一些?
ching
2020-09-04
这家伙很懒,什么也没写!
任务一空闲就进入休眠,不符合实际场景,实际使用中,某个事件完成了或者到了指定的运行时间才进入休眠状态。
李子成
2020-09-04
这家伙很懒,什么也没写!
rt_system_power_manager 可以不放在idel里面么。我stm32f1放在idel里面不知道为什么有异常。可能是idel太快的原因吧。
_Dong
2020-09-04
这家伙很懒,什么也没写!
新接触的PM组件,谈一下我自己的感受。 我感觉这个组件的文档教程不是很好,目前我看完文档以后添加组件以后,在使用的过程中设备没有反应。不知道是自己哪一方面出错了,也不知道是不是自己没有添加到位。 在FinSH控制台中输入pm_run 设备消耗电流也没有降低
红枫
认证专家
2020-09-04
这家伙很懒,什么也没写!
#### 抛砖引玉,提几点不成熟的建议供讨论: 1. 建议PM组件通过挂载方式安装运行,具体方案是空闲线程提供一个功耗管理回调接口,PM组件通过挂接回调函数形式实现挂载运行。这样用户可选择性就大了,可以选择使用系统提供的功耗管理组件,也可以挂载其它的功耗管理组件,甚至可以编写自己的功耗管理组件挂载使用。 2. 功耗管理组件提供的可选运行频率须增加,最好可提供最低、低、中、高、最高共5个档次。每个档次使用的时钟源可选择,例如:最低选用LSE、低选用MSI 2M、中选用MSI 16M、高选用MSI 48M、最高选用PLL 128M。 3. 功耗管理组件的唤醒源采用组件挂载方式驱动,即功耗管理组件提供唤醒源组件挂载接口,用户可灵活地挂载唤醒源,甚至可以在运行中根据需要变更唤醒源。
张世争
2020-09-07
学以致用
## PM组件用户反馈,目前总结的反馈如下: ![2020-09-07_151111.png](/uploads/20200907/1491c7df35cf8429a65b31226e68b3a3.png) ## 归类为: * 文档与例程较少,【不会用】 * 睡眠理解问题【各个功耗模式不理解】 * 多线程功耗管理与裸机实现的区别 * 主流平台适配,用户需要更多平台的适配。
ForestRain
2020-09-23
这家伙很懒,什么也没写!
有一个想法是针对需要低功耗且处理任务较轻的事件触发型场景(可应用在rt-thread nano),提供如下一种模式————os tick来自低功耗定时器(LPTIM),同时内核提供实时的64位低功耗软件定时器扩展,这样的话,可不需要tickless,低功耗设备应用起来也会比较方便
撰写答案
登录
注册新账号
关注者
2
被浏览
2.4k
关于作者
张世争
学以致用
提问
3
回答
801
被采纳
173
关注TA
发私信
相关问题
1
RT-Thread PM2.0 新框架已经上线,欢迎大家使用,提建议
2
PM2.0 组件调试请教
3
RT-Thread :PM不能休眠
4
STM32L4下PM组件测试无法进入STOP2
5
关于STM32L4 PM组件使用的疑问
6
PM2.0组件函数 rt_pm_notify_set 后 notify 回调影响进入休眠
7
硬件版本stm32l412kbu6,使用对应bsp搭建pm框架时,在drv_pm.c改变主频的的函数为找到,是需要自己处理吗?
8
STM32L4进入低功耗的外设初始化
9
【PM】在深睡唤醒的中断中使用会发生调度的API可能会导致未提升频率就执行其他线程
推荐文章
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组件
最新文章
1
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
2
RT-Thread 发布 EtherKit开源以太网硬件!
3
rt-thread使用cherryusb实现虚拟串口
4
《C++20 图形界面程序:速度与渲染效率的双重优化秘籍》
5
《原子操作:程序世界里的“最小魔法单位”解析》
热门标签
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
WIZnet_W5500
ota在线升级
UART
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
at_device
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
张世争
8
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
KunYi
6
个答案
1
次被采纳
本月文章贡献
程序员阿伟
6
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部