void OSMutexCreate (OS_MUTEX *p_mutex,
CPU_CHAR *p_name,
OS_ERR *p_err)
File |
Called from |
Code enabled by |
---|---|---|
|
Task or startup code |
|
OSMutexCreate()
is used to create and initialize a mutex. A mutex is used to gain exclusive access to a resource.
Arguments
p_mutex
is a pointer to a mutex control block that must be allocated in the application. The user will need to declare a “global” variable as follows, and pass a pointer to this variable to OSMutexCreate()
:
OS_MUTEX MyMutex;
p_name
is a pointer to an ASCII string used to assign a name to the mutual exclusion semaphore. The name may be displayed by debuggers or µC/Probe.
p_err
is a pointer to a variable that is used to hold an error code:
OS_ERR_NONE
if the call is successful and the mutex has been created.
OS_ERR_CREATE_ISR
if OS_CFG_CALLED_FROM_ISR_CHK_EN
set to 1
in os_cfg.h
: if attempting to create a mutex from an ISR.
OS_ERR_OBJ_PTR_NULL
if OS_CFG_ARG_CHK_EN
is set to 1
in os_cfg.h
: if p_mutex
is a NULL
pointer.
OS_ERR_ILLEGAL_CREATE_RUN_TIME
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
None
Notes/Warnings
Mutexes must be created before they are used.