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

 
 
> Траблы с STR91xFA, Очередное выяснение багов его периферии
Aprox
сообщение Mar 10 2008, 10:08
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131



Hесмотря на значительное вычищение багов периферии при переходе с STR91xF на FA, остались неприятности( подозреваю) со всей периферией, которая может работать ассинхронно к такту процессора и шин, к которым подключена периферия. В настоящий момент траблы выявлены при прерываниях от узла ENET и RTC.

1. RTC. При попытке сбросить флаг периодического прерывания в ISR описанным в мануале приемом (чтение SR), флаг запроса ничуть не сбрасывается. Чтобы его сбросить, нужно применить шаманский прием, найденный AlexanrY на "сахара". Т.е. переделать подпрограмму RTC_ClearFlag 91x_rtc.c библиотеки. Она должна выглядеть так:
Цитата
void RTC_ClearFlag(u32 RTC_FLAG)
{
vu32 tmp;
if (RTC_FLAG == RTC_FLAG_Per){
tmp= RTC->CR;
RTC->CR&=~0x0F0000;// clear prediv
if(RTC->SR);
RTC->CR =tmp;// restore prediv
}
else if (RTC_FLAG == RTC_FLAG_Alarm) RTC->CR&=~0x100000;
else if (RTC_FLAG == RTC_FLAG_Tamper) RTC->CR&=~0x1;
}


2. ENET. Периодически генерит так называемые Spurious Interrupts. Если не инициализировать DefaultVector в VIC, то приложение будет спорадически ресетиться и трудно понять почему. Способ борьбы также шаманский- создать в 91x_it.c пустой обработчик Spurious Interrupts и направить на него DefaultVector .
Цитата
void Spurious_Interrupts_Handler()
{//--------------------------
VIC0->VAR = 0xFF;
VIC1->VAR = 0XFF;
}

Запускать VIC в работу так
Цитата
void VIC_Init()
{//------
SCU_AHBPeriphClockConfig(__VIC, ENABLE);
VIC_DeInit();
VIC0->DVAR = (u32)Spurious_Interrupts_Handler;
VIC1->DVAR = (u32)Spurious_Interrupts_Handler;
//.....any else......
}
Go to the top of the page
 
+Quote Post

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


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

 


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


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