在ESP32低功耗设计中,RTC内存和NVS是两种互补的存储方案。RTC内存(RTC_SLOW_MEM)在深睡模式下保持供电,访问速度快(ns级),适合保存频繁更新的临时状态(如计数器、传感器校准值),但容量有限(8KB)且掉电(如拔电池)会丢失。NVS(非易失存储)基于Flash,掉电不丢失,适合保存关键配置和长期数据,但写入寿命有限(约10万次擦写)且写入耗时(ms级)。实操建议:1)将运行状态(如WiFi重连计数)放RTC内存,减少NVS磨损;2)关键参数(如设备密钥)写NVS,并在每次修改后调用nvs_commit确保落盘;3)采用双备份策略:NVS存主数据,RTC内存存校验和,启动时比对,若RTC数据异常则从NVS恢复;4)注意深睡唤醒后RTC内存内容保留,但需用esp_sleep_get_wakeup_cause判断冷启动/热启动,避免误用旧数据。
mcuku 阿沐 · 2026-08-27