低功耗模式下的变量
Posted
技术标签:
【中文标题】低功耗模式下的变量【英文标题】:Variables in low power modes 【发布时间】:2021-10-29 22:07:42 【问题描述】:我想知道 STM32 单片机进入低功耗模式或退出后,变量及其内容会发生什么?例如处于睡眠模式或待机状态。 他们的内容会被删除还是保留下来?
最好的!
【问题讨论】:
如果 RAM 内容丢失,低功耗模式不会很有用:) 参考手册中描述了一切。每个模型都有不同的内存布局,您可以设置是否保留一些 RAM 区域。 @0___________ 您知道内部 RAM 丢失数据的许多微控制器低功耗状态吗?根据我的经验,我没有见过任何人。有趣的是,您使用的系统可以重新初始化 RAM:) 这与其说是一种低功耗模式,不如说是“将其关闭并再次打开”。 @MartinJamesdo you know of many microcontroller low-power states where the internal RAM loses data?
是的,如果程序员决定他愿意,所有的 STM32。
【参考方案1】:
您可以保留或不保留 - 通常(取决于模式)取决于程序员。内存非常耗电,因此唤醒后重新初始化 RAM 更节能(我有时在我的项目中这样做)
示例:STM32L476:
【讨论】:
那么这是否意味着SRAM只能在待机模式下丢失? @WeatherVane 没有。你可以控制它。如果您禁用 SRAMx 时钟,它将关闭。 我明白了,注 3。那么问题的答案是“除非程序员专门禁用 SRAM,否则变量仍然存在”?除了待机,“禁用”是默认设置。 非常感谢!有什么方法可以强制编译器在我声明变量时使用例如 SRAM1 来存储变量?(通过这种方式,我只想打开两个 SRAM 中的一个)。 @Amin-nano-sys,当然有。学习链接器脚本。以上是关于低功耗模式下的变量的主要内容,如果未能解决你的问题,请参考以下文章
STM32中用 stop 模式 配合低功耗模式下的自动唤醒(AWU) 能否实现FreeRTOS tickless 模式