Сколько данных NVS мы можем реально использовать в ESP32? - PullRequest
1 голос
/ 18 марта 2019

Я проверяю свой объем памяти NVS. Это мой вывод, когда я делаю раздел.

toolchain path: /home/dhananjay/esp/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
Toolchain version: crosstool-ng-1.22.0-80-g6c4433a

Версия компилятора: 5.2.0 Python requirements from /home/dhananjay/esp/esp-idf/requirements.txt удовлетворены. Сформирована двоичная таблица разделов. Содержание:


# Espressif ESP32 Partition Table
# Name, Type, SubType, Offset, Size, Flags

nvs,data,nvs,0x9000,16K,
otadata,data,ota,0xd000,8K,
phy_init,data,phy,0xf000,4K,
factory,app,factory,0x10000,1M,
ota_0,app,ota_0,0x110000,1M,
ota_1,app,ota_1,0x210000,1M,
*******************************************************************************
Partition flashing command:
python /home/dhananjay/esp/esp-idf/components/esptool_py/esptool/esptool.py --chip esp32 --port /dev/ttyUSB1 --baud 115200 --before default_reset --after hard_reset write_flash 0x8000 /home/dhananjay/esp/Homebridge/build/partitions_two_ota.bin
dhananjay

Что показывает, что я могу использовать 16k хранилища nvs, но когда я записываю в nvs через пространство имен «storage» и ключи «a» - «p», каждый ключ содержит 1022 байта данных. я получаю этот вывод.

Done
String written successfully
Namespace a Completed
Done
String written successfully
Namespace b Completed
Done
String written successfully
Namespace c Completed
Done
String written successfully
Namespace d Completed
Done
String written successfully
Namespace e Completed
Done
String written successfully
Namespace f Completed
Done
String written successfully
Namespace g Completed
Done
String written successfully
Namespace h Completed
Done
String written successfully
Namespace i Completed
Done
Not enough Storage space
Wrongfull termination in Writing String

Я могу хранить только 10220 КБ данных, пожалуйста, помогите.

1 Ответ

1 голос
/ 19 марта 2019

16Кб - это объем (аппаратного) хранилища. Однако у библиотеки NVS есть некоторые накладные расходы. Вы можете увидеть, что все использует хранилище, используя команду nvs_get_stats (), описанную на этой странице:

Библиотека ESP32 NVS

Вы можете поэкспериментировать, удалив раздел, затем запустив цикл, который добавляет запись, а затем вызывает процедуру nvs_get_stats ().

...