...
You would use this option if the task (or ISR) calling OSQPost()
will do additional posts, in this case, the caller does not want to reschedule until finished, and, multiple posts are to take effect simultaneously.
p_err
is a pointer to a variable that will contain an error code returned by this function.
...
If no tasks were waiting on the queue. In this case, the return value is also 0.
OS_ERR_INT_Q_FULL
If OS_CFG_ISR_POST_DEFERRED_EN
is to DEF_ENABLED
in os_cfg.h
: If the deferred interrupt post queue is full.
OS_ERR_MSG_POOL_EMPTY
If there are no more OS_MSG
structures to use to store the message.
...
If OS_CFG_ARG_CHK_EN
is set to 1
in DEF_ENABLED
in os_cfg.h
: if p_q
is a NULL
pointer.
...
If OS_CFG_OBJ_TYPE_CHK_EN
is set to 1
in DEF_ENABLED
in os_cfg.h
: if p_q
is not pointing to a message queue.
OS_ERR_OPT_INVALID
If OS_CFG_ARG_CHK_EN
is set to DEF_ENABLED
in os_cfg.h
: if a valid option is not specified.
OS_ERR_OS_NOT_RUNNING
If OS_CFG_INVALID_OS_CALLS_CHK_EN
is set to DEF_ENABLED
in os_cfg.h
: if µC/OS-III is not running yet.
OS_ERR_Q_MAX
If the queue is full and therefore cannot accept more messages.
...
OS_CFG_Q_EN
must be enabled in os_cfg.h
. Refer to uCµC-OS-III Configuration Manual.
Callers
Application and ISRs.
...