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

 
 
> проблема - 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
 
Start new topic
Ответов
Tahoe
сообщение Apr 3 2007, 14:27
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 459
Регистрация: 30-03-06
Из: Москва
Пользователь №: 15 600



Цитата
Можно еще protected mode использовать для AIC...

Ну дык uCOS из SVC и не вылезает. wink.gif За исключением собсно прерывания, но сам хендлер всё равно запускается в SVC. Вот потому-то мне и непонятно. Вроде всё по науке, запись в AIC_IVR производится...


Насчёт залезть в ddf была мысля. Под uCOS в принципе прокатит, потому как значение AIC_IVR там сначала переменной присваивается. Её и можно будет смотреть ( что сечйчас и делаю smile.gif ). Но как быть, если проект без ОСи? Если значение AIC_IVR используется непосредственно, как указатель на хендлер? Хотя, наверное, можно и пережить. smile.gif

2 _dem
А с чем связан прыжок обратно, с FreeRTOS на uCOS? Если не секрет? wink.gif
Go to the top of the page
 
+Quote Post
_dem
сообщение Apr 5 2007, 18:23
Сообщение #3


Местный
***

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



Цитата(Tahoe @ Apr 3 2007, 14:27) *
2 _dem
А с чем связан прыжок обратно, с FreeRTOS на uCOS? Если не секрет? wink.gif


Не секрет smile.gif

Под FreeRTOS для IAR не удалось в разумный срок портировать LwIP, а uIP дал скорость потока TCP/UDP порядка 3-5 кбайт в секунду, что не достаточно.

Порт LwIP + FreeRTOS для Rowley устроил всем, кроме одного - под нашим J-Link он (Rowley) зашивает MCU порядка минуты. Опять таки, ни скудные мануалы Rowley, ни форумы не помогли решить проблему (в т.ч. пробовались разные версии драйвера J-Link).

Огорчились, выпили чего-то там... Пересоздали с нуля проект uCOS для IAR, прерывания USART запустились и в данный момент работает все отлично (тьфу-тьфу-тьфу).

Разобраться, в чем именно был затык, попытаюсь, как только будет время - а пока работаем дальше.

TCP/IP стек uC/OS-ii дал с ходу в простейшем тесте поток порядка 3.5 мбайта в секунду (только одна задача - отправка данных в цикле).

smile.gif
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Apr 6 2007, 09:43
Сообщение #4


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Цитата(_dem @ Apr 5 2007, 19:23) *
Порт LwIP + FreeRTOS для Rowley устроил всем, кроме одного - под нашим J-Link он (Rowley) зашивает MCU порядка минуты. Опять таки, ни скудные мануалы Rowley, ни форумы не помогли решить проблему (в т.ч. пробовались разные версии драйвера J-Link).

Надо было виглер пользовать, кроссворкс с ним на порядок быстрее работает.


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
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   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 Текстовая версия Сейчас: 22nd July 2025 - 17:44
Рейтинг@Mail.ru


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