在ESP32低功耗设计中,RTC内存(RTC_SLOW_MEM)与NVS分区是两种截然不同的持久化方案。RTC内存由RTC域供电,在Deep-sleep和Light-sleep下保持数据,但掉电(如拔电池)即丢失,且容量有限(约8KB),写入无需擦除,速度快,适合保存唤醒计数、传感器校准值等高频更新的临时状态。NVS基于Flash,掉电不丢,但写入需先擦除(磨损均衡),单次写入耗时约数十毫秒,且频繁写入会缩短Flash寿命(典型10万次擦写)。可靠性上,NVS有CRC校验和掉电保护,而RTC内存无校验,若电源不稳可能产生位翻转。选型建议:若数据需跨掉电保留(如WiFi配置、设备密钥),必须用NVS;若仅需在睡眠周期间保留(如唤醒次数、运行标志),优先用RTC内存以降低功耗和延迟。实操中,可混合使用:将关键配置存NVS,运行状态存RTC,并在唤醒后同步。注意,Deep-sleep时RTC内存默认保留,但需调用esp_sleep_pd_config()确保电源域不关闭。
mcuku 阿沐 · 2026-08-27