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

 
 
> Прерывания SAM
beer_warrior
сообщение Jun 3 2006, 21:55
Сообщение #1


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

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Написал прием/передачу по USART по прерываниям.
До этого прерывания использовал PIT, на котором базируется системный таймер.
Вызова приема/передачи в теле программы нет, присутствует только сама функция прерывания,
тем не менее программа в это прерывание залетает(включается светодиод), при этом таймер тихо сходит с ума.(Если пишу в AIC_EOICR, зависает, если нет увеличивется частота). Такое впечетление, что влет в оба прерывания происходит по переполнению PIT.
Прерывания конфигурил по AT91F_AIC_ConfigureIt, приоритет PIT = 7, USART = 6.Компилятор gcc, режим ARM, о баге с thumb режимом осведомлен, атрибут прерывания поставлен.
Я что-то не понял в конфигурации AIC? или на выходе из USART Interrupt нужны какие-то танцы?
Помогите ибо день на это уже убил.sad.gif


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
beer_warrior
сообщение Jun 5 2006, 04:44
Сообщение #2


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

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Цитата
imho трабла не с AIC'ом в общем, а с тем, что AIC'у сообщается о завершении обработки прерывания, а USART'у - нет.

ОК, с AIC_EOICR понятно - закрытие прерывания в AIC.
Чтение PIT_PIVR - сброс флажка прерывания в PIT.
Чтение US_CSR - сброс флажка прерывания в USART? (регистр read-only).

У меня сейчас складыватся впечетление, что я что-то упустил на уровне ядра - вроде бы не сохраняется контекст, из-за этого и проблемы: у функций стоит атрибут nacked и используются макросы
ISR_ENTRY и ISR_EXIT позаимствованые из примера с прерывниями.
Ключик компилятора -marm для всего или -mthumb-interworking для основной программы и -marm для файла с прерываниями - ситуация в любом случае одинаковая.


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
defunct
сообщение Jun 5 2006, 08:57
Сообщение #3


кекс
******

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



Цитата(beer_warrior @ Jun 5 2006, 07:44) *
У меня сейчас складыватся впечетление, что я что-то упустил на уровне ядра - вроде бы не сохраняется контекст, из-за этого и проблемы:....

Не думаю что тогда было бы это:

Цитата
.. если нет увеличивется частота


это imho два взаимоисключающих фактора.

все должно быть проще..
Сокращенный код обработчика usart'a был бы весьма кстати.
Go to the top of the page
 
+Quote Post



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

 


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


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