Un mutex est un sémaphore binaire, les fonctions de ce module stocke sa sous forme d'un bit d'un dans une variable xMutex.
Cela permet de gérer 8 mutex dans un octet au lieu d'un seul mais cela alourdit une peu la taille du code source.
void vMutexLockBit |
( |
xMutex * |
pxMutex, |
|
|
uint8_t |
ucMask |
|
) |
| |
Attend jusqu'à ce qu'un ou plusieurs bits d'un mutex soit libres et les verrouillent (P)
- Paramètres
-
pxMutex | pointeur sur le mutex |
ucMask | Masque du ou des bits concernés |
void vMutexUnlockBit |
( |
xMutex * |
pxMutex, |
|
|
uint8_t |
ucMask |
|
) |
| |
Libère un ou plusieurs bits d'un mutex (V)
- Paramètres
-
pxMutex | pointeur sur le mutex |
ucMask | Masque du ou des bits concernés |
- Exemples:
- battery/demo_battery.c.
void vMutexUntilBitUnlocked |
( |
xMutex * |
pxMutex, |
|
|
uint8_t |
ucMask |
|
) |
| |
Attend tant qu'un ou plusieurs bits d'un mutex sont verrouillés (P)
- Paramètres
-
pxMutex | pointeur sur le mutex |
ucMask | Masque du ou des bits concernés |
bool xMutexBitLocked |
( |
xMutex * |
pxMutex, |
|
|
uint8_t |
ucMask |
|
) |
| |
Teste si un ou plusieurs bits sont verrouillés.
- Paramètres
-
pxMutex | pointeur sur le mutex à attendre |
ucMask | Masque du ou des bits concernés |
- Renvoie
- false si tous les bits sont libres, true sinon.
int8_t xMutexTryLockBit |
( |
xMutex * |
pxMutex, |
|
|
uint8_t |
ucMask |
|
) |
| |
Variante non bloquante de vMutexLockBit()
- Paramètres
-
pxMutex | pointeur sur le mutex à attendre |
ucMask | Masque du ou des bits concernés |
- Renvoie
- 0 s'il a pu être verrouillé, différent de 0 si déjà verrouillé.
- Exemples:
- battery/demo_battery.c.