我对 ESP32 微控制器的生产工作还相当陌生,我希望从那些去过几次的人那里了解一些背景信息和细微差别。所以这个问题更多的是关于这类事情,而不是“我如何编码 X”之类的问题。
我当前的项目有很多数据存储需求。
我熟悉在“blob”中存储数据,并且熟悉使用协议缓冲区对数据进行编码/解码。
因此,考虑到所有这些,我试图了解 ESP32 上的各种存储选项之间的差异以及何时使用每个选项。
哪些用例让您选择其中一个而不是另一个?
Tar*_*rmo 14
ESP32 上没有 EEPROM,只有闪存。
NVS是一个简单的非易失性键值存储,具有不同的数据类型(8-64 位整数、字符串、blob)。它使用起来相当方便,具有磨损均衡功能并支持闪存加密(尽管有点麻烦)。我会用它来存储工厂设置和其他相当小的东西(字符串有 4000 字节的限制,blob 有 508,000 字节的限制)。如果设备需要经常写入,您可能需要创建一个单独的、专用的、只读的 NVS 分区来存储设备属性(串行、硬件信息),以便保证在写入过程中不会因电源故障而损坏。
ESP IDF 支持 SPIFFS 和 FAT 文件系统。
SPIFFS重量轻,并且在磨损均衡和可靠性方面要好得多。我会用它来存储任何更大的文件。不幸的是,它不支持闪存加密。
胖的文件系统可能是最糟糕的选择,因为它本身并不适合闪存,也不可靠。乐鑫在 FAT 和闪存之间构建了某种层来适应磨损均衡。FAT 唯一的关键优势是它支持闪存加密。
不幸的是,还有我没有使用过的第三方选项。
与往常一样,请考虑写入将在闪存中导致的页面擦除次数 - 这可以让您估计在达到芯片寿命之前可以写入多少次。
| 归档时间: |
|
| 查看次数: |
6043 次 |
| 最近记录: |