Официальный сайт компании Arduino по адресу arduino.cc
EEPROM хранение, использование, восстановление данных
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Чт, 16/03/2017 - 08:55
Добрый день уважаемые!
Задача хранить данные в EEPROM c проверкой целостности и возможностью восстановления.
Кто и как решает применительно к ардуино nano?
Что-то у меня проще, чем тройная избыточность не получается.
На дискетах всё было просто, пишем посекторно, делаем XOR для двух секторов и пишем в третий, а здесь как?
поделите ееепром на три сектора.
реализация crc32 для ардуины есть в сети.
да мне нужно то от силы байт 8, но железобетонных, хотелось бы попроще решить
Нашёл такой код, вопрос как его применить и не убъёт ли он всю динамическую память?
в институте еще писал программу для расчета надежности передачи данных с помощью https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%B4_%D0%A0%D0%B8%D0%B4%D0%B0_%E2%80%94_%D0%A1%D0%BE%D0%BB%D0%BE%D0%BC%D0%BE%D0%BD%D0%B0 доволно неплохие результаты показывало даже на таблице 4Х4 бйта и три проверочных.
при одинарной ошибке в любом месте матрицы исравление 100%, при двойной 97%, при тройной 89%, дальше не помню, т.е. если считать грубо на нужные тебе 2 байта, надо хранить еще пять проверочных, остальное чистая математика.
Нашёл такой код, вопрос как его применить и не убъёт ли он всю динамическую память?
Не нужно убивать динамическую память, она хорошая. Делаете что-то вроде такого
И считаете, считаете... CRC-16 для 8 байт излишне, CRC-8 вполне хватит.
в институте еще писал программу для расчета надежности передачи данных с помощью https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%B4_%D0%A0%D0%B8%D0%B4%D0%B0_%E2%80%94_%D0%A1%D0%BE%D0%BB%D0%BE%D0%BC%D0%BE%D0%BD%D0%B0 доволно неплохие результаты показывало даже на таблице 4Х4 бйта и три проверочных.
при одинарной ошибке в любом месте матрицы исравление 100%, при двойной 97%, при тройной 89%, дальше не помню, т.е. если считать грубо на нужные тебе 2 байта, надо хранить еще пять проверочных, остальное чистая математика.
а я думал уже так сделать: D1, D2, XOR_D1_D2,XOR_D1_A5,XOR_D2_A5
Получается 3 байта если 5 то дополнить XOR_D1_F6,XOR_D2_F6
Это уже 10 кратный запас по надёжности, вопрос только как раскидывать по памяти? чтобы RAS-CAS не пересекались
ты же говоришь, что всего надо 8 байт+проверочные, если больше ничего хранить не надо, делим остаток памяти на это количество байтов и в цикле переписываем на знакомые нам адреса, т.е дублируем на новое место- это еще один плюс к надежности.
При такой избыточности хотелось бы иметь решение 100% восстановления исходных данных, я об этом, может быть я недооцениваю надёжность EEPROM )))
прицепи флешку и, еще туда, тогда периодически пиши :)
еще вай-фай модуль и на сервер данные слать, сервер на платном облаке, а оттуда комп забирает и на два жестких в зеркале диска пишет.во как!:))))))
А сбоку товарища майора посадить с журналом регистрации.
еще вай-фай модуль и на сервер данные слать, сервер на платном облаке, а оттуда комп забирает и на два жестких в зеркале диска пишет.во как!:))))))
та это всё есть, только не зеркало а раид 6 с хотфиксом )))
мне бы с EEPROM разобраться
Создаётся впечатление, что никто и никак не решает, вечный русский авось )))