OSFlagCreate
Description
C
reates and initialize an event flag group. µC/OS-III allows the user to create an unlimited number of event flag groups (limited only by the amount of RAM in the system).
Files
os.h/os_flag.c
Prototype
void OSFlagCreate (OS_FLAG_GRP *p_grp, CPU_CHAR *p_name, OS_FLAGS flags, OS_ERR *p_err)
Arguments
p_grp
This is a pointer to an event flag group that must be allocated in the application. The user will need to declare a “global” variable as shown, and pass a pointer to this variable to OSFlagCreate()
:
OS_FLAG_GRP MyEventFlag;
p_name
This is a pointer to an ASCII string used for the name of the event flag group. The name can be displayed by debuggers or by µC/Probe.
flags
This
contains the initial value of the flags to store in the event flag group. Typically, you would set all flags to 0
events correspond to set bits and all 1
s if events correspond to cleared bits.
p_err
This
is a pointer to a variable that is used to hold an error code. The error code can be one of the following:
OS_ERR_NONE
If the call is successful and the event flag group has been created.
OS_ERR_CREATE_ISR
If OS_CFG_CALLED_FROM_ISR_CHK_EN
set to DEF_ENABLED
in os_cfg.h
: If attempting to create an event flag group from an ISR, w is not allowed.
OS_ERR_ILLEGAL_CREATE_RUN_TIME
If OS_SAFETY_CRITICAL_IEC61508
is defined: you called this after calling OSStart()
and thus you are no longer allowed to create additional kernel objects.
OS_ERR_OBJ_PTR_NULL
If OS_CFG_ARG_CHK_EN
is set to DEF_ENABLED
in os_cfg.h
: If p_grp
is a NULL
pointer.
Returned Values
None
Required Configuration
OS_CFG_FLAG_EN
must be enabled in os_cfg.h
. Refer to uC-OS-III Configuration Manual.
Callers
Application.
Notes/Warnings
- Event flag groups must be created by this function before they can be used by the other event flag group services.
Example Usage
OS_FLAG_GRP EngineStatus; void main (void) { OS_ERR err; OSInit(&err); /* Initialize µC/OS-III */ : : OSFlagCreate(&EngineStatus, "Engine Status", (OS_FLAGS)0, &err); /* Create a flag grp containing the engine's status */ /* Check "err" */ : : OSStart(); /* Start Multitasking */