ESP8266(ESP01)模块具有1 MBit(约128 KB)的闪存。那么,为什么EEPROM.begin(SIZE)允许最大4096大小?

时间:2018-08-08 12:28:09

标签: flash arduino esp8266 arduino-esp8266

我正在使用带1 MBit闪存的ESP8266(ESP01)模块。我想将大量数据存储到该闪存中。

从我的角度来看

1 MB的Flash => 1048576位=> 131072字节(约128 KB)

但是当我开始研究EEPROM.begin(SIZE)函数时,我意识到,最大可以传递4096的值作为SIZE。参见下面的代码。 SPI_FLASH_SEC_SIZE是值为4096的宏。

if (size > SPI_FLASH_SEC_SIZE)
    size = SPI_FLASH_SEC_SIZE;

现在我的问题是如何访问剩余的内存。还是在计算Flash记忆空间时出错?

1 个答案:

答案 0 :(得分:2)

SPI_FLASH_SEC_SIZE设置为4096,因为这是扇区大小。这并不表示闪存芯片本身的大小。这里有一个草图,显示如何获取闪存大小以及将IDE上的闪存大小设置为什么,以确保IDE设置与芯片上的大小匹配。 https://github.com/esp8266/Arduino/blob/master/libraries/esp8266/examples/CheckFlashConfig/CheckFlashConfig.ino