Can returning senmarphore carry data

anuradha123 wrote on Monday, March 28, 2011:

In FreeRTOS is there an API version of  “xSemaphoreGiveFromISR” which will allow the semaphore to return some value to the function in which it is returning?
That is think of a function is waiting for, I2C Event interrupts. Once an event (may be EV5) occurs it can be identified by reading status registers, and when the semaphore returns from ISR can it carry the details of which event was occurred to the waiting function?

Does OpenRTOS has this facility?


davedoors wrote on Monday, March 28, 2011:

Semaphores don’t carry data. Queues and semaphores are really the same thing. You could then use a queue in place of the semaphore, and post the data value to the queue (using an ISR safe queue send function) instead of using the semaphore give function. At the other end your task can block on a queue read instead of a semaphore take to receive the data value.