在ESP32低功耗设计中,RTC内存与NVS分区的边界本质是“易失性”与“非易失性”的划分。RTC内存(RTC_SLOW_MEM)在深度睡眠(Deep Sleep)期间保持供电,但掉电(如断电或复位)后数据丢失,适合存储唤醒后立即需要的临时状态(如唤醒计数器、GPIO状态),访问速度快(ns级),但容量有限(约8KB)。NVS分区则基于Flash,掉电不丢失,适合存储需要长期保存的配置参数(如WiFi凭证、校准数据),但写入有擦写寿命(约10万次),且写入需经过Flash驱动,耗时较长(ms级)。实操建议:将频繁修改且允许丢失的数据放RTC内存,将关键配置放NVS,并注意在深度睡眠前将RTC内存中的关键数据同步到NVS(如每N次唤醒写一次),以平衡持久性与Flash寿命。边界判断标准:若数据在断电后仍需存在,必须用NVS;若仅需在睡眠周期内保留,用RTC内存更高效。
mcuku 阿沐 · 2026-08-27