CC13xx Driver Library
[smph] Semaphore

Functions

void SMPHAcquire (uint32_t ui32Semaphore)
 Acquire a semaphore. More...
 
static bool SMPHTryAcquire (uint32_t ui32Semaphore)
 Try to Acquire a semaphore. More...
 
static void SMPHRelease (uint32_t ui32Semaphore)
 Release a semaphore. More...
 

Detailed Description

The MCU Semaphore offers 32 semaphores that each can be claimed and released in an atomic operation. One and only one semaphore can be handled during a transaction.

Claiming a semaphore causes subsequent claims/reads to return '0' (i.e. "not available"). How the semaphores are used and respected is decided by software.

API

The API functions can be grouped like this:

Semaphore acquire:

Semaphore release:

Function Documentation

void SMPHAcquire ( uint32_t  ui32Semaphore)

Acquire a semaphore.

This function acquires the given semaphore, blocking the call until the semaphore is available.

Parameters
ui32Semaphoreis the semaphore number.
Returns
None

Definition at line 58 of file smph.c.

static void SMPHRelease ( uint32_t  ui32Semaphore)
inlinestatic

Release a semaphore.

This function releases the given semaphore.

Note
It is up to the application to provide the convention for clearing semaphore.
Parameters
ui32Semaphoreis the semaphore number.
Returns
None

Definition at line 244 of file smph.h.

static bool SMPHTryAcquire ( uint32_t  ui32Semaphore)
inlinestatic

Try to Acquire a semaphore.

This function tries to acquire the given semaphore, if the semaphore could not be claimed the function returns false.

Parameters
ui32Semaphoreis the semaphore number.
Returns
Returns if a semaphore was acquired
  • true : Semaphore acquired.
  • false : Semaphore not acquired.

Definition at line 176 of file smph.h.

Macro Definition Documentation

#define SMPH_0   0

Definition at line 100 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_1   1

Definition at line 101 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_10   10

Definition at line 110 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_11   11

Definition at line 111 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_12   12

Definition at line 112 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_13   13

Definition at line 113 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_14   14

Definition at line 114 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_15   15

Definition at line 115 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_16   16

Definition at line 116 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_17   17

Definition at line 117 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_18   18

Definition at line 118 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_19   19

Definition at line 119 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_2   2

Definition at line 102 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_20   20

Definition at line 120 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_21   21

Definition at line 121 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_22   22

Definition at line 122 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_23   23

Definition at line 123 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_24   24

Definition at line 124 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_25   25

Definition at line 125 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_26   26

Definition at line 126 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_27   27

Definition at line 127 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_28   28

Definition at line 128 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_29   29

Definition at line 129 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_3   3

Definition at line 103 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_30   30

Definition at line 130 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_31   31

Definition at line 131 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_4   4

Definition at line 104 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_5   5

Definition at line 105 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_6   6

Definition at line 106 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_7   7

Definition at line 107 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_8   8

Definition at line 108 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_9   9

Definition at line 109 of file smph.h.

Referenced by SMPHAcquire(), SMPHRelease(), and SMPHTryAcquire().

#define SMPH_CLAIMED   0x00000000

Definition at line 92 of file smph.h.

Referenced by SMPHAcquire().

#define SMPH_FREE   0x00000001

Definition at line 91 of file smph.h.

Referenced by SMPHRelease(), and SMPHTryAcquire().