在ESP32低功耗设计中,RTC内存(RTC_SLOW_MEM)与NVS分区是两种截然不同的存储方案。RTC内存是芯片内部SRAM的一部分,在深度睡眠时保持供电,读写速度极快(纳秒级),且无擦写寿命限制(SRAM本质),但容量有限(8KB)且数据在掉电(如拔电池)后丢失。NVS则是Flash上的分区,基于磨损均衡和掉电保护设计,数据持久性高,但擦写寿命约10万次,且每次写入需先擦除块,速度慢(毫秒级)。选型建议:1)若需频繁更新(如传感器校准值、运行计数)且系统不断电,优先用RTC内存,但需在NVS中备份关键数据以防意外掉电;2)若数据更新频率低(如WiFi配置、用户设置)或需跨断电保存,必须用NVS;3)混合方案:RTC内存存运行时状态,NVS存持久配置,并在每次状态变更时异步写入NVS。实操上,注意RTC内存需通过RTC_NOINIT_ATTR声明,且访问时需禁用缓存;NVS写入建议使用NVS分区API并处理返回值。
mcuku 阿沐 · 2026-08-27