реклама на сайте
подробности

 
 
> А кто как организует в своих программах контроль завершённости, транзакции обновления базы данных
Дон Амброзио
сообщение Mar 27 2008, 13:03
Сообщение #1


Местный
***

Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947



А кто как организует в своих программах контроль завершённости транзакции обновления базы данных во внутренней EEPROM или во внутренней FLASH микроконтроллеров ATmega? И кто как реализует откат назад в случае если обнаруживается, что предыдущая транзакция была прервана(не завершена)..А?


--------------------
После устранения бага в программе она стала работать....хуже
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
oran-be
сообщение Mar 30 2008, 14:13
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 234
Регистрация: 30-03-07
Из: Одесса
Пользователь №: 26 621



А я делаю очень просто - при закатывании данных к ней пришивается поле с подписью. В этом поле хранится информация о версии и СРС32 всего блока данных - на всякий случай но, если честно, то пользоватся ей еще не пользовался. Это блок хранится в определенном месте.
Смеда данных происходит по следующему алгоритму.
1. Отправляется команда о смене данных. Контроллер на нее затирает заголовок текущих данных.
2. отправляются данные пакетами ( у меня по 128 байт - не хотелось использовать двухбайтный счетчик) При получении 4 пакетов образуется консенсус страницы и контроллер пишет ее и заодно верифицирует ( я еще заодно проверяю на идентичность - а вдруг ее не надо писать).
3. После успешной верификации отправляется новая подпись, которую контроллер пишет на известное место.
В случае облома в любом месте будет известно, что типа данных во флеше нет, либо они не валидны..
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Дон Амброзио   А кто как организует в своих программах контроль завершённости   Mar 27 2008, 13:03
- - Aesthete Animus   Что-то я плохо понял суть вопроса, не похоже, что ...   Mar 27 2008, 13:52
|- - Дон Амброзио   Цитата(Aesthete Animus @ Mar 27 2008, 16...   Mar 27 2008, 14:02
- - Непомнящий Евгений   В епром использую следующий механизм: Группа парам...   Mar 27 2008, 14:12
|- - Дон Амброзио   Цитата(Непомнящий Евгений @ Mar 27 2008, 17...   Mar 27 2008, 14:16
- - Непомнящий Евгений   Вот тут: ЦитатаЕсли при этом произошла ошибка - то...   Mar 27 2008, 14:58
|- - galjoen   Пользую примерно такой-же способ как 'Непомнящ...   Mar 27 2008, 17:45
|- - Дон Амброзио   Цитата(galjoen @ Mar 27 2008, 20:45) Види...   Mar 27 2008, 23:28
||- - Дон Амброзио   Вот я думаю, что для возможности восстановления по...   Mar 28 2008, 03:15
|- - Kirill Frolov   Цитата(galjoen @ Mar 27 2008, 20:45) Поль...   Mar 28 2008, 19:56
|- - Непомнящий Евгений   Цитата(Kirill Frolov @ Mar 28 2008, 22:56...   Mar 29 2008, 08:47
|- - Kirill Frolov   Цитата(Непомнящий Евгений @ Mar 29 2008, 11...   Mar 29 2008, 10:06
|- - Непомнящий Евгений   Цитата(Kirill Frolov @ Mar 29 2008, 13:06...   Mar 29 2008, 12:49
- - Непомнящий Евгений   Цитата(galjoen @ Mar 27 2008, 20:45) Толь...   Mar 28 2008, 05:17
- - blackbit   Не поверите - одним битом. Черным. Сколько не пыт...   Mar 28 2008, 06:06
|- - Дон Амброзио   Цитата(blackbit @ Mar 28 2008, 09:06) Не ...   Mar 28 2008, 06:28
- - Igor26   Цитата50% (слетит или не слетит).. Т.е. как у той ...   Mar 28 2008, 08:31
|- - Дон Амброзио   Цитата(Igor26 @ Mar 28 2008, 12:31) Затем...   Mar 30 2008, 14:00
|- - Непомнящий Евгений   Цитата(Дон Амброзио @ Mar 30 2008, 17:00)...   Mar 31 2008, 04:28
|- - Дон Амброзио   Цитата(Непомнящий Евгений @ Mar 31 2008, 07...   Mar 31 2008, 05:06
- - _Pasha   Чистая эмпирика: 1. Блоки данных с CRC16 в конце п...   Mar 29 2008, 10:17
- - Дон Амброзио   Цитата(oran-be @ Mar 30 2008, 18:13)...   Mar 30 2008, 14:32


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 23:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.07414 секунд с 7
ELECTRONIX ©2004-2016