Synchronization in RTX

Semaphore

Priority Inversion

ECB- Mutex

FreeRTOS

Mailbox

Message Queue

Used to manage and protect access to shared resources

Functions

osSemaphoreCreate()

osSemaphoreWait()

osSemaphoreRelease()

osSemaphoreDelete()

Used for resource management

Special version of a semaphore

Functions

osMutexNew()

osMutexGetName()

osMutexAcquire()

osMutexRelease()

osMutexGetOwner()

osMutexDelete()

Scheduling in which a high priority task is indirectly preempted by a lower priority task effectively inverting the relative priorities of the two tasks

Data buffer that can store a fixed number of messages of a fixed size

Number of buffers of a fixed or maximum size that is controlled by the RTOS and also a queue for tasks that are waiting for messages

Minimal ROM, RAM and processing overhead

Binary image in the region of 6K to 12K bytes

Very simple kernel