osSemaphoreRelease() - выпуск токена семафора в CMSIS-RTOS2

Выпускает токена семафора и увеличивает счетчик токена на единицу до значения, не больше максимального количества токенов.

osStatus_t  osSemaphoreRelease (osSemaphoreId_t  semaphore_id)

Параметры

semaphore_id
semaphore ID obtained by osSemaphoreNew()
Идентификатор семафора, полученный с помощью функции osSemaphoreNew().
typedef  void  *osSemaphoreId_t;



Возвращаемое значение

osStatus_t
status code that indicates the execution status of the function
Код состояния как индикатор выполнения функции.

Возможные возвращаемые значения:

 osOK :  токен семафора был выпущен и количество токенов увеличилось на один;

 osErrorParameter :  неверно указан идентификатор семафора (semaphore_id): ошибка имени или NULL;

 osErrorResource :  токен не может быть выпущен из-за превышения максимального количества токенов;

 osErrorSafetyClass :  класс безопасности вызывающей задачи ниже, чем класс безопасности указанного семафора.




Описание

Функция osSemaphoreRelease() выпускает токен для семафора, указанного в параметре semaphore_id и увеличивает счетчик количества токенов.

Токены могут быть выпущены только до максимального количества, указанного во время создания функцией osSemaphoreNew().

Как только токен выпущен, задачи, ожидающие его, переходят в состояние готовности (READY).

Функция osSemaphoreRelease() может быть вызвана из процедуры обработки прерывания (ISR - Interrupt Service Routines).