Я працюю на пристрої, який використовує бібліотеку Microchip MDDFS для зберігання даних на SD-карту. Журнал записує дані з максимальною швидкістю 1 запис (56 байт) щохвилини. Проблема полягає в тому, що пристрій може втратити живлення в будь-який час, потенційно посеред послідовності запису. Мені цікаво, який найкращий спосіб захистити мої дані від корупції. Я виявив, що якщо файл відкритий при втраті живлення, всі дані, записані у файл після останнього закриття файлу, втрачаються. Я не знаю, чи те ж саме справедливо, якщо втрачається потужність в середині послідовності запису.
Оскільки процедура запису не трапляється дуже часто, я можу відкривати файл, записувати дані та закривати файл, кожного разу, коли дані реєструються. Чи з часом такий підхід пошкодить sd-карту?
Ще один підхід може тримати файл відкритим, але після кожні 10 або 50 записів я міг би закрити файл, а потім повторно відкрити його.
Я також міг буферувати дані в пам'яті, а потім час від часу обробляти їх, можливо, після кбайт або близько того.
Остання ідея, що в мене була, я міг додати великий конденсатор, який би забезпечував живлення моєї карти карти / sd досить довго після відключення живлення, щоб швидко закрити файл. Проблема такого підходу полягає в тому, що час, необхідний для закриття файлу та / або збереження даних, є дуже непослідовним. Наскільки я розумію, цей час може дуже залежно від поточного місця у флеш-сторінці, на якій знаходиться файл.
У будь-якому випадку, що б ви запропонували?