Перейти к содержанию
    

Переполняется очередь сообщений

На XMEGA128 использую очередь сообщений. В общем работает хорошо, но при большой нагрузке (много данных по УАРТам) переполняется очередь сообщений для задачи. Прерывания все при этом работают. Сообщения для других задач иногда отсылаются, иногда нет. Пробовал при переполнении вызывать OSQFlush - эффекта нет. Как быть?

П.С. памяти данных использую 7600 байт из 8КБ. Может что-то из-за этого?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Выяснил, что переполнение происходит из-за того, что в какой-то момент перестает вызываться задача, которая должна эту очередь читать. Всего задач у меня 8, пробовал уменьшать до 3-х задач и 5 КБ памяти данных, изменял размеры стеков, приоритеты задач - не помогает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может на семафорах переписать? Ну и стека добавить, если есть зависимость от времени.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я хочу попробовать удалять и заново создавать зависшую задачу, а там посмотрим...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сработало!!! :08: Когда переполняется очередь, я из самой приоритетной задачи (она работает нормально) удаляю зависшую задачу, чищу очередь сообщений и запускаю задачу заново.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...