我正在使用在 ESP 自己实现之前制作的 spiffs 的旧 loboris 实现,我们正在从 3.X 更新到 IDF 4.X / 5.X,并希望删除这种依赖性。这为我们提供了更多的分区控制和损坏恢复功能。在此过程中,我发现 SPIFFS 配置也有很多低效之处,可以更改。
问题是,默认的 loboris 配置使逻辑块大小为 8192,而 ESP 实现似乎通过默认 SPI 块大小将其硬编码为 4092。经过大量调查,我没有看到使用最新的 esp_spiffs.c 文件从已部署的单元挂载/读取旧分区的“简单”方法。我在想我可以将旧实现与新实现一起保留,以读取旧数据,将其存储在 ram/flash 中,将旧 spiffs 分区格式化为新格式,然后将其保存回来。我将不得不担心沿途的错误捕获和处理过程中的断电。似乎有很多我想避免的工作,主要是在双 spiffs 实现方面。
现在我修改了 esp_spiffs.c 以硬编码 8192 块大小并且它有效但我想保留源代码。这也意味着我无法将新分区格式化为新的 4096 块大小,但我可能可以进一步修改 esp_spiffs.c。为此有更好的方法吗?