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

 
 
> Запись в 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
4 страниц V   1 2 3 > »   
Start new topic
Ответов (1 - 14)
rezident
сообщение Apr 23 2011, 17:45
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



А зачем при записи в EEPOM нужен еще какой-то свой протокол? cranky.gif EEPOM обычно имеет свой физический интерфейс, который и определяет временные диаграммы чтения/записи. Может вы на самом деле хотите спросить не о протоколе связи, а о способе хранения произвольных записей в EEPROM? Некоем подобии файловой системы? Тогда встречный вопрос: про связанные списки знаете?
Go to the top of the page
 
+Quote Post
Oleg_DI
сообщение Apr 23 2011, 18:10
Сообщение #3


Участник
*

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



Цитата(rezident @ Apr 23 2011, 23:45) *
А зачем при записи в EEPOM нужен еще какой-то свой протокол? cranky.gif EEPOM обычно имеет свой физический интерфейс, который и определяет временные диаграммы чтения/записи. Может вы на самом деле хотите спросить не о протоколе связи, а о способе хранения произвольных записей в EEPROM? Некоем подобии файловой системы? Тогда встречный вопрос: про связанные списки знаете?

нет не знаю.Где про них найти
Go to the top of the page
 
+Quote Post
hd44780
сообщение Apr 23 2011, 18:16
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Цитата(Oleg_DI @ Apr 23 2011, 21:10) *
Где про них найти


В гугле biggrin.gif .
1-я же ссылка -
http://ru.wikipedia.org/wiki/%D0%A1%D0%B2%...%81%D0%BE%D0%BA

Реализовывать можно как угодно и на чем угодео.
Полно примеров и на C и на др. языках.


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
rezident
сообщение Apr 23 2011, 18:23
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Oleg_DI @ Apr 24 2011, 00:10) *
нет не знаю.Где про них найти
Т.е. вы подтверждаете мою догадку о том, что вам на самом деле требуется файловая система для EEPROM?
Go to the top of the page
 
+Quote Post
Oleg_DI
сообщение Apr 23 2011, 18:35
Сообщение #6


Участник
*

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



Цитата(rezident @ Apr 24 2011, 00:23) *
Т.е. вы подтверждаете мою догадку о том, что вам на самом деле требуется файловая система для EEPROM?

Да мне требуется файловая система для EEPROM, или её подобие.Мне надо записывать массив данных одной длинны,и при чтении знать верны ли данные.Спасибо за ссылки
я нашел на си.надо осмыслить.

Сообщение отредактировал Oleg_DI - Apr 23 2011, 18:37
Go to the top of the page
 
+Quote Post
Integral
сообщение May 3 2011, 22:41
Сообщение #7


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

Группа: Участник
Сообщений: 149
Регистрация: 9-08-08
Пользователь №: 39 519



При чтении определить верны ли данные можно 2 способами (в зависимости от конкретного случая), ето проверка контрольной суммы или просто условный оператор на проверку диапазона возможных значений в цикле считывания.
Я как делал ф. обновления прошивки у меня сначало мк прошивку закодированную протоколом РЦ записывает во внешнюю еепром, потом обязательно проверка контрольной суммы, если все ок загрузчик мк сам свою прошивку всю перещивает, 500раз тестировал, при ошибках передачи данных прошивки контрольная сумма не совпадает и мк себя не перешивает... поетому я так понял вам нужно реализовать просто проверку контрольной суммы и все, нечего там городить файловые системы и т.п., хотя зависит от конкретной задачи

самое главное при записи в еепром отключать прерывания, так как будут глюкы 100% при записи данных
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 3 2011, 23:27
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Integral @ May 4 2011, 02:41) *
самое главное при записи в еепром отключать прерывания, так как будут глюкы 100% при записи данных

Обоснуйте, пожалуйста. Каков механизм их возникновения при включенных прерываниях?
Go to the top of the page
 
+Quote Post
Integral
сообщение May 4 2011, 00:13
Сообщение #9


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

Группа: Участник
Сообщений: 149
Регистрация: 9-08-08
Пользователь №: 39 519



елементарно ватсон... запись в еепром идет долго, т.е. нужна задержка в программе при записи что бы записалось (цыклом вайл ждем пока не закончиться запись, и только тогда работаем дальше), если в ето (пока цыкв вайл ждет пока закончиться запись) время произойдет абсолютно любое прерывание, то запись может (а может и нет) заглючит и результат записи может быть любим, с такой фигней мне приборов уже 100 возвращали, и вообще голову ломал че слетают все время данные с еепрома... бод настроил и т.п... отключил прерывание при работы с еепром, как результат полтора года 800 устройств до сих пор работают замечательно

в своих устройствах очень часто работаю с прерываниями и очень много пишу данных в внутренюю еепром, вот и слет раз в 3-4 месяца ежедневнего использования наблюдался, а вдруг запись не успеет закончиться и будет команда начать новую запись? что угодно может быть...

поетому при работе с еепром нужно себе на лобе написать 2 больших пункта, это задержка вайлом пока закончиться запись и отключение прерываний на момент записи

Сообщение отредактировал Integral - May 4 2011, 00:30
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 4 2011, 01:05
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Integral @ May 4 2011, 04:13) *
...если в ето (пока цыкв вайл ждет пока закончиться запись) время произойдет абсолютно любое прерывание, то запись может (а может и нет) заглючит и результат записи может быть любим

Это не описание механизма.

Цитата(Integral @ May 4 2011, 04:13) *
а вдруг запись не успеет закончиться и будет команда начать новую запись? что угодно может быть...

Так программы надо писать так, чтобы "что угодно" не случалось.
Go to the top of the page
 
+Quote Post
Integral
сообщение May 4 2011, 01:24
Сообщение #11


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

Группа: Участник
Сообщений: 149
Регистрация: 9-08-08
Пользователь №: 39 519



ну вот отключил прерывание и что угодно случится точно не сможет
темболия если большой проект, то все предусмотреть ооочень тяжело, включаются/выключаются прерывания всего одной командой, поетому для меня в хорошем стиле программирования должны отключатся прерывания на момент записи в еепром

aaarrr как по другому лучше сделать? сделать глобальный флаг и при записи устанавливать в 1 а при окончании в 0 и при каждой записи проверять етот флаг? особенно если писать масивы в еепром, масив может быть недописан и по прерыванию пойдет команда записать в етот масив другие значения, при возврате с прерывания будет дальше запись идти, в результате фиг знает что будет в еепром, поетому можно и флаг делать глобальный, но я сделал уже по "настоящему", отключаю прерывания и спокоен... так как коректность данных в еепром была очень важна, и играться на угад как оно получиться нельзя, как месяц или как год поработает устройство

Сообщение отредактировал Integral - May 4 2011, 01:58
Go to the top of the page
 
+Quote Post
xemul
сообщение May 4 2011, 08:10
Сообщение #12



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(Integral @ May 4 2011, 05:24) *
поетому для меня в хорошем стиле программирования должны отключатся прерывания на момент записи в еепром

Вероятно, Вам не попадались задачи, где приоритет записи в еепром чуть пониже плинтуса.
Прерывания и надёжность записи (в еепром), имхо, никак не пересекаются.
Цитата
aaarrr как по другому лучше сделать? сделать глобальный флаг и при записи устанавливать в 1 а при окончании в 0 и при каждой записи проверять етот флаг? особенно если писать масивы в еепром, масив может быть недописан и по прерыванию пойдет команда записать в етот масив другие значения, при возврате с прерывания будет дальше запись идти, в результате фиг знает что будет в еепром, поетому можно и флаг делать глобальный, но я сделал уже по "настоящему", отключаю прерывания и спокоен... так как коректность данных в еепром была очень важна, и играться на угад как оно получиться нельзя, как месяц или как год поработает устройство

Оцениваете потребную среднюю скорость записи; если укладываетесь в спецификацию еепром, то организуете, н-р, кольцевой буфер достаточной длины, из которого пишете по мере возникновений прерывания окончания записи в еепром; если не укладываетесь, выбираете более приличную случаю энергонезависимую память.
Go to the top of the page
 
+Quote Post
Oleg_DI
сообщение May 4 2011, 08:11
Сообщение #13


Участник
*

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



Цитата(Integral @ May 4 2011, 07:24) *
ну вот отключил прерывание и что угодно случится точно не сможет
темболия если большой проект, то все предусмотреть ооочень тяжело, включаются/выключаются прерывания всего одной командой, поетому для меня в хорошем стиле программирования должны отключатся прерывания на момент записи в еепром

aaarrr как по другому лучше сделать? сделать глобальный флаг и при записи устанавливать в 1 а при окончании в 0 и при каждой записи проверять етот флаг? особенно если писать масивы в еепром, масив может быть недописан и по прерыванию пойдет команда записать в етот масив другие значения, при возврате с прерывания будет дальше запись идти, в результате фиг знает что будет в еепром, поетому можно и флаг делать глобальный, но я сделал уже по "настоящему", отключаю прерывания и спокоен... так как коректность данных в еепром была очень важна, и играться на угад как оно получиться нельзя, как месяц или как год поработает устройство

контрольная сумма и есть этот флаг.Правильная контрольная сумма при чтении правильные данные.а если данные не правильные поможет кольцевой счётчик адреса ЕЕПром если данные не верны делаешь откат и читаешь предыдущие данные.
Go to the top of the page
 
+Quote Post
singlskv
сообщение May 4 2011, 08:52
Сообщение #14


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Integral @ May 4 2011, 02:41) *
самое главное при записи в еепром отключать прерывания, так как будут глюкы 100% при записи данных
Нда...
отключать прерывания нужно ТОЛЬКО на время копирования данных во временный буфер
который используется для записи в EEPROM,
все остальное ошибки программиста...
Go to the top of the page
 
+Quote Post
Integral
сообщение May 4 2011, 15:49
Сообщение #15


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

Группа: Участник
Сообщений: 149
Регистрация: 9-08-08
Пользователь №: 39 519



Цитата(singlskv @ May 4 2011, 11:52) *
Нда...
отключать прерывания нужно ТОЛЬКО на время копирования данных во временный буфер
который используется для записи в EEPROM,
все остальное ошибки программиста...



ошибок никогда не бывает, прогто любая программа работает так, как ее написал ррограммист, а не так как она должна работать?
В любое время в любов приреванни может быть команда записи в еепром, в таком случае, или глобальную переменную мутите ли отключайте прерыванич??? я еще имел глюк с лсмд при прерываниях, кому интересно роскажу, [CENSORED] я на своем опыте работы имею след. полезный совет:

Если вы работаете с еепром и нет критического требования на реакцию мк на все прервания - отключайте еепром при записи, иначе в любой программе найдеться не предусмотернный глюк где 1 пишетться 2 раза в одно и то время по приреванич??? глюк роз в 3-4 месяца возникап, вот мне перед клиентами удоно было тол???


+ еще, при работе за ЖКИ где 4 битная ШД, так вот..... при записи 4 бит если возникает прерывание и там нуно опять дынные возобновить, так пишем еще 8 бит.... потом возвращаемся с прерывания... и дописываеи еще 4 бит.. кароче глюки слош и рядом, ну вот если вы такие умные, просвятите как избавится ог глюков работы дисплеся при 2 командал

lcd_gotoxy(0, 1);
strchis("А");

ели запустить данній код в прерівание по входу, и дать на вхоод несколько десятком кГц??? вот, значит при работе с дисплеем тоже прерівания отклювать? ато при ежедневном использовании раз в 3-4 месяца клиент находит как заглючить устроство?

так вам токо на угад, написал и досвидание??? кому перрівания не критьичні оключайте... ато как исправить глюк просвятите

lcd_gotoxy(0, 1);
strchis("А");

ПС, писать свои функции и делать на асембллерере 10000% не позволяет заказчит, поетому вот такая задача... как исправить глюк в етих 2 строках без отключения прерываний?

ПС. еемпром обновляю с частотой окколо 1кгц в 1с, статистиу тамм прибор храмин, уж очень точную, и часто туда пишет, и преріваний тьма

вот какк просвятите как избавиться от глюков бисплея без откл преріванич поверю что умныу


Мнение о пользователях скрыто по поступившей жалобе. Автор сообщения получил предупреждение и статус read only на неделю.
Модератор.


Сообщение отредактировал IgorKossak - May 5 2011, 17:36
Go to the top of the page
 
+Quote Post

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

 


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


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