/
Mutual Exclusion Semaphores API Changes

Mutual Exclusion Semaphores API Changes

The table below shows the difference in API for mutual exclusion semaphore management.

Mutual Exclusion Semaphores API
µC/OS-II (os_mutex.c)µC/OS-III (os_mutex.c)Note
BOOLEAN
OSMutexAccept(
    OS_EVENT       *pevent,
    INT8U          *perr);

(1)
OS_EVENT *
OSMutexCreate(
    INT8U           prio,
    INT8U          *perr);
void
OSMutexCreate(
    OS_MUTEX   *p_mutex,
    CPU_CHAR   *p_name,
    OS_ERR     *p_err);
(2)
OS_EVENT *
OSMutexDel(
    OS_EVENT       *pevent,
    INT8U           opt,
    INT8U          *perr);
void
OSMutexDel(
    OS_MUTEX   *p_mutex,
    OS_OPT      opt,
    OS_ERR     *p_err);

void
OSMutexPend(
    OS_EVENT       *pevent,
    INT32U          timeout,
    INT8U          *perr);
void
OSMutexPend(
    OS_MUTEX   *p_mutex,
    OS_TICK     timeout,
    OS_OPT      opt,
    CPU_TS     *p_ts,
    OS_ERR     *p_err);
(3)

OS_OBJ_QTY
OSMutexPendAbort(
    OS_MUTEX   *p_mutex,
    OS_OPT      opt,
    OS_ERR     *p_err);

INT8U
OSMutexPost(
    OS_EVENT       *pevent);
void
OSMutexPost(
    OS_MUTEX   *p_mutex,
    OS_OPT      opt,
    OS_ERR     *p_err);

INT8U
OSMutexQuery(
    OS_EVENT       *pevent,
    OS_MUTEX_DATA  *p_mutex_data);

(4)

(1) In µC/OS-III, there is no “accept” API, since this feature is built into the OSMutexPend() by specifying the OS_OPT_PEND_NON_BLOCKING option.

(2) In µC/OS-II, OSMutexCreate() returns the address of an OS_EVENT, which is used as the “handle” to the message mailbox. In µC/OS-III, the application must allocate storage for an OS_MUTEX, which serves the same purpose as the OS_EVENT. The benefit in µC/OS-III is that it is not necessary to predetermine the number of mutual-exclusion semaphores at compile time.

(3) µC/OS-III returns additional information when a mutex is released. The releaser takes a snapshot of the current time stamp and stores it in the OS_MUTEX. The new owner of the mutex therefore knows when the mutex was released.

(4) µC/OS-III does not provide query services as they were rarely used.


Related content

Message Queues API Changes
Message Queues API Changes
Read with this
Mutual Exclusion Semaphore Internals
Mutual Exclusion Semaphore Internals
More like this
Semaphores API Changes
Semaphores API Changes
More like this
Mutual Exclusion Semaphores
Mutual Exclusion Semaphores
More like this
OSMutexPend
More like this
Mutual Exclusion Semaphores
Mutual Exclusion Semaphores
More like this