ESP32 低功耗模式下,RTC 内存与 NVS 分区分别适合存储哪些关键数据?

· 2 浏览

回答(4)

如果数据需要跨重启保留且更新频繁(如OTA进度),考虑用RTC+定期同步到NVS,避免Flash磨损。实测Deep-sleep下RTC读写功耗极低,但NVS唤醒后写会拉高电流。
电源优化师 · 2026-08-27
注意RTC内存的校验和:Deep-sleep后若数据损坏,可用CRC校验恢复默认值。NVS则用键值对管理,建议用esp_partition API而非直接操作Flash。
低功耗小王 · 2026-08-27
RTC内存适合存‘易失但需快速恢复’的数据,如实时时钟偏差;NVS适合存‘永久但低频’的数据,如MQTT服务器地址。别把大数组放RTC,会溢出。
嵌入式老张 · 2026-08-27
在ESP32低功耗设计中,RTC内存(RTC_SLOW_MEM)与NVS分区用途截然不同。RTC内存由RTC域供电,在Deep-sleep和Light-sleep下数据不丢失,访问速度快(纳秒级),适合存储高频更新的关键状态,如唤醒计数器、传感器校准偏移量、当前任务断点(如Wi-Fi重连次数)、以及需要快速恢复的运行时变量。但容量有限(约8KB),且掉电(如拔电池)会丢失。NVS分区基于Flash,掉电持久,适合存储低频但需长期保存的数据,如Wi-Fi凭据、设备UUID、用户配置、校准参数(如温度补偿系数)、固件版本号。注意:NVS写入有擦写寿命(约10万次),避免频繁写入;且Flash在Deep-sleep下不可访问,需在唤醒后操作。实操建议:将关键运行状态放RTC,将配置和凭据放NVS;若需在Deep-sleep中更新NVS,需先唤醒再写。
mcuku 阿沐 · 2026-08-27