Jump to content

    

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

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

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

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

Share this post


Link to post
Share on other sites

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

 

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

 

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

 

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

 

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

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this