freertos知識點筆記——隊列、二值信號量、計數信號量



隊列
1、隊列queue通常用於任務之間的通信,一個任務寫緩存,另一個任務讀緩存。
隊列還會有等待時間,
2、阻塞超時時間。如果在發送時隊列已滿,這個時間即是任務處於阻塞態等待隊列空間有效的最長等待時間。
如 果 xTicksToWait 設 為 0 , 並 且 隊 列 已 滿 , 則xQueueSendToFront()與xQueueSendToBack()均會立即返回。
3、如果在接收時隊列為空,則這個時間是任務處於阻塞狀態以等待隊列數據有效的最長等待時間。
如果 xTicksToWait 設為 0,並且隊列為空,則 xQueueRecieve()與 xQueuePeek()均會立即返回。

信號量
二值信號量主要用於任務同步,二值信號量可以在某個特殊的中斷發生時,讓任務解除阻塞,相當於讓任務與中斷同步。中斷give,任務take。適用於中斷頻率比較底的同步當中。
計數信號量
一個二值信號量最多只可以鎖存一個中斷事件。在鎖存的事件還未被處理之前,如果還有中斷事件發生,那么后續發生的中斷事件將會丟失。如果用計數信號量代替二值信號量,那么,這種丟中斷的情形將可以避免。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM