Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.81/27: Рейтинг темы: голосов - 27, средняя оценка - 4.81
DySprozym
0 / 0 / 0
Регистрация: 20.05.2016
Сообщений: 23
1

Защита от потери информации

31.08.2016, 19:17. Просмотров 4954. Ответов 23
Метки нет (Все метки)

Мои мысли:

Есть STM32, у него есть флеш-память (кто бы мог подумать!). Туда можно писать.

И вот положим у нас есть страница с важной инфой, решили туда дописать 1 байт.

Для этого считали страницу в буфер, удалили ее, в буфер добавили нужный байт и начали этот буфер заново записывать на флеш. В это время отрубилось питание — данные потеряны, грусть-печаль.

Решение "в лоб":
1) Выделяем под хранение 3 страницы (в конце флеша, разумеется, чтобы не потереть прошивку)
1.1) 1-я страница под сами данные (оттуда будем читать при необходимости)
1.2) 2-я страница — backup первой страницы
1.3) 3-я страница — флаг (по умолчанию там "0")

Теперь процесс записи:

1) Читаем 1-ю страницу в буфер
2) На 3й странице выставляем "1" (т.е. "начинаем бекап")
3) Записываем буфер во вторую страницу (которая резервная)
4) на 3й странице выставляем "2" (т.е. "бекап завершен")
5) Добавляем нужные данные к буферу и записываем полученный буфер на первую страницу
6) на 3й странице выставляем "0" (т.е. "запись успешна")
7) Profit!

Как работает: При запуске программы проверяем флаг на 3-й странице:

1) Если там "0", то ошибок никаких не было. Результат: данные актуальные
2) Если там "1", то питание вырубилось во время бекапа. Результат: нужно заново сделать бекап 1-й страницы, данные не актуальны (но не потеряны!)
3) Если там "2", то питание вырубилось во время записи на 1ю страницу. Результат: на первой странице скорее всего мусор, нужно восстановить ее из бекапа (скопировать страницу 2 на страницу 1). Динные не актуальны, потеряны, но возможно восстановить последнюю копию.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.08.2016, 19:17
Ответы с готовыми решениями:

Разделение жесткого диска без потери информации
купил ноут с виндовс 7 хоум базик 64битка. и столкнулся с проблемой , винда стоит заводская и мне...

Объединение 2х разделов одного HDD без потери информации
Это возможно?

Как правильно обновить Opera 10 53 без потери всей информации на ней?
Подскажите как правильно обновить Opera 10 53 я у меня без потери всей информации на ней, чтобы...

защита информации
всем доброго дня! вот допустим задача: сделать склад конфиденциальной информации, которую бы...

Защита информации
Здравствуйте, помогите, пожалуйста, разобраться... У меня на Windows 8 установлен локальный сервер...

23
itysiy
0 / 0 / 0
Регистрация: 18.01.2012
Сообщений: 1,418
10.10.2016, 15:51 21
Цитата Сообщение от MostirOtyxiy
Запись же - это установка нужных битов в "0", и происходит побайтно!
Я бы даже сказал - побитово. В записанном байте можно еще дополнительно стереть оставшиеся единицы в нули. Пока единицы не кончатся
0
Ymk
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,233
10.10.2016, 16:47 22
Цитата Сообщение от itysiy
Я бы даже сказал - побитово. В записанном байте можно еще дополнительно стереть оставшиеся единицы в нули.
да вроде как не везде.
0
x893
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 886
10.10.2016, 17:39 23
http://www.st.com/content/ccc/resource/ ... 165693.pdf
0
Sthuthu
0 / 0 / 0
Регистрация: 10.04.2014
Сообщений: 879
10.10.2016, 19:49 24
А если как тут описано? Метод мажоритарного резервирования
Программируется легко
0
10.10.2016, 19:49
10.10.2016, 19:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2016, 19:49

Защита информации
Всем добрый вечер! Создал базу и встал вопрос о защите информации. Внутри сделал админку с...

Защита информации
Перебросьте, пожалуйста, в нужную тему. У меня такая задача. Многопользовательская база(...

защита информации
Каким образом подключить внешний криптопровайдер к лотусу?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru