ESP8266 Arduino EEPROM只能使用前4KiB闪存数据吗?

时间:2018-11-29 23:59:13

标签: arduino esp8266

标准arduino EEPROM.write(address, value)在ESP8266上有点不同。您需要指定“扇区”的大小并提交。 ESP8266 EEPROM

EEPROM.begin(size);
EEPROM.write(addr, val);
EEPROM.commit();

addr必须介于0size之间。 ESP8266 EEPROM.cpp L100-L101

EEPROM.begin会将那部分内存分配到RAM中(即使您只需要写入一个字节!),并且size必须介于04096之间。 ESP8266 EEPROM.cpp L54-L65spi_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库?

1 个答案:

答案 0 :(得分:0)

闪存(外部)is used for program and data。在较大的闪存中,为程序保留了两个存储区以启用OTA上载。在数据部分中,闪存可以包含a file systememulated EEPROM的大小被限制为适合文件系统和SDK设置之间的闪存。

“ ESP8266 SDK入门指南”中的图片: enter image description here