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

 
 
> FIQ, AT91RM9200 и IAR
Paramedic
сообщение Feb 5 2007, 17:03
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 181
Регистрация: 15-01-07
Пользователь №: 24 436



Есть внешний источник прерывания на PB28. Пытаюсь написать обработку FIQ:

void AT91F_FIQ_HANDLER(void)
{
asm("nop");
}

main()
{
AT91F_PIOB_CfgPMC();
AT91F_PIO_CfgPeriph(AT91C_BASE_PIOB, (1 << 28), 0);
AT91F_AIC_ConfigureIt(AT91C_BASE_AIC, AT91C_ID_FIQ,
AT91C_AIC_PRIOR_HIGHEST,
AT91C_AIC_SRCTYPE_EXT_POSITIVE_EDGE,
(VoidFpnt_t)AT91F_FIQ_HANDLER);
// Enable FIQ interrupt
AT91F_AIC_EnableIt(AT91C_BASE_AIC, AT91C_ID_FIQ);

...
}
Далее при возникновении внешнего события программа сбивается на какой-то далёкий адрес, при этом в обработчик даже не заходит.
Другие прерывания (системный таймер и TWI) работают нормально.
Даже если пытаться тоже самое сделать через IRQ0 - тоже всё работает.
Чем FIQ так отличается от всех?
Где я чего не доглядел?

Сообщение отредактировал Paramedic - Feb 5 2007, 17:32
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


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


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