What is difference between binary semaphore and mutex?
The differences are: 1) Mutex can be used only for mutual exclusion, while binary can be used of mutual exclusion as well as synchronisation. 2) Mutex can be given only by the task that took it. 3) Mutex cannot be given from an ISR. 4) Mutual-exclusion semaphores can be taken recursively. This means that the semaphore can be taken more than once by the task that holds it before finally being released. 5) Mutex provides a options for making the task that took it as DELETE_SAFE. This means, that the task cannot be deleted when it holds mutex.