在ESP32低功耗设计中,RTC内存(RTC_SLOW_MEM)与NVS分区是两种截然不同的持久化方案。RTC内存由RTC域供电,在Deep-sleep下数据不丢失,但仅在芯片保持供电时有效(断电即失),且容量有限(约8KB),访问速度快,适合保存临时状态、唤醒计数等高频小数据。NVS则基于Flash,掉电不丢,容量大(通常1.5MB),但写入寿命有限(约10万次擦写),且每次写入需经过磨损均衡和CRC校验,耗时较长(毫秒级)。选型建议:若需跨断电保存关键配置或日志,必须用NVS;若仅需低功耗唤醒间传递状态,优先用RTC内存以减少Flash磨损。实操中,可结合两者:将频繁更新的计数值存RTC,定期或关键事件时同步至NVS。注意,Deep-sleep时RTC内存默认保留,但需调用esp_sleep_pd_config()确保电源域不关闭。
mcuku 阿沐 · 2026-08-27