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

 
 
 
Reply to this topicStart new topic
> xQueueSend с блокировкой до выборки сообщения из очереди
Sagittarius
сообщение Sep 1 2014, 07:33
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 207
Регистрация: 26-01-06
Из: СПб
Пользователь №: 13 659



Здравствуйте!

Такой вопрос: xQueueSend, если указан таймаут, блокирует поток до постановки сообщения в очередь. А хотелось бы иметь функцию, которая блокирует поток до выборки из очереди этого сообщения. Смотрел доку на API - не нашел. Возможно кто то делал подобную модификацию ядра FreeRTOS ?

Спасибо.
Go to the top of the page
 
+Quote Post
johnshadow
сообщение Sep 1 2014, 11:22
Сообщение #2


Участник
*

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



Цитата(Sagittarius @ Sep 1 2014, 10:33) *
Здравствуйте!

Такой вопрос: xQueueSend, если указан таймаут, блокирует поток до постановки сообщения в очередь. А хотелось бы иметь функцию, которая блокирует поток до выборки из очереди этого сообщения. Смотрел доку на API - не нашел. Возможно кто то делал подобную модификацию ядра FreeRTOS ?

Спасибо.


указывайте таймаут равный portMAX_DELAY

Код
mytype_t Data;

while (xQueueReceive(xMyQueue, &Data, portMAX_DELAY)) {
...
}


Сообщение отредактировал johnshadow - Sep 1 2014, 11:23
Go to the top of the page
 
+Quote Post
LightElf
сообщение Sep 16 2014, 12:18
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 180
Регистрация: 5-04-09
Пользователь №: 47 205



QUOTE (Sagittarius @ Sep 1 2014, 11:33) *
Такой вопрос: xQueueSend, если указан таймаут, блокирует поток до постановки сообщения в очередь. А хотелось бы иметь функцию, которая блокирует поток до выборки из очереди этого сообщения. Смотрел доку на API - не нашел. Возможно кто то делал подобную модификацию ядра FreeRTOS ?

Сомневаюсь, что кто-то такое делал. Обычно очередь используют, чтобы развязать процесс передачи и процесс приема.
Как вариант: в сообщении иметь поле с TaskHandle потока-отправителя. После xQueueSend поток-отправитель тормозите через TaskSusped, а поток-получатель, получив сообщение, его разбудит.

Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 10:46
Рейтинг@Mail.ru


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