Image
Image

欢乐家园

+ 关注

粉丝 1     |     主题 114     |     回帖 1030

STM32通用低功耗组件——PM
2022-5-3 08:55
  • ST MCU
  • 47
  • 3512
  STM32L4 移植 PM STM32L4 的低功耗模式简介: STM32L4系列 是 ST 公司推出的一款超低功耗的 Crotex-M4 内核 ...  
  例如需要开启 Deep Sleep 模式下的时间补偿,在实现 timer 相关的 ops 接口后,初始化时设置相应的bit: in ...  
  自定义运行级别时钟树配置函数PM 组件驱动在给定运行频率时,已经尽量自动最优化配置时钟树,但有时外设时 ...  
  移植运行模式移植休眠模式仅需关注 run接口,下面是具体的实现: void stm32_run(struct rt_pm *pm, rt_uin ...  
  休眠的时间补偿需要实现三个接口,分别用于启动低功耗定时器、停止定时器、唤醒后获取休眠的 Tick,下面是 ...  
  移植时间补偿接口某些情况下,我们可能需要系统在空闲时进入 Stop 模式,以达到更低的降功耗效果。根据手册 ...  
  PM 组件的底层功能都是通过struct rt_pm_ops结构体里的函数完成: /** * low power mode operations */ st ...  
  移植的实现原理 RT-Thread 低功耗管理系统从设计上分离运行模式和休眠模式,独立管理,运行模式用于变频和 ...  
  模式的切换代码实现:当任务进入到空闲线程,最终是调用此函数进入低功耗和唤醒的 static void _pm_change_ ...  
  设置进入/退出休眠模式的回调通知和注册为设备的回调通知流程: 首先应用设置进出休眠状态的回调函数,然 ...  
  运行模式下的频率改变同样会触发设备的 frequency_change 回调。下面是具体代码实现: void rt_pm_device_r ...  
  注册PM设备 void rt_pm_device_register(struct rt_device *device, const struct rt_device_pm_ops *ops) ...  
  event 为以下两个枚举值,分别标识进入/退出休眠模式。 enum { RT_PM_ENTER_SLEEP = 0, /* 进入休眠 ...  
  设置进入/退出休眠模式的回调通知 void rt_pm_notify_set(void (*notify)(uint8_t event, uint8_t mode, v ...  
  下面是具体代码实现: int rt_pm_run_enter(rt_uint8_t mode) { rt_base_t level; struct rt_pm * ...  
  run_mode 可以取以下枚举值: enum { /* run modes*/ PM_RUN_MODE_HIGH_SPEED = 0, /* 高速 */ ...  
  设置运行模式 int rt_pm_run_enter(uint8_t run_mode);  
  特殊情况下,比如某个阶段并不允许系统进入更低的功耗模式,此时可以通过 rt_pm_request 和 rt_pm_release ...  
  释放休眠模式 void rt_pm_release(uint8_t sleep_mode); 调用该函数会将对应的模式计数减1,配合 rt_pm ...  
  调用该函数会将对应的模式计数加1,并锁住该模式。此时如果请求更低级别的功耗模式,将无法进入,只有释放 ...  
2
3
近期访客