ESP8266 Arduino EEPROM может использовать только первые данные 4KiB флэш-памяти? - PullRequest
0 голосов
/ 30 ноября 2018

Стандартное 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?

1 Ответ

0 голосов
/ 30 ноября 2018

Флэш-память (внешняя) используется для программы и данных .На большой флэш-памяти два банка зарезервированы для программы для включения загрузки OTAВ разделе данных флэш-память может содержать файловую систему .Размер эмулируемой EEPROM ограничен для размещения на флэш-памяти между настройками файловой системы и SDK.

Изображение из "Руководства по началу работы с ESP8266 SDK": enter image description here

...