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

 
 
 
Reply to this topicStart new topic
> Пара вопросов по Keil, подскажите кто-нибудь пжлста..
InsolentS
сообщение Apr 22 2007, 00:48
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 414
Регистрация: 8-06-06
Пользователь №: 17 897



1) Как в RV30 захандлить FIQ? Ну никак не получаетсяsad.gif дайте рабочий пример плизззз
2) Почему при отладке во вкладке Peripherals есть только PIOA и USART0, а остальные(PIOB,USART1) отсутствуют? проц AT91SAM7X256


--------------------
Курильщик даташитов со стажем
Go to the top of the page
 
+Quote Post
sqrt
сообщение Apr 22 2007, 17:52
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 66
Регистрация: 14-07-05
Из: Moscow
Пользователь №: 6 786



Цитата(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)
{
  // свой код
}


Сообщение отредактировал sqrt - Apr 22 2007, 17:58
Go to the top of the page
 
+Quote Post
InsolentS
сообщение Apr 22 2007, 18:12
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 414
Регистрация: 8-06-06
Пользователь №: 17 897



Цитата(sqrt @ Apr 22 2007, 20:52) *

Спасибо!!


--------------------
Курильщик даташитов со стажем
Go to the top of the page
 
+Quote Post
InsolentS
сообщение Apr 22 2007, 22:45
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 414
Регистрация: 8-06-06
Пользователь №: 17 897



Оказывается, AIC очень удобная штука, если уметь ей пользоваться


--------------------
Курильщик даташитов со стажем
Go to the top of the page
 
+Quote Post
InsolentS
сообщение Apr 23 2007, 00:00
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 414
Регистрация: 8-06-06
Пользователь №: 17 897



Ещё вопрос, уже по АРМ: в чём смысл регистра AT91C_BASE_AIC->AIC_EOICR ?? На вид никакой разницы, что с ним, что без него


--------------------
Курильщик даташитов со стажем
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Apr 23 2007, 00:53
Сообщение #6


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

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Информирует AIC, что обработка текущего прерывания закончена. AIC исключает это прерывание из очереди. Если не читать (писать) этот регистр, то при выходе из прерывания процессор опять будет переходить в режим прерывания и опять пытаться обработать все то же прерывание. Зависните. smile.gif


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 23 2007, 09:54
Сообщение #7


Гуру
******

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



Цитата(Dron_Gus @ Apr 22 2007, 23:53) *
процессор опять будет переходить в режим прерывания и опять пытаться обработать все то же прерывание. Зависните. smile.gif
Хуже. Контроллер перестанет генерить прерывания с приоритетом, равным текущему и ниже. Т.е. будут вызываться только прерывания с более высоким приоритетом. А когда и они не получат свой AIC_EOICR, прервания прекратятся вообще.
Цитата(InsolentS @ Apr 22 2007, 23:00) *
На вид никакой разницы, что с ним, что без него
Значит запись в него происходит где-то в другом месте обработчика.


--------------------
На любой вопрос даю любой ответ
"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
InsolentS
сообщение Apr 23 2007, 16:23
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 414
Регистрация: 8-06-06
Пользователь №: 17 897



Цитата(Сергей Борщ @ Apr 23 2007, 12:54) *
Значит запись в него происходит где-то в другом месте обработчика.

т.е. RV сам его подставляет в конец?


--------------------
Курильщик даташитов со стажем
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 23 2007, 17:10
Сообщение #9


Гуру
******

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



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


--------------------
На любой вопрос даю любой ответ
"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

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

 


RSS Текстовая версия Сейчас: 16th June 2025 - 05:35
Рейтинг@Mail.ru


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