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

 
 
> Выход из прерывания в uCOS, зависает прерывание...
vitek101
сообщение Dec 3 2009, 06:42
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 24-08-09
Пользователь №: 52 013



IAR 5.20, XMEGA128. В программе крутятся 8 потоков, задействованы 8 УАРТов (средний уровень прерываний), 8 таймеров (высокий уровень) и 2 И2Ц (средний). Очень часто при большом потоке информаци зависает прерывание одного из УАРТов. В регистре PMIC стоит флаг обработки прерывания среднего уровня. Можно ли как-нибудь программно сбросить этот флаг (по даташиту вроде нельзя). Да, идлтаск при этом крутится, и работают прерывания высокого уровня. И еще, программа уже занимает 105КБ памяти, а всего в камне 128. Может из-за этого что-нибудь валиться?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vitek101
сообщение Dec 7 2009, 13:04
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 24-08-09
Пользователь №: 52 013



Флаг прерываний получилось сбросить перезапуском прерываний УАРТа и очисткой буферов. После этого все прерывания срабатывают, но не обрабатываются сообщения OSQPost - процедура вываливается тут

Код
    if (pevent->OSEventType != OS_EVENT_TYPE_Q) {      /* Validate event block type                    */
        return (OS_ERR_EVENT_TYPE);
    }


Похоже проблема изначально возникает из-за операционки. Мне кажется в один прекрасный момент не срабатывает выход из прерывания или переключение контекста, или что там еще может быть (я в дебрях uCOSа не силен).

Может есть у кого какие-нибудь мысли? Помогите!!! Пожалуйста!! help.gif
Go to the top of the page
 
+Quote Post



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

 


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


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