Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Переполняется очередь сообщений
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > uC/OS-II
vitek101
На XMEGA128 использую очередь сообщений. В общем работает хорошо, но при большой нагрузке (много данных по УАРТам) переполняется очередь сообщений для задачи. Прерывания все при этом работают. Сообщения для других задач иногда отсылаются, иногда нет. Пробовал при переполнении вызывать OSQFlush - эффекта нет. Как быть?
П.С. памяти данных использую 7600 байт из 8КБ. Может что-то из-за этого?
vitek101
Выяснил, что переполнение происходит из-за того, что в какой-то момент перестает вызываться задача, которая должна эту очередь читать. Всего задач у меня 8, пробовал уменьшать до 3-х задач и 5 КБ памяти данных, изменял размеры стеков, приоритеты задач - не помогает.
andrewlekar
Может на семафорах переписать? Ну и стека добавить, если есть зависимость от времени.
vitek101
Я хочу попробовать удалять и заново создавать зависшую задачу, а там посмотрим...
vitek101
Сработало!!! 08.gif Когда переполняется очередь, я из самой приоритетной задачи (она работает нормально) удаляю зависшую задачу, чищу очередь сообщений и запускаю задачу заново.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.