FreeRTOS學習(1)---二值信號量API

信號量(semaphores)是20世紀60年代中期Edgser Dijkstra發明的。使用信號量的最初目的是為了給共享資源建立一個標誌,該標誌表示該共享資源被佔用情況。這樣,當一個任務在訪問共享資源之前,就可以先對這個標誌進行查詢,從而在瞭解資源被佔用的情況之後,再來決定自己的行為。

1,創建二值信號量

函數原型:vSemaphoreCreateBinary( xSemaphoreHandle xSemaphore );

參數說明:


FreeRTOS學習(1)---二值信號量API


2,發送(釋放)信號量

原型:xSemaphoreGive(SemaphoreHandle_t xSemaphore );

參數說明:


FreeRTOS學習(1)---二值信號量API


3,發送信號量,中斷保護

00001. 原型:

xSemaphoreGiveFromISR(SemaphoreHandle_t xSemaphore, signed BaseType_t *pxHigherPriorityTaskWoken )

參數說明:


FreeRTOS學習(1)---二值信號量API


4,獲取信號量

原型:xSemaphoreGive(SemaphoreHandle_t xSemaphore );

參數說明:


FreeRTOS學習(1)---二值信號量API


5,獲取信號量(中斷)

原型:

xSemaphoreGiveFromISR(SemaphoreHandle_t xSemaphore,

signed BaseType_t *pxHigherPriorityTaskWoken )

參數說明:


FreeRTOS學習(1)---二值信號量API


分享到:


相關文章: