如何防止闪存块故障?

时间:2018-05-06 21:17:11

标签: c linux file redundancy flash-memory

我在闪存上有少量敏感数据(小于1K),我希望防止某些形式的数据丢失。最值得注意的是,我想确保数据存在的闪存块失败后数据仍然存在。

显而易见的答案是备份文件。然后我需要的是确保两个文件位于不同的块上。有没有办法做到这一点?

我最感兴趣的是在Linux上有这项工作,所以我正在寻找一个特定于Linux的解决方案,或者如果没有,那么一个特定于文件系统的解决方案也会这样做。

编辑:我也对其他防止闪存块故障的方法持开放态度。

2 个答案:

答案 0 :(得分:0)

最简单的方法是在此内存上创建额外分区并将文件放在那里。我会避免文件系统解决方案 - 大多数文件系统损坏从目录结构开始。并且不要忘记磨损水平控制器 - 你可以100%确定,你的数据是真实的。

答案 1 :(得分:0)

我能想到的最佳解决方案是在每页上放置一个写入计数器和CRC(可选),并在每次写入时增加计数器。您可以分配任意数量的页面(2-8?)。您用最低的计数器覆盖页面。如果页面写入失败(并且CRC是否失败?),则覆盖下一个最低编号的页面。

启动时,应用程序只需找到具有最高块号和完整CRC的页面,然后从那里继续操作即可。

页面应该是内存的每个扇区大小的1K的倍数。检查规格。