如何在具有 256KB 擦除扇区的闪存芯片上使用文件系统

How to use a file system on a flash chip with 256KB erase sectors

有人要求我帮助一个嵌入式固件项目,他们试图在一个 256KB(千字节)擦除扇区大小的 SPI 闪存芯片 (Cypress S25FL512S) 上安装一个文件系统。

我过去使用文件系统的经验是,文件系统的块大小高达 4Kbytes,映射到 512bytes 到 4Kbytes 的擦除扇区

嵌入式控制器是一个小型 NXP 设备 运行,频率为 180MHz,RAM 为 512KBytes,所以我什至无法缓存擦除扇区。我注意到该芯片系列确实有具有较小擦除扇区的引脚兼容设备。

我的一般问题是如何挂载 block/cluster 大小小于闪存擦除扇区大小的文件系统?我找不到任何解决此问题的文章。

你不能以任何明智的方式做到这一点。您的规范需要修改。

可能的解决方案是:

  • 选择擦除大小较小的flash/eeprom电路。
  • 选一个flash/eeprom内存更大的多段,这样可以在编程的时候备份一个段的数据。
  • 添加第二个闪存电路以反映第一个电路,一次擦除一个并用另一个的内容覆盖。
  • 选择具有更多 RAM 的 MCU。
  • 备份 MCU 闪存内的闪存(非常慢,可能违背了开始使用外部闪存的目的)。