我正在研究一种使用NAND闪存进行存储的嵌入式应用程序。 现在看来,我们不会使用Linux或任何其他RTOS。应用程序必须处理意外断电。
我们一直在研究不同的文件系统解决方案,包括YAFFS2,JFFS2,FAT + FTL以及HCC Embedded的解决方案。
我听说FAT + FTL是正常的选择,但我担心在出现意外断电和性能的情况下会丢失数据。如果有人能分享关于这个的见解和经验,将不胜感激
答案 0 :(得分:8)
FAT-FTL是“正常选择”,但不一定是个不错的选择。 YAFFS2比JFFS2更新,对于大型NAND来说似乎更快,更具可扩展性。 This presentation of the "Embedded Linux Conference Europe"比较了这两个和其他Flash文件系统。
另一种解决方案是LogFS(注意:log代表logorithmic,而不是log-structured)。它也应该更具可扩展性,但我不知道它有多变。
答案 1 :(得分:7)
有UBIFS。我所知道的唯一实现是在Linux内核中,它取决于Linux内核的UBI接口。但是,基本算法应该可以在您使用的任何环境中实现而不会有太多麻烦。至于生产准备,诺基亚在他们的N900智能手机中使用UBIFS,而基于SheevaPlug的插电脑也支持它。我发现Linux实现是可靠的,即使是在随机重置自身的片状硬件上也是如此。与JFFS2不同,UBIFS不需要在启动时读取整个文件系统。
你可能想重新考虑你的“没有Linux”的决定,因为使用Linux会使使用UBIFS变得更容易。
答案 2 :(得分:2)
有一个名为DataLight的商业供应商提供了强大的Flash文件系统,但当然它不是免费的。
他们在表演上有一个有趣的white paper (PDF)(带着一点点盐)。