Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Пара вопросов по Keil
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
InsolentS
1) Как в RV30 захандлить FIQ? Ну никак не получаетсяsad.gif дайте рабочий пример плизззз
2) Почему при отладке во вкладке Peripherals есть только PIOA и USART0, а остальные(PIOB,USART1) отсутствуют? проц AT91SAM7X256
sqrt
Цитата(InsolentS @ Apr 22 2007, 01:48) *
1) Как в RV30 захандлить FIQ? Ну никак не получаетсяsad.gif

startup.s:
Код
FIQ_Addr        DCD     FIQ_Handler
                IMPORT  FIQ_Handler           ;! Use external FIQ_Handler
...
;! FIQ_Handler     B       FIQ_Handler

fiq.c:
Код
__irq void FIQ_Handler(void)
{
  // свой код
}
InsolentS
Цитата(sqrt @ Apr 22 2007, 20:52) *

Спасибо!!
InsolentS
Оказывается, AIC очень удобная штука, если уметь ей пользоваться
InsolentS
Ещё вопрос, уже по АРМ: в чём смысл регистра AT91C_BASE_AIC->AIC_EOICR ?? На вид никакой разницы, что с ним, что без него
Dron_Gus
Информирует AIC, что обработка текущего прерывания закончена. AIC исключает это прерывание из очереди. Если не читать (писать) этот регистр, то при выходе из прерывания процессор опять будет переходить в режим прерывания и опять пытаться обработать все то же прерывание. Зависните. smile.gif
Сергей Борщ
Цитата(Dron_Gus @ Apr 22 2007, 23:53) *
процессор опять будет переходить в режим прерывания и опять пытаться обработать все то же прерывание. Зависните. smile.gif
Хуже. Контроллер перестанет генерить прерывания с приоритетом, равным текущему и ниже. Т.е. будут вызываться только прерывания с более высоким приоритетом. А когда и они не получат свой AIC_EOICR, прервания прекратятся вообще.
Цитата(InsolentS @ Apr 22 2007, 23:00) *
На вид никакой разницы, что с ним, что без него
Значит запись в него происходит где-то в другом месте обработчика.
InsolentS
Цитата(Сергей Борщ @ Apr 23 2007, 12:54) *
Значит запись в него происходит где-то в другом месте обработчика.

т.е. RV сам его подставляет в конец?
Сергей Борщ
Цитата(InsolentS @ Apr 23 2007, 15:23) *
т.е. RV сам его подставляет в конец?
Компилятор "сам" ничего не делает. Все что он может - подставить заготовки функций из библиотеки. Как у вас организовано ветвление по AIC_IVR? Поставьте точку останова на адресе 0x18 и пройдите первое же прерывание по шагам до выхода. Там все и увидите.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.