标准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
会将那部分内存分配到RAM中(即使您只需要写入一个字节!),并且size
必须介于0
和4096
之间。 ESP8266 EEPROM.cpp L54-L65,spi_flash_geometry.h。
如果我理解正确,ESP8266没有内置闪存。 ESP-12E模块具有一个外部4 MiB闪存(512 KiB)。 https://en.wikipedia.org/wiki/ESP8266
因此,ESP8266 EEPROM库仅允许仅使用前4KiB闪存数据。为什么是这样?如何使用ESP-12模块的其余512 KiB?或者如何使用标准的Arduino EEPROM库?
答案 0 :(得分:0)
闪存(外部)is used for program and data。在较大的闪存中,为程序保留了两个存储区以启用OTA上载。在数据部分中,闪存可以包含a file system。 emulated EEPROM的大小被限制为适合文件系统和SDK设置之间的闪存。