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

 
 
> А кто как организует в своих программах контроль завершённости, транзакции обновления базы данных
Дон Амброзио
сообщение 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
Ответов
Непомнящий Евген...
сообщение Mar 27 2008, 14:58
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Вот тут:
Цитата
Если при этом произошла ошибка - то при последующем чтении CRC пакета будет неверное и система будет считать, что тут "пусто"; данные будут прочитаны из последнего актуального пакета.
Go to the top of the page
 
+Quote Post
galjoen
сообщение Mar 27 2008, 17:45
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Пользую примерно такой-же способ как 'Непомнящий Евгений'. Только у меня не "флаг актуальности", а счётчик (2 байта). У кого он больше, тот пакет и последний. Ещё по теме хочу сказать, что длина пакета в EEPROM д.б. кратна 8 и начинаться он должен с адреса кратного 8. Я к такому выводу пришёл, когда у меня 8 байт в EEPROM объFFились. Видимо в EEPROM всё таки какие-то блоки 8 байтные имеются.
Go to the top of the page
 
+Quote Post
Kirill Frolov
сообщение Mar 28 2008, 19:56
Сообщение #4


Частый гость
**

Группа: Новичок
Сообщений: 111
Регистрация: 10-02-07
Из: St.Petersburg, Russia
Пользователь №: 25 241



Цитата(galjoen @ Mar 27 2008, 20:45) *
Пользую примерно такой-же способ как 'Непомнящий Евгений'. Только у меня не "флаг актуальности", а счётчик (2 байта). У кого он больше, тот пакет и последний. Ещё по теме хочу сказать, что длина пакета в EEPROM д.б. кратна 8 и начинаться он должен с адреса кратного 8. Я к такому выводу пришёл, когда у меня 8 байт в EEPROM объFFились. Видимо в EEPROM всё таки какие-то блоки 8 байтные имеются.


У меня тоже счётчик. Надо сказать с ним есть непределённость определённая... Вобщем или кодов для счёта будет БОЛЬШЕ числа страниц flash для перезаписи. Или нельзя сказать чётко какая последняя. С битом -- это по-моему бред. Как там последнюю найти? Только если не удалять сразу неактуальные записи. Я вот не удаляю, стираю только при записи. А дописываю как есть по кругу (есть пул flash-страниц для циклической перезаписи). Да, когда у меня было всего 2 страницы в другом приборе, там было 2 БИТА. Ибо по 1 биту нифига непонятно кто последний в таком случае. А так есть серия номеров последовательно с разрывом (зацикленность опускаем), соответственно тот что перед разрывом -- последний. Поэтому номеров и БОЛЬШЕ должно быть чем страниц.

Да, про неопределённость. Это когда разрывов в нумерации больше одного. Тут хоть по rand() выбирай нужный блок...

Сообщение отредактировал Kirill Frolov - Mar 28 2008, 20:07


--------------------
[ZX]
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
|- - Дон Амброзио   Цитата(galjoen @ Mar 27 2008, 20:45) Види...   Mar 27 2008, 23:28
||- - Дон Амброзио   Вот я думаю, что для возможности восстановления по...   Mar 28 2008, 03:15
|- - Непомнящий Евгений   Цитата(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, 14:13
- - Дон Амброзио   Цитата(oran-be @ Mar 30 2008, 18:13)...   Mar 30 2008, 14:32


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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 03:16
Рейтинг@Mail.ru


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