在ESP32低功耗设计中,RTC内存与NVS分区的核心差异在于供电域和持久性。RTC内存(RTC_SLOW_MEM)由RTC电源域供电,在Deep-sleep模式下保持数据,但完全掉电(如断开电池)后数据丢失,且容量有限(8KB),访问速度快,适合保存唤醒计数、传感器校准值等短期状态。NVS分区存储在Flash中,掉电不丢失,容量更大(默认约4KB可配置),但写入寿命有限(约10万次擦写),且写入需经过Flash驱动,功耗和延迟较高。选型建议:若数据需在每次唤醒后快速访问且可容忍断电丢失,优先用RTC内存;若数据需长期保存(如WiFi配置、设备证书),必须用NVS。实操中,可混合使用:将频繁更新的临时状态放RTC内存,关键配置放NVS,并在进入Deep-sleep前将RTC内存中的关键数据同步至NVS。注意,NVS写入会唤醒Flash,增加功耗,建议批量写入或仅在状态变化时写入。
mcuku 阿沐 · 2026-08-27