Pracuję na urządzeniu, które korzysta z biblioteki Microchip MDDFS do przechowywania danych na karcie SD. Rejestrator rejestruje dane z maksymalną szybkością 1 wpisu (56 bajtów) co minutę. Problem polega na tym, że urządzenie może stracić moc w dowolnym momencie, potencjalnie w środku sekwencji zapisu. Zastanawiam się, jaki jest najlepszy sposób ochrony moich danych przed korupcją. Odkryłem, że jeśli plik jest otwarty po utracie zasilania, wszystkie dane, które zostały zapisane w pliku po ostatnim zamknięciu pliku, są tracone. Nie wiem, czy to samo odnosi się do utraty mocy w środku sekwencji zapisu.
Ponieważ procedura zapisu nie zdarza się zbyt często, mogłem otworzyć plik, zapisać dane, a następnie zamknąć plik za każdym razem, gdy dane są rejestrowane. Czy takie podejście z czasem uszkodzi kartę SD?
Innym podejściem może być pozostawienie pliku otwartego, ale po każdych 10 lub 50 zapisach mógłbym zamknąć plik, a następnie ponownie go otworzyć.
Mógłbym również buforować dane w pamięci, a następnie od czasu do czasu opróżniać dane, może po kbajtach.
Ostatnim pomysłem było to, że w moim obwodzie mogłem dodać duży kondensator, który zapewniłby zasilanie mojej karcie pic / sd wystarczająco długo po odłączeniu zasilania, aby szybko zamknąć plik. Problem z tym podejściem polega na tym, że czas potrzebny do zamknięcia pliku i / lub zapisania danych jest bardzo niespójny. Z mojego zrozumienia, tym razem może być bardzo zależne od bieżącego miejsca na flashowej stronie, w której znajduje się plik.
W każdym razie, co byście zaproponowali?