計數型信號量有下面兩種典型套用: 事件計數 在這種套用的情形下,事件處理程式會在每次事件發生時傳送信號量(增加信號量計數值),而任務處理程式會在每次處理事件時請求信號量(減少信號量計數值)。
基本介紹
- 中文名:使用已存在的佇列結構來創建計數型信號量
- 外文名:xSemaphoreCreateCounting
- 類型:事件計數 資源管理
- 計數值:事件發生與事件處理兩者間的差值
計數型信號量,參數,
計數型信號量
xSemaphoreHandle xSemaphoreCreateCounting( unsigned portBASE_TYPE uxMaxCount, unsigned portBASE_TYPE uxInitialCount )
使用已存在的佇列結構來創建計數型信號量。 計數型信號量有下面兩種典型套用: 事件計數 在這種套用的情形下,事件處理程式會在每次事件發生時傳送信號量(增加信號量計數值),而任務處理程式會在每次處理事件時請求信號量(減少信號量計數值)。因此計數值為事件發生與事件處理兩者間的差值,在這種情況下計數值初始化為0是合適的。
資源管理 在這種套用情形下,計數值指示出可用的資源數量。任務必須首先“請求”信號量來獲得資源的控制權--減少信號量計數值。當計數值降為0時表示沒有空閒資源。任務使用完資源後“返還”信號量--增加信號量計數值。在這種情況下計數值初始化為與最大的計數值相一致是合適的,這指示出所有的空閒資源。
參數
uxMaxCount | 可以達到的最大計數值。當信號量達到此值後將不能被“返還”。 |
uxInitialCount | 信號量創建時分配的初始值。 |