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

 
 
> глюки Reset контроллера или?.., AT91SAM7X
Sergei_K
сообщение Nov 28 2007, 11:46
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 49
Регистрация: 14-02-07
Пользователь №: 25 346



Дело в том, что в своей задаче я использую прерывания в PIO Controllerе, которые срабатывают при изменении уровня сигнала на указанной ножке.. (ножка настроена как вход) Кроме того, мне необходимо перезагружать контроллер софтовым способом, например, вида:

pRSTC->RSTC_RCR = AT91C_RSTC_EXTRST |
AT91C_RSTC_KEY_PASS;

Так вот, проблема в том, что при выполнении перезагрузки, указанной выше, происходит прерывание PIO Controllerа, причем независимо от того, запретил я это прерывание перед ресетом или нет.. Как это можно объяснить? Разве при сбросе все регистры не должны сбрасываться в дефолтное состояние? И даже если какие-то регистры не сбросились, все равно прерывание не должно срабатывать, если его запретили.. По-моему, так..

Чтобы было понятней, приведу отрывок из простейшей программы , иллюстрирующей данную проблему:


........................

//Функция прерывания:

__irq void IRQ_Handler (void) {

pAIC>AIC_IDCR = 0xFFFFFFFF; // disable all interrupts

pPIOB->PIO_IDR = 0xFFFFFFFF; // disable PIOB interrupts

pRSTC->RSTC_RCR = AT91C_RSTC_EXTRST |
AT91C_RSTC_KEY_PASS; // External Reset

pPIOB_int->PIO_ISR; // clear PIOB interrupts

pAIC_int->AIC_EOICR = 0x0; // end of interrupt

}

...........................

В данном примере Reset вызывает зацикливание данной функции прерывания.. Если убрать Reset, прерывание сработает один раз, как и положено..
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
VslavX
сообщение Nov 28 2007, 14:24
Сообщение #2


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



Цитата(Sergei_K @ Nov 28 2007, 13:46) *
Так вот, проблема в том, что при выполнении перезагрузки, указанной выше, происходит прерывание
PIO Controllerа, причем независимо от того, запретил я это прерывание перед ресетом или нет.. Как это

А Вы уверены что прерывание именн от PIO? В SAM7 прерывания PIO и RTSC совмещены и подключены по схеме ИЛИ к одному входу AIC. В обработчике такого "разделяемого" прерывания надо анализировать его причину по регистрам периферии.
Go to the top of the page
 
+Quote Post



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

 


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


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