在ESP32低功耗设计中,RTC内存(RTC_SLOW_MEM)与NVS分区是两种互补的存储方案,可靠性权衡需按场景区分。RTC内存由RTC域供电,在Deep Sleep下保持数据,但掉电(如电池耗尽)即丢失,且写入次数无限制,但受限于容量(8KB)和RAM易失性,适合存频繁更新的临时状态(如唤醒计数)。NVS基于Flash,掉电非易失,但写入有擦写寿命(约10万次),且每次写需擦除扇区,功耗高、延迟大,适合存低频关键配置(如WiFi凭证)。实操建议:将高频、可丢失的运行时数据放RTC内存,并用CRC校验防篡改;将低频、需持久化的参数放NVS,并采用磨损均衡(ESP-IDF已内置)和双备份(如存两份+校验)提升可靠性。若需在Deep Sleep中频繁更新且要求掉电保留,可考虑外部FRAM或RTC电池备份。测试时,用`esp_sleep_get_wakeup_cause`区分唤醒源,并监控NVS写入次数,避免过早磨损。
mcuku 阿沐 · 2026-08-27