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

 
 
> Запись в EEPROM с протоколом
Oleg_DI
сообщение Apr 23 2011, 17:18
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 15-10-07
Из: г.Екатеринбург
Пользователь №: 31 379



Помогите советом кто как записывает EEPROM с протоколом . признак начала пакета кол байт контрольная сумма.
я переделал протокол wake под запись EEPROM но там много лишнего.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zombi
сообщение May 20 2011, 16:09
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



В моих устройствах много данных которые необходимо хранить. Использую NVRAM.
Данные разбиты на группы (состояние,события,настройки и.д.).
Размер некоторых групп более 2-х Kб и вероятность выключения питания во время их записи довольно высока.
Если это произошло то необходимо вернуть предыдущие значения (откат).


Я делаю так:
В памяти присутствуют две копии каждой группы (пусть будет 'A' и 'B').
Каждая группа имеет следующюю структуру :

N байт - данные
1 байт - F флаг достоверности(True/False).
4 байта - CRC32 (от начала данных по F включительно)

Основная программа меняет поля данных только блока 'A' и при необходимости вызывает процедуру записи.
Процедура записи:
1. F=true в 'A'
2. подсчет и сохранение CRC в 'A'
3. полное копирование 'A' -> 'B'
4. F=false в 'A'
5. Выход

При включении вызывается процедура проверки.
Процедура проверки:
Если (F и CRC) в 'A' = true то вызывается процедура записи и выход.
Иначе
Если (F и CRC) в 'B' = true то копируем только поле данных из 'B' в 'A' , процедура записи и выход.
Иначе
Сообщаем главной программе что восстановление не удалось (т.е. Гаплык) и выход.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Oleg_DI   Запись в EEPROM с протоколом   Apr 23 2011, 17:18
- - rezident   А зачем при записи в EEPOM нужен еще какой-то свой...   Apr 23 2011, 17:45
|- - Oleg_DI   Цитата(rezident @ Apr 23 2011, 23:45) А з...   Apr 23 2011, 18:10
|- - hd44780   Цитата(Oleg_DI @ Apr 23 2011, 21:10) Где ...   Apr 23 2011, 18:16
|- - rezident   Цитата(Oleg_DI @ Apr 24 2011, 00:10) нет ...   Apr 23 2011, 18:23
|- - Oleg_DI   Цитата(rezident @ Apr 24 2011, 00:23) Т.е...   Apr 23 2011, 18:35
- - Integral   При чтении определить верны ли данные можно 2 спос...   May 3 2011, 22:41
|- - aaarrr   Цитата(Integral @ May 4 2011, 02:41) само...   May 3 2011, 23:27
|- - singlskv   Цитата(Integral @ May 4 2011, 02:41) само...   May 4 2011, 08:52
- - Integral   елементарно ватсон... запись в еепром идет долго, ...   May 4 2011, 00:13
|- - aaarrr   Цитата(Integral @ May 4 2011, 04:13) ...е...   May 4 2011, 01:05
|- - 777777   Цитата(Integral @ May 4 2011, 04:13) елем...   May 5 2011, 09:31
- - Integral   ну вот отключил прерывание и что угодно случится т...   May 4 2011, 01:24
|- - xemul   Цитата(Integral @ May 4 2011, 05:24) поет...   May 4 2011, 08:10
|- - Oleg_DI   Цитата(Integral @ May 4 2011, 07:24) ну в...   May 4 2011, 08:11
|- - defunct   Цитата(Integral @ May 4 2011, 04:24) поет...   May 20 2011, 11:33
- - Integral   Цитата(singlskv @ May 4 2011, 11:52) Нда....   May 4 2011, 15:49
|- - aaarrr   Цитата(Integral @ May 4 2011, 19:49) каро...   May 4 2011, 16:01
||- - ILYAUL   Цитата(aaarrr @ May 4 2011, 20:01) Если д...   May 4 2011, 17:48
|- - singlskv   Цитата(Integral @ May 4 2011, 19:49) ...[...   May 4 2011, 16:08
||- - singlskv   Цитата(singlskv @ May 4 2011, 20:08) [CEN...   May 4 2011, 18:01
||- - IgorKossak   Цитата(singlskv @ May 4 2011, 21:01) Уваж...   May 5 2011, 07:19
|- - mdmitry   Цитата(Integral @ May 4 2011, 19:49) .......   May 4 2011, 18:46
|- - Marian   Цитата(Integral @ May 4 2011, 18:49) каро...   May 4 2011, 19:42
- - Oleg_DI   Я начал тему о другом запись с протоколом в память...   May 5 2011, 08:02
- - Oleg_DI   не получается у нас вернутся к основной теме.Значи...   May 5 2011, 09:54
|- - swisst   Цитата(Oleg_DI @ May 5 2011, 12:54) не по...   May 5 2011, 10:06
|- - ILYAUL   Цитата(Oleg_DI @ May 5 2011, 13:54) не по...   May 5 2011, 10:08
- - GDI   А Вы опишите задачу, а то так можно гадать бесконе...   May 5 2011, 10:18
- - Oleg_DI   В любом моём приборе требуется сохранение настроек...   May 5 2011, 10:53
|- - ILYAUL   Цитата(Oleg_DI @ May 5 2011, 14:53) В люб...   May 5 2011, 15:49
|- - defunct   Цитата(Oleg_DI @ May 5 2011, 13:53) В люб...   May 20 2011, 13:17
- - GDI   Настройки записываются в одно и то же место или Вы...   May 5 2011, 10:59
|- - Oleg_DI   Цитата(GDI @ May 5 2011, 16:59) Настройки...   May 5 2011, 11:02
- - GDI   Я бы сделал несколько массивов по определенным адр...   May 5 2011, 11:34
- - mdmitry   Можно сделать так: структура данных известной длин...   May 5 2011, 13:07
- - GDI   Ресурс записи у ЕЕПРОМ составляет, как минимум, 10...   May 5 2011, 13:35
- - sergeeff   А не подумать ли над применением кодов, исправляющ...   May 5 2011, 14:20
- - Oleg_DI   Спасибо!Идеи Уважаемых ILYAUL и GDI очень понр...   May 6 2011, 07:01
|- - GDI   Цитата(Oleg_DI @ May 6 2011, 11:01) Эти д...   May 6 2011, 07:11
- - 501-q   CRC -- это надёжно. Но если CRC защищает большую ...   May 23 2011, 04:17
|- - ILYAUL   Цитата(501-q @ May 23 2011, 08:17) C...   May 24 2011, 06:08
- - 314   Mega8A, бытовой градусник наружной температуры с ч...   May 23 2011, 06:10
- - GDI   Скорее всего, это у Вас разводка платы сделана пло...   May 23 2011, 09:11
- - ArtemKAD   ЦитатаЗамечу, что при сильной статике были случаи,...   May 23 2011, 12:59
|- - defunct   Цитата(ArtemKAD @ May 23 2011, 15:59) С в...   May 23 2011, 15:39
- - ArtemKAD   RE: Запись в EEPROM с протоколом   May 23 2011, 16:07
- - 314   Прошу прощения, если ввел в заблуждение, но флеш с...   May 23 2011, 20:53
|- - WHALE   Цитата(314 @ May 24 2011, 00:53) Прошу пр...   May 24 2011, 07:32
- - ArtemKAD   Цитатано флеш стиралась не в бытовом термометре и ...   May 24 2011, 09:55


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

 


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


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