【发布时间】:2018-11-03 16:01:50
【问题描述】:
我被要求帮助一个嵌入式固件项目,他们试图在具有 256KB(千字节)擦除扇区大小的 SPI 闪存芯片 (Cypress S25FL512S) 上安装文件系统。
我过去使用文件系统的经验是,文件系统的块大小高达 4Kbytes,它映射到 512bytes 到 4Kbytes 的擦除扇区
嵌入式控制器是一个小型 NXP 设备,运行频率为 180MHz,具有 512KBytes 的 RAM,因此我什至无法缓存擦除扇区。我注意到该芯片系列确实有具有较小擦除扇区的引脚兼容设备。
我的一般问题是如何挂载块/簇大小小于闪存擦除扇区大小的文件系统?我还没有找到任何解决这个问题的文章。
【问题讨论】:
-
我同意你提到的:擦除扇区大小对于这个应用程序来说太大了——256K 相当大,4K 是典型的。此外,您的最后一段似乎是倒退的。
-
@JonathonReinhart。我已经编辑了最后一段谢谢。
-
@JonathonReinhart 4k 擦除块大小在大型存储非易失性芯片中并不典型。对于较大的存储设备,它们通常为 128KB 或 256KB。如果它更小(比如在 SD 卡上),那么里面有一个控制器,它在执行转换层并管理物理硬件,同时向接口呈现一个虚拟擦除块。
-
您找到解决方案了吗?我有同样的问题
-
@ransh 下面接受的答案证实了我的怀疑,即大型擦除扇区无法轻松容纳在小型 MCU 中以用作传统文件系统。我们希望使用闪存芯片记录事件,所以最后我们手工构建了一个简单的日志类型日志记录模块,它简单地硬分配 N 个扇区,将下一个事件条目写入日志末尾,并围绕扇区旋转擦除当前扇区已满时的下一个扇区。然后我们多次复制它以满足我们的需求。不是我最初问题的答案,而是一个足够的解决方法
标签: filesystems embedded