我正在使用Microchip MDDFS库将数据存储到SD卡的设备上工作。记录器将以每分钟1个条目(56字节)的最大速率记录数据。问题在于设备可能随时会断电,可能在写序列的中间。我想知道什么是保护我的数据免遭损坏的最佳方法。我发现,如果在断电时打开文件,则上次关闭文件后写入文件的所有数据都会丢失。我不知道如果在写入序列中途断电,是否同样适用。
由于写入过程并不经常发生,因此每次记录数据时,我都可以打开文件,写入数据然后关闭文件。这种方法会随着时间的推移损坏SD卡吗?
另一种方法是保持文件打开,但是每写入10或50次后,我可以关闭文件,然后重新打开它。
我还可以将数据缓冲在内存中,然后偶尔刷新数据(大约在一KB后)。
我的最后一个想法是,在电路中,我可以添加一个大电容器,以在断开电源后足够长的时间为我的pic / sd卡供电,以快速关闭文件。这种方法的问题在于,关闭文件和/或保存数据所花费的时间非常不一致。据我了解,这次的时间很大程度上取决于文件所在的Flash页面中的当前位置。
无论如何,你们会建议什么?