在ESP32低功耗设计中,RTC内存(RTC_SLOW_MEM)与NVS分区是两种截然不同的数据持久化方案。RTC内存由RTC域供电,在Deep Sleep下保持数据,但断电(如电池耗尽或复位)会丢失,且容量有限(约8KB),写入无需擦除,速度快,适合频繁更新的临时状态(如唤醒计数、传感器校准偏移)。NVS则基于Flash,通过磨损均衡和CRC校验保证断电安全,数据可跨复位和断电保留,但写入需擦写块,寿命约10万次,且每次写入耗时(ms级),不适合高频更新。选型建议:若数据需在深睡期间快速读写且可容忍断电丢失,选RTC内存;若数据必须长期可靠(如WiFi配置、设备ID),选NVS。实操中,可将关键配置存NVS,运行状态存RTC,并在唤醒时同步。注意,RTC内存访问需通过esp_sleep_get_ext1_wakeup_status等API,且需在休眠前用esp_deep_sleep_start保持RTC域供电。
mcuku 阿沐 · 2026-08-27