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

 
 
> Еще одни грабли от IAR AVR, на этот раз касабельно EEPROM
ArtemKAD
сообщение Jul 19 2006, 19:55
Сообщение #1


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

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



При чтении ЕЕPROM в прерывании нет сохранения регистров адреса/данных(EEAR EEDR). Или что то-же самое - не защищаются от прерываний участок с момента записи EEAR EEDR до собственно подачи комманды чтения/записи.
Результат - при работе с ЕЕPROM в прерывании возможна ситация когда разрушаются адрес или данные в операции чтения/записи из основного цикла. В связи с редкостью подобного события возможен крайне трудноуловимый глюк angry.gif ...

Сообщение отредактировал ArtemKAD - Jul 19 2006, 19:58
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
IgorKossak
сообщение Jul 21 2006, 09:30
Сообщение #2


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Судя по всему, никто из отвечавших здесь не заглянул сюда.
Что касается компилятора, то он и не должен строить предположения насчёт прерываний.
Для него EEPROM и система прерываний - две разные сути. Если пользователю вдруг захотелось эти сути объединить в своей задаче (требованиях), то пусть он (пользователь) этим и займётся, причём тут компилятор.
Кроме того, работа с EEPROM может влиять\зависеть не только от системы прерываний, но и на\от системы самопрограммирования. Что прикажете компилятору делать в этом случае? Опять будете обвешивать его ярлыками с "граблями" за то что не оправдал Ваших надежд?
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Jul 21 2006, 20:29
Сообщение #3


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

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Цитата(IgorKossak @ Jul 21 2006, 12:30) *
Судя по всему, никто из отвечавших здесь не заглянул сюда.

Уже заглянул blush.gif . Действительно нечто похожее уже обсуждали и в прикрепленном файле грабли были убраны.
Цитата
Что касается компилятора, то он и не должен строить предположения насчёт прерываний.
Для него EEPROM и система прерываний - две разные сути. Если пользователю вдруг захотелось эти сути объединить в своей задаче (требованиях), то пусть он (пользователь) этим и займётся, причём тут компилятор.

Там суть в глобальных ресурсах - сохраняет-же он при входе в прерывание SREG, так чем EEAR и EEDR хуже?
Цитата(TomaT @ Jul 21 2006, 13:46) *
Выдержка из атмеловского даташита: 1111493779.gif
Caution: An interrupt between step 5 and step 6 will make the write cycle fail, since the
EEPROM Master Write Enable will time-out. If an interrupt routine accessing the
EEPROM is interrupting another EEPROM access, the EEAR or EEDR Register will be
modified, causing the interrupted EEPROM access to fail. It is recommended to have
the Global Interrupt Flag cleared during all the steps to avoid these problems.

Тем более IAR-овцы должны были на эту выдержку обратить внимание sad.gif .

Сообщение отредактировал ArtemKAD - Jul 21 2006, 20:30
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ArtemKAD   Еще одни грабли от IAR AVR   Jul 19 2006, 19:55
- - arttab   Какая версия IAR?   Jul 20 2006, 01:42
|- - ArtemKAD   Цитата(arttab @ Jul 20 2006, 04:42) Какая...   Jul 20 2006, 09:04
|- - Семён   [quote name='ArtemKAD' date='Jul 20 20...   Jul 20 2006, 09:15
|- - Сергей Борщ   Цитата(ArtemKAD @ Jul 20 2006, 12:04) Ком...   Jul 20 2006, 09:32
||- - ArtemKAD   Цитата(Сергей Борщ @ Jul 20 2006, 12:32) ...   Jul 20 2006, 10:58
||- - Сергей Борщ   Цитата(ArtemKAD @ Jul 20 2006, 13:58) Цит...   Jul 20 2006, 11:17
|||- - ArtemKAD   Цитата(Сергей Борщ @ Jul 20 2006, 14:17) ...   Jul 20 2006, 11:49
|||- - Сергей Борщ   Цитата(ArtemKAD @ Jul 20 2006, 14:49) Вы ...   Jul 20 2006, 12:05
|||- - ArtemKAD   Цитата(Сергей Борщ @ Jul 20 2006, 15:05) ...   Jul 20 2006, 12:47
||- - xemul   Цитата(ArtemKAD @ Jul 20 2006, 14:58) Даж...   Jul 20 2006, 11:35
||- - TomaT   Цитата(ArtemKAD @ Jul 20 2006, 14:58) ......   Jul 21 2006, 10:46
|- - SasaVitebsk   Цитата(ArtemKAD @ Jul 20 2006, 12:04) Вы ...   Jul 23 2006, 20:44
- - Сергей Борщ   Цитата(ArtemKAD @ Jul 19 2006, 22:55) При...   Jul 20 2006, 07:26
- - Семён   Цитата(ArtemKAD @ Jul 19 2006, 23:55) При...   Jul 20 2006, 08:35
- - TomaT   Может и бывает нужда такая, но я не очень понимаю ...   Jul 20 2006, 09:12
|- - Сергей Борщ   Цитата(ArtemKAD @ Jul 21 2006, 23:29) Цит...   Jul 22 2006, 10:03
|- - ArtemKAD   Цитата(Сергей Борщ @ Jul 22 2006, 13:03) ...   Jul 22 2006, 10:42
|- - Сергей Борщ   Цитата(ArtemKAD @ Jul 22 2006, 13:42) Цит...   Jul 22 2006, 11:14
- - xemul   ЦитатаСудя по всему, никто из отвечавших здесь не ...   Jul 21 2006, 10:44


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

 


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


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