Перейти к содержанию
    

Запись в EEPROM с протоколом

Помогите советом кто как записывает EEPROM с протоколом . признак начала пакета кол байт контрольная сумма.

я переделал протокол wake под запись EEPROM но там много лишнего.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А зачем при записи в EEPOM нужен еще какой-то свой протокол? :cranky: EEPOM обычно имеет свой физический интерфейс, который и определяет временные диаграммы чтения/записи. Может вы на самом деле хотите спросить не о протоколе связи, а о способе хранения произвольных записей в EEPROM? Некоем подобии файловой системы? Тогда встречный вопрос: про связанные списки знаете?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А зачем при записи в EEPOM нужен еще какой-то свой протокол? :cranky: EEPOM обычно имеет свой физический интерфейс, который и определяет временные диаграммы чтения/записи. Может вы на самом деле хотите спросить не о протоколе связи, а о способе хранения произвольных записей в EEPROM? Некоем подобии файловой системы? Тогда встречный вопрос: про связанные списки знаете?

нет не знаю.Где про них найти

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Где про них найти

 

В гугле :biggrin: .

1-я же ссылка -

http://ru.wikipedia.org/wiki/%D0%A1%D0%B2%...%81%D0%BE%D0%BA

 

Реализовывать можно как угодно и на чем угодео.

Полно примеров и на C и на др. языках.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

нет не знаю.Где про них найти
Т.е. вы подтверждаете мою догадку о том, что вам на самом деле требуется файловая система для EEPROM?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Т.е. вы подтверждаете мою догадку о том, что вам на самом деле требуется файловая система для EEPROM?

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

я нашел на си.надо осмыслить.

Изменено пользователем Oleg_DI

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Обоснуйте, пожалуйста. Каков механизм их возникновения при включенных прерываниях?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

Изменено пользователем Integral

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

а вдруг запись не успеет закончиться и будет команда начать новую запись? что угодно может быть...

Так программы надо писать так, чтобы "что угодно" не случалось.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну вот отключил прерывание и что угодно случится точно не сможет

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

 

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

Изменено пользователем Integral

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Вероятно, Вам не попадались задачи, где приоритет записи в еепром чуть пониже плинтуса.

Прерывания и надёжность записи (в еепром), имхо, никак не пересекаются.

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

Оцениваете потребную среднюю скорость записи; если укладываетесь в спецификацию еепром, то организуете, н-р, кольцевой буфер достаточной длины, из которого пишете по мере возникновений прерывания окончания записи в еепром; если не укладываетесь, выбираете более приличную случаю энергонезависимую память.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну вот отключил прерывание и что угодно случится точно не сможет

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

 

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

контрольная сумма и есть этот флаг.Правильная контрольная сумма при чтении правильные данные.а если данные не правильные поможет кольцевой счётчик адреса ЕЕПром если данные не верны делаешь откат и читаешь предыдущие данные.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

самое главное при записи в еепром отключать прерывания, так как будут глюкы 100% при записи данных
Нда...

отключать прерывания нужно ТОЛЬКО на время копирования данных во временный буфер

который используется для записи в EEPROM,

все остальное ошибки программиста...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нда...

отключать прерывания нужно ТОЛЬКО на время копирования данных во временный буфер

который используется для записи в 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...