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

Передать сигнал из прерывания в задачу

Работаю с CMSIS-RTOS RTX от Keil. Имею прерывание, по которому хочу передать в задачу обработки двухбайтовое сообщение. Кидаю его в двухбайтовый глобальный массив. Устанавливаю сигнал (в терминах CMSIS-RTOS) для задачи обработки. Задача ждет сигнал и выполняет обработку.

Но можно сделать иначе - очередь сообщений. И в прерывании заносить в очередь новое сообщение. А задача будет ждать сообщение. Так, вроде, правильнее, с точки зрения RTOS. Но будет ли это эффективнее? Поделитесь мнениями.

Да и само прерывание - тоже задача. Не мелковата ли? :)

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


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

Всё зависит от реализации. Так как исходных кодов у Вас нет, то увы и ах придётся только тестировать такты.

 

В любом случае если глубина очереди в 1 элемент ( а именно так у вас и сделано в существуюшем варианте с сигналом) вас устраивает то почему-бы не остаться на текущем случае ибо пересылка двух байт в локальную переменную уж очень быстра по сравеннию с тем что надо

 

1. проверить полна/пуста ли очередь

 

2. поместить ваши два байта

 

3. счётчики и прочие упр структуры очереди обновоить.

 

 

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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