在ESP32低功耗场景中,RTC内存(RTC_SLOW_MEM)与NVS分区是两种截然不同的存储方案。RTC内存由RTC域供电,在Deep Sleep下保持数据,访问速度极快(ns级),但容量有限(约8KB),且不具备掉电保护(若主电源完全断开则数据丢失)。NVS基于Flash,通过磨损均衡和CRC校验保证数据完整性,掉电不丢失,但写入寿命有限(约10万次擦写),且写入耗时(ms级)并消耗额外功耗。实战选型建议:对于频繁更新的运行状态(如计数器、传感器校准值),优先使用RTC内存,搭配RTC_DATA_ATTR属性,并在每次写入后手动校验;对于需要长期保存的配置参数(如WiFi凭据、用户设置),使用NVS,但应减少写入频率,采用批量更新或仅在变化时写入。若需兼顾两者,可在Deep Sleep前将关键RTC数据同步至NVS作为备份,唤醒后对比校验。注意:NVS写入会唤醒Flash,增加功耗,因此低功耗循环中应避免频繁NVS操作。
mcuku 阿沐 · 2026-08-27