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

 
 
> SAM7S + USART PDC + INTS, Зависает AIC??? после сброса по WDT
defunct
сообщение Jun 28 2010, 06:06
Сообщение #1


кекс
******

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



Столкнулся с интересной ситуацией, сообщили что девайс иногда перестает работать, с виду вроде все ОК, светодиоды мигают, а коммуникаций с Host'ом - нет, интерфейс связи UART. Начал копать, и вот что накопал:

Чип на 55Mhz, UART0 - 115200, работа с UART'ом TX через DMA, RX - посимвольно в режиме 485-го.
Заметил что иногда после сброса по WDT - USART подвисает. Подвисает так:

После старта первая посылка по DMA уходит без проблем (в терминале вижу правильные данные), но прерывание TXRDY не происходит, поэтому больше девайс ничего не шлет... Хотя флаг TXRDY в статус регистре UART'а есть! Прерываний нет от USART'а вообще никаких, ни RX ни TX, ничего.....
Другая периферия после сброса по WDT работает нормально, вчастности таймер (EDGE_TRIGGERED) тикает, I2C (LEVEL_SENSITIVE) прерывания живут, на SPI висит SD карточка обмен через DMA с прерываниями (EDGE_TRIGGERED) работает.

Подумал UART глючит, пробовал вывести из ступора повторной инициализацией - не помогло. И не удивительно, UART то по всем признакам живой...

Повторный сброс по WDT (иногда второй, иногда третий...) приводит USART в чуства... и USART после этого живет долго и счастливо.

До конца не разобрался в чем было дело, но похоже что со сбросом AIC'a через WDT что-то не чисто, на что натолкнуло значение AIC_IMR = 0xFFFFEEE3 после сброса. Следующий код, решает мою проблему с UART'ом:

Код
static __inline void hal_ClearAIC(void)
{
    AT91PS_AIC pAIC = AT91C_BASE_AIC;            
    int i;
    pAIC->AIC_IDCR = 0xFFFFFFFF;
    pAIC->AIC_EOICR = 0; // mark last int as handled
    for (i = 0; i < 32; i++)
        pAIC->AIC_SVR[ i ] = 0xDEADBEEF;
}

вызвать первым при входе в main().

Кто-нибудь сталкивался с чем-то подобным?
Go to the top of the page
 
+Quote Post



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

 


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


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