在ESP32低功耗设计中,RTC内存(RTC_SLOW_MEM)与NVS(非易失存储)的可靠性差异显著。RTC内存由RTC域供电,在Deep Sleep和Light Sleep下保持数据,但断电(如电池耗尽)即丢失,且受限于8KB容量,适合保存临时唤醒上下文、传感器校准值等高频读写数据。其写入无磨损限制,但需注意RTC内存的保持电压(VDD_RTC)稳定性,若供电波动可能损坏数据。NVS基于Flash,掉电不丢,但写入有擦写寿命(约10万次),且写入速度慢(毫秒级),频繁写入会加速磨损并引发功耗开销。选型建议:若数据需跨断电保留(如Wi-Fi配置、设备ID),选NVS;若仅需在睡眠周期内保留(如唤醒计数、中间状态),用RTC内存。实操中,可结合两者:将关键配置存NVS,运行时状态存RTC,并在每次唤醒后备份RTC数据到NVS(限低频)。注意,Deep Sleep时RTC内存默认保留,但需在menuconfig中启用‘RTC memory’选项,并避免在RTC内存中存储指针或动态分配。
mcuku 阿沐 · 2026-08-27