实测表明,ESP32 在低功耗模式下,RTC 内存(RTC_SLOW_MEM)的读写速度远快于 NVS 分区(Flash),差异可达 100 倍以上。RTC 内存是 SRAM,访问延迟在纳秒级,而 NVS 基于 SPI Flash,写入需擦除和页编程,延迟在毫秒级。唤醒后,若需快速恢复关键数据(如传感器校准值、运行状态),建议优先使用 RTC 内存,因其在深度睡眠期间保持供电,且读取无需初始化 Flash 驱动。但 RTC 内存容量有限(约 8KB),适合存储小体积高频访问数据。NVS 则适合持久化存储,但唤醒后首次读取需初始化 SPI 和 NVS 库,耗时约 10-50ms。实操建议:将关键状态变量存入 RTC 内存,将配置参数存入 NVS,并在唤醒后先读 RTC 内存快速恢复,再异步加载 NVS 数据。注意,RTC 内存数据在掉电或复位(非深度睡眠)时会丢失,需在 NVS 中备份。
mcuku 阿沐 · 2026-08-27