信號量、郵箱、隊列與事件

信號量,郵箱,隊列的不同在于它們發(fā)送的內(nèi)容不同。

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、麻栗坡網(wǎng)絡(luò)推廣、小程序設(shè)計、麻栗坡網(wǎng)絡(luò)營銷、麻栗坡企業(yè)策劃、麻栗坡品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們大的嘉獎;創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供麻栗坡建站搭建服務(wù),24小時服務(wù)熱線:18982081108,官方網(wǎng)址:muchs.cn

信號量是一個觸發(fā)信號,也是一個計數(shù)器,等待接收信號的任務(wù)一般只有接收到信號才可以執(zhí)行,否則任務(wù)一直暫停。

郵箱是信號量的擴展,相當于把一個指針定義的變量從一個任務(wù)傳遞到另一個或多個任務(wù)中去,這個指針是先發(fā)到郵箱,然后等待任務(wù)從郵箱里提取指針,這也就傳遞了指針指向的具體變量值。

隊列是多個郵箱的數(shù)組,可以看做是個指針數(shù)組,任務(wù)之間可以按照一定順序以指針定義的變量來傳遞,即是發(fā)送一個個指針給任務(wù),任務(wù)獲得指針,來處理指向的變量。這個方式有先進先出,先進后出。

信號量就是給某個任務(wù)傳遞一個數(shù)值,基本作用是提示接收該信號量的任務(wù)什么時候可以執(zhí)行。

消息郵箱就是由某個任務(wù)傳遞一個指針(內(nèi)存上指針指向的一片區(qū)域的變量類型基本相同)給一個或多個任務(wù)。

消息隊列就是某個任務(wù)傳遞一堆指針(指針數(shù)組,數(shù)組中每個指針指向的變量類型可以不同)給一個或多個任務(wù)。

事件就是發(fā)生了一件事情,接下來要觸發(fā)某種動作。例如,收到了一個信號量或消息隊列,或者是定時任務(wù)到要觸發(fā)某種任務(wù)要運行。

在μC/OS-II中總共有34個,而且每種事件具有的管理函數(shù)數(shù)目不同。但是所有的事件都有類似的6個函數(shù),它們是所有事件的基本功能,其函數(shù)名類似,使用方法也類似,詳細函數(shù)見下表。

任何一個事件,必須先創(chuàng)建后使用。創(chuàng)建事件是通過調(diào)用函數(shù)OS???Create()實現(xiàn)的,其中???為事件的類型。創(chuàng)建事件可以在main()函數(shù)中,但更多的是在任務(wù)初始化部分。使用方法如下:

在嵌入式系統(tǒng)中,事件是靜態(tài)使用的,即創(chuàng)建后永遠不刪除。但有時候需要動態(tài)使用,即根據(jù)需要創(chuàng)建和刪除事件,此時創(chuàng)建事件就是在任務(wù)的事件執(zhí)行代碼中,使用方法如下:

要掌握事件函數(shù)在中斷服務(wù)程序中的調(diào)用規(guī)則,我們必須清楚中斷服務(wù)有哪些特點。

下面給出事件在中斷服務(wù)程序中使用方法,假設(shè)Task0任務(wù)接收ISR發(fā)送的消息,任務(wù)代碼如下:

注意:

1.中斷服務(wù)程序一般不會調(diào)用建立和刪除事件函數(shù),否則要么沒有起到事件的作用,要么程序很復(fù)雜;

2.中斷服務(wù)程序不能調(diào)用等待事件的函數(shù),否則可能造成程序崩潰,可以調(diào)用無等待獲得事件函數(shù)獲得信號,但事實上,在中斷中調(diào)用無等待獲得事件的情況都很少。

網(wǎng)站名稱:信號量、郵箱、隊列與事件
本文地址:http://muchs.cn/article12/cheodc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、微信公眾號、ChatGPT面包屑導(dǎo)航、搜索引擎優(yōu)化、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)