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

 
 
> проблема - uCos и USART IRQ handler, не могу нормально запустить свой обработчик прерывания в uCos-e
_dem
сообщение Mar 2 2007, 16:14
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 263
Регистрация: 2-02-07
Из: CN, Ukraine
Пользователь №: 24 970



Добрый день, уважаемый ALL

Разбираюсь с micrium OS - пожалуйста, ткните носом в страницу мануала.
мозги уже кипят - видимо, чего-то упорно не хотят замечать sad.gif

Проблема в следующем - при попытке навесить свой обработчик прерывания на ком-порт под uCos-ом задача работает до первого вызова OSTimeDlyHMSM(), потом все зависает в цикле OS_TaskIdle().

вот код, запускающий обработчик

Код
    AT91F_AIC_ConfigureIt( AT91C_BASE_AIC,   AT91C_ID_US0, 7 , AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL  | AT91C_AIC_PRIOR_LOWEST, usart0_irq_handler);  
    AT91F_AIC_EnableIt (AT91C_BASE_AIC, AT91C_ID_US0);


вот сам обработчик

Код
void usart0_irq_handler(void)
{
        // calling irq processor
        if (_comports [ 0 ])
                {
                 _comports [ 0 ] -> __irq_processor();
                }
/////////////////////
    unsigned long rx_data                     = AT91C_BASE_PITC->PITC_PIVR;   /* Read the interrupt source, ignore the value*/

    AT91C_BASE_AIC->AIC_IVR     = 0;                            /* Debug variant of IVR (protect mode is used)*/
    AT91C_BASE_AIC->AIC_ICCR    = AT91C_ID_US0;                 /* Clear  USART0 interrupt                    */
    AT91C_BASE_AIC->AIC_EOICR   = 0;                            /* Signal end of interrupt                    */

       //* Reset the satus bit
AT91C_BASE_US0->US_CR = AT91C_US_RSTSTA;  

}


Если убрать вызов
Код
AT91F_AIC_EnableIt (AT91C_BASE_AIC, AT91C_ID_US0);

т.е. не включать прерывание в AIC, то все работает - понятно, кроме собственно обработчика.

видимо, ошибся в обработчике, но не могу понять - где ?

----
добавил в обработчик вызовы OSIntEnter() / OSIntExit() - не помогло sad.gif

Сообщение отредактировал _dem - Mar 2 2007, 16:56
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- _dem   проблема - uCos и USART IRQ handler   Mar 2 2007, 16:14
- - AlexBoy   Там цепочка вызовов такая: с вектора 0x18 вызввает...   Mar 2 2007, 19:55
|- - _dem   с этим я разобрался, спасибо но все равно не рабо...   Mar 5 2007, 11:48
|- - AlexBoy   Цитата(_dem @ Mar 5 2007, 10:48) с этим я...   Mar 5 2007, 13:06
|- - _dem   Цитата(AlexBoy @ Mar 5 2007, 14:06) Цитат...   Mar 5 2007, 13:13
|- - AlexBoy   Цитата(_dem @ Mar 5 2007, 12:13) ситуация...   Mar 5 2007, 19:08
|- - _dem   пока ничего нового роюсь в документации и сырцах ...   Mar 6 2007, 10:46
|- - AlexBoy   По функциям, то что нужно добавить: InitUSART: 1. ...   Mar 6 2007, 13:26
|- - _dem   оно все так и сделано, а OSTick() вызывается в ста...   Mar 7 2007, 12:13
- - _dem   проблема решена радикально - переходом на FreeRTOS...   Mar 14 2007, 10:16
- - Tahoe   Такой вопрос назрел. А кто как "дебажится...   Apr 3 2007, 07:55
|- - _dem   Цитата(Tahoe @ Apr 3 2007, 08:55) Такой в...   Apr 3 2007, 09:21
|- - Сергей Борщ   Цитата(Tahoe @ Apr 3 2007, 06:55) А пробл...   Apr 3 2007, 12:28
- - Dron_Gus   Можно еще protected mode использовать для AIC...   Apr 3 2007, 12:28
- - Tahoe   ЦитатаМожно еще protected mode использовать для AI...   Apr 3 2007, 14:27
|- - _dem   Цитата(Tahoe @ Apr 3 2007, 14:27) 2 _dem ...   Apr 5 2007, 18:23
|- - SpiritDance   Цитата(_dem @ Apr 5 2007, 19:23) Порт LwI...   Apr 6 2007, 09:43
- - Tahoe   dem Понятно. Я пока тоже до конца не разобрался с ...   Apr 6 2007, 05:59
|- - Velund   Цитата(Tahoe @ Apr 6 2007, 06:59) Если вк...   Apr 8 2007, 18:41
- - _dem   Цитатапри попытке посмотреть в "хинте" з...   Apr 6 2007, 10:09
- - Tahoe   Цитата(_dem @ Apr 6 2007, 11:09) именно в...   Apr 6 2007, 17:15


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

 


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


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