Стандартное Arduino EEPROM.write(address, value)
немного отличается от ESP8266.Вам нужно указать размер "сектора" и зафиксировать. ESP8266 EEPROM
EEPROM.begin(size);
EEPROM.write(addr, val);
EEPROM.commit();
addr
должно быть между 0
и size
. ESP8266 EEPROM.cpp L100-L101 .
EEPROM.begin
выделяет этот объем памяти в ОЗУ (даже если вам нужно записать только один байт!), А size
должно находиться между0
и 4096
. ESP8266 EEPROM.cpp L54-L65 , spi_flash_geometry.h .
Если я правильно понимаю, ESP8266 не имеет внутренней флэш-памяти.Модуль ESP-12E имеет внешнюю вспышку 4 МБ (512 КБ).https://en.wikipedia.org/wiki/ESP8266
Итак, библиотека ESP8266 ESPROM позволяет использовать только первые 4 КБ флэш-данные.Почему это?Как я могу использовать оставшиеся 512 КиБ модуля ESP-12?Или как мне использовать стандартную библиотеку Arduino EEPROM?