ESP EEPROM and SPIFFS
在ESP8266上,两者之间几乎没有选择。这一切实际上归结为您要存储的内容以及您最好如何访问它的方式。
EEPROM仿真非常适合于少量数据-配置值之类的事情。您只想在其中存储一些很少更改的值。
尽管SPIFFS更适合处理大量数据。由于它是一个文件系统,因此可以存储实际文件,这使其非常适合为网页提供图像和静态数据。
可以从您选择的文件在PC上构建SPIFFS文件系统,然后使用mkspiffs和esptool.py或可以安装到Arduino IDE的SPIFFS工具通过串行方式上传。这意味着文件非常容易更新。
尽管SPIFFS在写入数据方面不是很好-实验表明,经常写入会变得很慢。EEPROM不会遭受此类问题的困扰,但是您无法向EEPROM中写入尽可能多的数据到SPIFFS。
所以这就是全部。两者都不比“更好”,但是每种都更适合于不同的工作方式或不同的数据样式。
我还将添加一些其他内容:
SPIFFS的行为类似于String或Serial对象-因此您可以执行println()或任何其他所需的操作,然后将其读回/解析。还有一个数字级访问,也可以让您直接读取或写入内存结构。它是磨损均衡的,它非常适合需要多个独立配置或大量(可搜索!)数据的情况。
您还可以从Web服务器上载文件(或下载文件),并且大多数支持写入字符串的内容也可以使用文件(YMMV)。
EEPROM在该系统上不是均衡的(除非您专门下载了一个第三方库来这样做),并且使用一个闪存扇区。对其进行过多写入将导致该扇区失败(大约10,000-100,000次,因此很多)。您还受扇区大小的限制,因此可以存储的最大数据大小为4096字节。
此外,EEPROM像阵列一样被写入。您所有的数据最终都存储在此数组中,并且您必须跟踪每个块的位置以及块的大小(可能跨多个库,文件或函数)。更糟糕的是,您无法确定自上次保存以来是否更改过格式(重新上传了代码或其他内容),因此您实际上应该有一个校验和或其他内容。
TL; DR:SPIFFS较大(可存储容量和访问代码方面),且耗损均衡。它具有许多便利功能,可让您编写或编写复杂的数据。
EEPROM很小,并且对它在失败之前可以提交的次数有一定的限制(不利于数据记录和填充)。充其量您可以向其写入内存块。

浙公网安备 33010602011771号