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

 
 
> Прерывания в области загрузчика в 8-й меге
Hz!
сообщение Nov 27 2006, 17:05
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 5-05-06
Из: Минск
Пользователь №: 16 792



В чем может быть причина, почему не работают прерывания в область загрузчика.
При аппаратном UART-е функционирует как надо, но расстраивает небольшая скорость
(стабильно работает тока на 4800 при 8МГц). Может кто сталкивался с такой проблемой и решил ее.
BOOTRST ставлю в 0.
В поиске нашел, что кто-то поборол подобную проблему следующим образом:
GICR = _BV(IVCE);
GICR = _BV(IVSEL); , а не
GICR = _BV(IVCE);
GICR |= _BV(IVSEL); , но мне это не помогло.
Линкуется все правильно, размещается в памяти с адреса 0x1С00 (BOOTSZ = 0);
В листинге вектор прерывания от RX указывает на адрес обработчика, а в реале туда не переходит.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
defunct
сообщение Nov 27 2006, 18:00
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Hz! @ Nov 27 2006, 17:05) *
В чем может быть причина, почему не работают прерывания в область загрузчика.
При аппаратном UART-е функционирует как надо, но расстраивает небольшая скорость
(стабильно работает тока на 4800 при 8МГц). Может кто сталкивался с такой проблемой и решил ее.
BOOTRST ставлю в 0.

Так что вас больше расстраивает? То что УАРТ сбоит на скоростях более 4800 или то, что не происходит перехода на обработчик прерывания?
UART будет сбоить пока вы чип не начнете тактировать нормальной частотой, при которой ошибка UARTа будет в приемлемых пределах.
Go to the top of the page
 
+Quote Post
Hz!
сообщение Nov 28 2006, 14:48
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 5-05-06
Из: Минск
Пользователь №: 16 792



Цитата(defunct @ Nov 27 2006, 18:00) *
Так что вас больше расстраивает? То что УАРТ сбоит на скоростях более 4800 или то, что не происходит перехода на обработчик прерывания?
UART будет сбоить пока вы чип не начнете тактировать нормальной частотой, при которой ошибка UARTа будет в приемлемых пределах.

Тут все упирается не столько в скорости самого uart-a, сколько в скорость записи во флэш.
Время записи страницы во флэш д.б. меньше времени приема след. значения по uart-у.
Понятное дело, что увеличение тактовой частоты поможет решить проблему, но это будет решение "в лоб".
Если использовать прерывания и буфер, то скорость uart-a можно будет увеличить и не меняя частоты контроллера. Вопрос именно в том, что в области загрузчика не обрабатывается прерывание от uart-а.
Если кто знает в чем может быть проблема - подскажите.
Go to the top of the page
 
+Quote Post
defunct
сообщение Nov 28 2006, 15:27
Сообщение #4


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Hz! @ Nov 28 2006, 14:48) *
Вопрос именно в том, что в области загрузчика не обрабатывается прерывание от uart-а.

Посмотрите реальное значение регистра GICR после инициализации. А также посмотрите куда осуществялется переход при прерывании.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 13:03
Рейтинг@Mail.ru


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