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

 
 
> Еще одни грабли от 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
Ответов
Сергей Борщ
сообщение Jul 20 2006, 07:26
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(ArtemKAD @ Jul 19 2006, 22:55) *
При чтении ЕЕPROM в прерывании нет сохранения регистров адреса/данных(EEAR EEDR). Или что то-же самое - не защищаются от прерываний участок с момента записи EEAR EEDR до собственно подачи комманды чтения/записи.
Грабли не в компиляторе.
Вопрос первый: Зачем запрещать прерывания если программа уже находится в прерывании?
Из него плавно вытекает второй: как компилятор определит что в одном случае функция вызвана из прерывания и запрещать не нужно а в другом случае из фона и запрещать нужно?
В том виде в каком оно есть все прекрасно работает из фона _без_ лишних накладных расходов - запретов/разрешений прерываний и сохранения/восстановления регистров. Если уж вы решили извратиться и работать с eeprom в прерывании (что само по себе уже глюк, только алгоритма) то уж будьте добры возьмите на себя труд сделать все эти лишние действия вручную и там где по-вашему они необходимы.

P.S. А еще он за пивом не бегает, вот это меня бесит больше всего.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
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, 23:55) При...   Jul 20 2006, 08:35
- - TomaT   Может и бывает нужда такая, но я не очень понимаю ...   Jul 20 2006, 09:12
- - IgorKossak   Судя по всему, никто из отвечавших здесь не заглян...   Jul 21 2006, 09:30
|- - ArtemKAD   Цитата(IgorKossak @ Jul 21 2006, 12:30) С...   Jul 21 2006, 20:29
|- - Сергей Борщ   Цитата(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 Текстовая версия Сейчас: 23rd July 2025 - 21:09
Рейтинг@Mail.ru


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