Message Queue - очередь сообщений в CMSIS-RTOS2
Передача сообщений - одна из базовых моделей взаимодействия между потоками (задачами). В модели передачи сообщений один поток отправляет данные в очередь сообщений, в то время как другой поток их получает, используя метод FIFO (First In First Out - первым пришел, первым ушел). В CMSIS-RTOS этот механизм называется s-очередью сообщений. Используя функции очереди сообщений, сообщения можно отправлять, получать или ожидать. Передаваемые данные могут быть целочисленного типа или типа указатель на произвольные объекты (строки, структуры).
Иллюстрация очереди сообщений с сайта CMSIS-RTOS2 (ARM).
Иллюстрация очереди сообщений с сайта FreeRTOS.
Структуры
osMessageQueueAttr_t
Задает атрибуты для функции osMessageQueueNew()
Функции
osMessageQueueNew()
Создает и инициализирует новую очередь сообщений (Message Queue object)
osMessageQueuePut()
Помещает сообщение в очередь
osMessageQueueGet()
Получает сообщение из очереди
osMessageQueueGetName()
Получает имя очереди сообщений
osMessageQueueGetCapacity()
Получает максимальное количество сообщений в очереди сообщений
osMessageQueueGetMsgSize()
Получает максимальный размер сообщения в очереди сообщений
osMessageQueueGetCount()
Получает количество помещённых в очередь сообщений
osMessageQueueGetSpace()
Получает количество доступных слотов в очереди сообщений
osMessageQueueReset()
Сброс очереди сообщений с исходное пустое состояние
osMessageQueueDelete()
Удаляет очередь сообщений