...
void OSQCreate (OS_Q *p_q,
...
CPU_CHAR *p_name,
...
OS_MSG_QTY max_qty,
...
OS_ERR *p_err)
...
...
File |
...
Called from |
...
Code enabled by |
...
|
...
Task or startup code |
...
|
...
OSQCreate()
creates a message queue. A message queue allows tasks or ISRs to send pointer-sized variables (messages) to one or more tasks. The meaning of the messages sent are application specific.anchor
Arguments
...
p_q
Anchor
is a pointer to the message queue control block. It is assumed that storage for the message queue will be allocated in the application. The user will need to declare a “global” variable as follows, and pass a pointer to this variable to OSQCreate()
:
...
OS_Q MyMsgQ;
...
p_name
is a pointer to an ASCII string used to name the message queue. The name can be displayed by debuggers or µC/Probe.
...
msg_qty
anchorindicates the maximum size of the message queue (must be non-zero). If the user intends to not limit the size of the queue, simply pass a very large number. Of course, if there are not enough OS_MSGs
in the pool of OS_MSGs
, the post call (i.e., OSQPost()
) will simply fail and an error code will indicate that there are no more OS_MSGs
to use.
...
p_err
Anchor
is a pointer to a variable that is used to hold an error code:
...
class | WebWorks_Indent_1 |
---|
...
OS_ERR_NONE
...
class | WebWorks_Indent_2 |
---|
...
if the call is successful and the mutex has been created.
...
...
OS_ERR_CREATE_ISR
...
class | WebWorks_Indent_2 |
---|
...
...
if OS_CFG_CALLED_FROM_ISR_CHK_EN
set to 1
in os_cfg.h
: if attempting to create the message queue from an ISR.
...
...
OS_ERR_OBJ_PTR_NULL
...
class | WebWorks_Indent_2 |
---|
...
if OS_CFG_ARG_CHK_EN
is set to 1
in os_cfg.h
: if p_q
is a NULL
pointer.
...
class | WebWorks_Indent_1 |
---|
...
OS_ERR_Q_SIZE
...
class | WebWorks_Indent_2 |
---|
...
if OS_CFG_ARG_CHK_EN
is set to 1
in os_cfg.h
: if the size specified is 0.
...
...
OS_ERR_ILLEGAL_CREATE_RUN_TIME
...
class | WebWorks_Indent_2 |
---|
...
...
if OS_SAFETY_CRITICAL_IEC61508
is defined: you called this after calling OSSafetyCriticalStart()
and thus you are no longer allowed to create additional kernel objects.
...
Returned Value
...
Notes/Warnings
...
Queues must be created before they are used. Anchor
Example
...
rowspan | 16 |
---|
...