Page 1 of 1

[已解决] ESP32的NVS blob问题

Posted: Fri Sep 03, 2021 7:12 am
by YONGWONG
使用ESP32的NVS-BLOB存储12000个字节数据,每次完全擦除flash后编程写第一次都没问题,但之后再写就报错误ESP_ERR_NVS_NOT_ENOUGH_SPACE (0x1105): There is not enough space in the underlying storage to save the value
但每次读出都问题,数量也对,重新上电也不行,请问这是什么原因呢?使用的是IDF4.3稳定版本

Re: ESP32的NVS blob问题

Posted: Fri Sep 03, 2021 8:15 am
by ESP_Gargamel
错误是 ESP_ERR_NVS_NOT_ENOUGH_SPACE,你的 NVS 分区多大?搞大些。

Re: ESP32的NVS blob问题

Posted: Tue Sep 07, 2021 3:03 am
by YONGWONG
# ESP-IDF Partition Table
# Name, Type, SubType, Offset, Size, Flags
nvs,data,nvs,0x9000,24K,
phy_init,data,phy,0xf000,4K,
factory,app,factory,0x10000,1M,

NVS分区存储的数据是足够了,第一次读写都是正常的,之后读正常,写报错

Re: ESP32的NVS blob问题

Posted: Thu Sep 09, 2021 1:35 am
by ESP_Gargamel
你 nvs 是 24KB,写入的是 12000,nvs 里可能本来还有些其他参数在,你再写就没这么大空间了。
他写入的话,是不会把原来的擦掉的,在写入新的之后,会把原来的置成无效。
具体看下 https://docs.espressif.com/projects/esp ... flash.html
另外,你这样的参数存储,最开单独再开一块 nvs 分区,不要和系统的放在一起。

Re: ESP32的NVS blob问题

Posted: Thu Sep 09, 2021 5:25 am
by YONGWONG
正解,我今天刚好测试了下,情况就是这样,不是先擦除后写。