CMSIS-RTOS2  Version 2.1.0
Real-Time Operating System: API and RTX Reference Implementation
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Message Queue Functions

Events generated by message queue functions. More...

Functions

void EvrRtxMessageQueueError (osMessageQueueId_t mq_id, int32_t status)
 Event on message queue error (Error) More...
 
void EvrRtxMessageQueueNew (uint32_t msg_count, uint32_t msg_size, const osMessageQueueAttr_t *attr)
 Event on message queue create and initialization (API) More...
 
void EvrRtxMessageQueueCreated (osMessageQueueId_t mq_id)
 Event on successful message queue create (Op) More...
 
void EvrRtxMessageQueueGetName (osMessageQueueId_t mq_id, const char *name)
 Event on message queue name retrieve(API) More...
 
void EvrRtxMessageQueuePut (osMessageQueueId_t mq_id, const void *msg_ptr, uint8_t msg_prio, uint32_t timeout)
 Event on message put (API) More...
 
void EvrRtxMessageQueuePutPending (osMessageQueueId_t mq_id, const void *msg_ptr, uint32_t timeout)
 Event on pending message put (Op) More...
 
void EvrRtxMessageQueuePutTimeout (osMessageQueueId_t mq_id)
 Event on message put timeout (Op) More...
 
void EvrRtxMessageQueueInsertPending (osMessageQueueId_t mq_id, const void *msg_ptr)
 Event on pending message insert (Op) More...
 
void EvrRtxMessageQueueInserted (osMessageQueueId_t mq_id, const void *msg_ptr)
 Event on successful message insert (Op) More...
 
void EvrRtxMessageQueueNotInserted (osMessageQueueId_t mq_id, const void *msg_ptr)
 Event on unsuccessful message insert (Op) More...
 
void EvrRtxMessageQueueGet (osMessageQueueId_t mq_id, void *msg_ptr, uint8_t *msg_prio, uint32_t timeout)
 Event on message get (API) More...
 
void EvrRtxMessageQueueGetPending (osMessageQueueId_t mq_id, void *msg_ptr, uint32_t timeout)
 Event on pending message get (Op) More...
 
void EvrRtxMessageQueueGetTimeout (osMessageQueueId_t mq_id)
 Event on message get timeout (Op) More...
 
void EvrRtxMessageQueueRetrieved (osMessageQueueId_t mq_id, void *msg_ptr)
 Event on successful message get (Op) More...
 
void EvrRtxMessageQueueNotRetrieved (osMessageQueueId_t mq_id, void *msg_ptr)
 Event on unsuccessful message get (Op) More...
 
void EvrRtxMessageQueueGetCapacity (osMessageQueueId_t mq_id, uint32_t capacity)
 Event on message queue capacity retrieve (API) More...
 
void EvrRtxMessageQueueGetMsgSize (osMessageQueueId_t mq_id, uint32_t msg_size)
 Event on message queue message size retrieve (API) More...
 
void EvrRtxMessageQueueGetCount (osMessageQueueId_t mq_id, uint32_t count)
 Event on message queue message count retrieve (API) More...
 
void EvrRtxMessageQueueGetSpace (osMessageQueueId_t mq_id, uint32_t space)
 Event on message queue message slots retrieve (API) More...
 
void EvrRtxMessageQueueReset (osMessageQueueId_t mq_id)
 Event on message queue reset (API) More...
 
void EvrRtxMessageQueueResetDone (osMessageQueueId_t mq_id)
 Event on successful message queue reset (Op) More...
 
void EvrRtxMessageQueueDelete (osMessageQueueId_t mq_id)
 Event on message queue delete (API) More...
 
void EvrRtxMessageQueueDestroyed (osMessageQueueId_t mq_id)
 Event on successful message queue delete (Op) More...
 

Description

Function Documentation

void EvrRtxMessageQueueError ( osMessageQueueId_t  mq_id,
int32_t  status 
)
Parameters
[in]mq_idmessage queue ID obtained by osMessageQueueNew or NULL when ID is unknown.
[in]statusextended execution status.

The event MessageQueueError is generated when Message Queue routines complete their execution due to an error.

The status parameter indicates the execution status and can be one of the osStatus_t codes or one of the extended execution status codes which are summarized in the table below.

Extended Status Code Description
osRtxErrorKernelNotReady Kernel scheduler is not in Ready state.
osRtxErrorKernelNotRunning Kernel scheduler is not executing - there is no running thread.
osRtxErrorInvalidControlBlock Object control block with invalid alignment or size was specified.
osRtxErrorInvalidDataMemory Object data memory with invalid alignment or size was specified.
osRtxErrorInvalidThreadStack Thread stack memory with invalid alignment or size was specified.
osRtxErrorInvalidPriority Invalid thread priority was specified.
osRtxErrorThreadNotJoinable Specified thread is not joinable.
osRtxErrorMutexNotOwned Specified mutex is not owned by the current running thread.
osRtxErrorMutexNotLocked Specified mutex is not locked.
osRtxErrorMutexLockLimit Maximum number of recursive mutex locks reached.
osRtxErrorSemaphoreCountLimit Semaphore count limit reached.
osRtxErrorTZ_InitContext_S Secure context memory system initialization failed.
osRtxErrorTZ_AllocContext_S Secure context memory allocation failed.
osRtxErrorTZ_FreeContext_S Secure context memory deallocation failed.
osRtxErrorTZ_LoadContext_S Secure context load failed.
osRtxErrorTZ_SaveContext_S Secure context save failed.

Value in the Event Recorder shows:

  • mq_id : message queue ID.
  • status : execution status code.
void EvrRtxMessageQueueNew ( uint32_t  msg_count,
uint32_t  msg_size,
const osMessageQueueAttr_t attr 
)
Parameters
[in]msg_countmaximum number of messages in queue.
[in]msg_sizemaximum message size in bytes.
[in]attrmessage queue attributes; NULL: default values.

The event MessageQueueNew is generated when the function osMessageQueueNew is called.

Value in the Event Recorder shows:

  • msg_count : maximum number of messages in queue.
  • msg_size : maximum message size in bytes.
  • attr : memory address of Message Queue attributes or 0 when they are not specified.

In case when message queue attributes are provided in the API call they are also detailed in the Event Recorder.

void EvrRtxMessageQueueCreated ( osMessageQueueId_t  mq_id)
Parameters
[in]mq_idmessage queue ID obtained by osMessageQueueNew.

The event MessageQueueCreated is generated when the function osMessageQueueNew successfully creates a message queue object.

Value in the Event Recorder shows:

  • mq_id : message queue ID.
void EvrRtxMessageQueueGetName ( osMessageQueueId_t  mq_id,
const char *  name 
)
Parameters
[in]mq_idmessage queue ID obtained by osMessageQueueNew.
[in]namepointer to message queue object name.

The event MessageQueueGetName is generated when the function osMessageQueueGetName is called and its execution result is known.

Value in the Event Recorder shows:

  • mq_id : message queue ID.
  • name : retrieved memory address of name string (0 in case of a failure).
void EvrRtxMessageQueuePut ( osMessageQueueId_t  mq_id,
const void *  msg_ptr,
uint8_t  msg_prio,
uint32_t  timeout 
)
Parameters
[in]mq_idmessage queue ID obtained by osMessageQueueNew.
[in]msg_ptrpointer to buffer with message to put into a queue.
[in]msg_priomessage priority.
[in]timeoutTimeout Value or 0 in case of no time-out.

The event MessageQueuePut is generated when the function osMessageQueuePut is called.

Value in the Event Recorder shows:

  • mq_id : message queue ID.
  • msg_ptr : memory address of message buffer.
  • msg_prio : message priority.
  • timeout : Timeout Value.
void EvrRtxMessageQueuePutPending ( osMessageQueueId_t  mq_id,
const void *  msg_ptr,
uint32_t  timeout 
)
Parameters
[in]mq_idmessage queue ID obtained by osMessageQueueNew.
[in]msg_ptrpointer to buffer with message to put into a queue.
[in]timeoutTimeout Value or 0 in case of no time-out.

The event MessageQueuePutPending is generated when the function osMessageQueuePut starts waiting to put message into the queue.

Value in the Event Recorder shows:

  • mq_id : message queue ID.
  • msg_ptr : memory address of message buffer.
  • timeout : Timeout Value.
void EvrRtxMessageQueuePutTimeout ( osMessageQueueId_t  mq_id)
Parameters
[in]mq_idmessage queue ID obtained by osMessageQueueNew.

The event MessageQueuePutTimeout is generated when the function osMessageQueuePut fails to insert a message into the queue until timeout expires.

Value in the Event Recorder shows:

  • mq_id : message queue ID.
void EvrRtxMessageQueueInsertPending ( osMessageQueueId_t  mq_id,
const void *  msg_ptr 
)
Parameters
[in]mq_idmessage queue ID obtained by osMessageQueueNew.
[in]msg_ptrpointer to buffer with message to put into a queue.

The event MessageQueueInsertPending is generated when the function osMessageQueuePut is called from ISR and message is registered to be put into the queue.

Value in the Event Recorder shows:

  • mq_id : message queue ID.
  • msg_ptr : memory address of message buffer.
void EvrRtxMessageQueueInserted ( osMessageQueueId_t  mq_id,
const void *  msg_ptr 
)
Parameters
[in]mq_idmessage queue ID obtained by osMessageQueueNew.
[in]msg_ptrpointer to buffer with message to put into a queue.

The event MessageQueueInserted is generated when a message is successfully inserted into the queue.

Value in the Event Recorder shows:

  • mq_id : message queue ID.
  • msg_ptr : memory address of message buffer.
void EvrRtxMessageQueueNotInserted ( osMessageQueueId_t  mq_id,
const void *  msg_ptr 
)
Parameters
[in]mq_idmessage queue ID obtained by osMessageQueueNew.
[in]msg_ptrpointer to buffer with message to put into a queue.

The event MessageQueueNotInserted is generated when the function osMessageQueuePut fails to insert a message into the queue. Usually this happens when queue is out of memory.

Value in the Event Recorder shows:

  • mq_id : message queue ID.
  • msg_ptr : memory address of message buffer.
void EvrRtxMessageQueueGet ( osMessageQueueId_t  mq_id,
void *  msg_ptr,
uint8_t *  msg_prio,
uint32_t  timeout 
)
Parameters
[in]mq_idmessage queue ID obtained by osMessageQueueNew.
[in]msg_ptrpointer to buffer for message to get from a queue.
[in]msg_priomessage priority.
[in]timeoutTimeout Value or 0 in case of no time-out.

The event MessageQueueGet is generated when the function osMessageQueueGet is called.

Value in the Event Recorder shows:

  • mq_id : message queue ID.
  • msg_ptr : memory address of buffer for message.
  • msg_prio : memory address of buffer for message priority.
  • timeout : Timeout Value.
void EvrRtxMessageQueueGetPending ( osMessageQueueId_t  mq_id,
void *  msg_ptr,
uint32_t  timeout 
)
Parameters
[in]mq_idmessage queue ID obtained by osMessageQueueNew.
[in]msg_ptrpointer to buffer for message to get from a queue.
[in]timeoutTimeout Value or 0 in case of no time-out.

The event MessageQueueGetPending is generated when the function osMessageQueueGet starts waiting for message to be retrieved from the queue.

Value in the Event Recorder shows:

  • mq_id : message queue ID.
  • msg_ptr : memory address of buffer for message.
  • timeout : Timeout Value.
void EvrRtxMessageQueueGetTimeout ( osMessageQueueId_t  mq_id)
Parameters
[in]mq_idmessage queue ID obtained by osMessageQueueNew.

The event MessageQueueGetTimeout is generated when the function osMessageQueueGet is called and there is no message available in queue until timeout expires.

Value in the Event Recorder shows:

  • mq_id : message queue ID.
void EvrRtxMessageQueueRetrieved ( osMessageQueueId_t  mq_id,
void *  msg_ptr 
)
Parameters
[in]mq_idmessage queue ID obtained by osMessageQueueNew.
[in]msg_ptrpointer to buffer for message to get from a queue.

The event MessageQueueRetrieved is generated when message is retrieved from the message queue.

Value in the Event Recorder shows:

  • mq_id : message queue ID.
  • msg_ptr : memory address of buffer for message.
void EvrRtxMessageQueueNotRetrieved ( osMessageQueueId_t  mq_id,
void *  msg_ptr 
)
Parameters
[in]mq_idmessage queue ID obtained by osMessageQueueNew.
[in]msg_ptrpointer to buffer for message to get from a queue.

The event MessageQueueNotRetrieved is generated when the function osMessageQueueGet is called without the wait timeout and there is no message available in queue.

Value in the Event Recorder shows:

  • mq_id : message queue ID.
  • msg_ptr : memory address of buffer for message.
void EvrRtxMessageQueueGetCapacity ( osMessageQueueId_t  mq_id,
uint32_t  capacity 
)
Parameters
[in]mq_idmessage queue ID obtained by osMessageQueueNew.
[in]capacitymaximum number of messages.

The event MessageQueueGetCapacity is generated when the function osMessageQueueGetCapacity is called and its execution result is known.

Value in the Event Recorder shows:

  • mq_id : message queue ID.
  • capacity : retrieved maximum number of messages (0 in case of a failure).
void EvrRtxMessageQueueGetMsgSize ( osMessageQueueId_t  mq_id,
uint32_t  msg_size 
)
Parameters
[in]mq_idmessage queue ID obtained by osMessageQueueNew.
[in]msg_sizemaximum message size in bytes.

The event MessageQueueGetMsgSize is generated when the function osMessageQueueGetMsgSize is called and its execution result is known.

Value in the Event Recorder shows:

  • mq_id : message queue ID.
  • msg_size : retrieved maximum message size in bytes (0 in case of a failure).
void EvrRtxMessageQueueGetCount ( osMessageQueueId_t  mq_id,
uint32_t  count 
)
Parameters
[in]mq_idmessage queue ID obtained by osMessageQueueNew.
[in]countnumber of queued messages.

The event MessageQueueGetCount is generated when the function osMessageQueueGetCount is called and its execution result is known.

Value in the Event Recorder shows:

  • mq_id : message queue ID.
  • count : retrieved number of queued messages (0 in case of a failure).
void EvrRtxMessageQueueGetSpace ( osMessageQueueId_t  mq_id,
uint32_t  space 
)
Parameters
[in]mq_idmessage queue ID obtained by osMessageQueueNew.
[in]spacenumber of available slots for messages.

The event MessageQueueGetSpace is generated when the function osMessageQueueGetSpace is called and its execution result is known.

Value in the Event Recorder shows:

  • mq_id : message queue ID.
  • space : retrieved number of available slots for messages (0 in case of a failure).
void EvrRtxMessageQueueReset ( osMessageQueueId_t  mq_id)
Parameters
[in]mq_idmessage queue ID obtained by osMessageQueueNew.

The event MessageQueueReset is generated when the function osMessageQueueReset is called.

Value in the Event Recorder shows:

  • mq_id : message queue ID.
void EvrRtxMessageQueueResetDone ( osMessageQueueId_t  mq_id)
Parameters
[in]mq_idmessage queue ID obtained by osMessageQueueNew.

The event MessageQueueResetDone is generated when the function osMessageQueueReset successfully completes message queue reset.

Value in the Event Recorder shows:

  • mq_id : message queue ID.
void EvrRtxMessageQueueDelete ( osMessageQueueId_t  mq_id)
Parameters
[in]mq_idmessage queue ID obtained by osMessageQueueNew.

The event MessageQueueDelete is generated when the function osMessageQueueDelete is called.

Value in the Event Recorder shows:

  • mq_id : message queue ID.
void EvrRtxMessageQueueDestroyed ( osMessageQueueId_t  mq_id)
Parameters
[in]mq_idmessage queue ID obtained by osMessageQueueNew.

The event MessageQueueDestroyed is generated when the function osMessageQueueDelete successfully deletes the message queue object.

Value in the Event Recorder shows:

  • mq_id : message queue ID.