信號量,郵箱,隊列的不同在于它們發(fā)送的內(nèi)容不同。
創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于成都網(wǎng)站制作、成都網(wǎng)站建設、麻栗坡網(wǎng)絡推廣、小程序設計、麻栗坡網(wǎng)絡營銷、麻栗坡企業(yè)策劃、麻栗坡品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們大的嘉獎;創(chuàng)新互聯(lián)建站為所有大學生創(chuàng)業(yè)者提供麻栗坡建站搭建服務,24小時服務熱線:18982081108,官方網(wǎng)址:jinyejixie.com信號量是一個觸發(fā)信號,也是一個計數(shù)器,等待接收信號的任務一般只有接收到信號才可以執(zhí)行,否則任務一直暫停。
郵箱是信號量的擴展,相當于把一個指針定義的變量從一個任務傳遞到另一個或多個任務中去,這個指針是先發(fā)到郵箱,然后等待任務從郵箱里提取指針,這也就傳遞了指針指向的具體變量值。
隊列是多個郵箱的數(shù)組,可以看做是個指針數(shù)組,任務之間可以按照一定順序以指針定義的變量來傳遞,即是發(fā)送一個個指針給任務,任務獲得指針,來處理指向的變量。這個方式有先進先出,先進后出。
信號量就是給某個任務傳遞一個數(shù)值,基本作用是提示接收該信號量的任務什么時候可以執(zhí)行。
消息郵箱就是由某個任務傳遞一個指針(內(nèi)存上指針指向的一片區(qū)域的變量類型基本相同)給一個或多個任務。
消息隊列就是某個任務傳遞一堆指針(指針數(shù)組,數(shù)組中每個指針指向的變量類型可以不同)給一個或多個任務。
事件就是發(fā)生了一件事情,接下來要觸發(fā)某種動作。例如,收到了一個信號量或消息隊列,或者是定時任務到要觸發(fā)某種任務要運行。
在μ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ù)中,但更多的是在任務初始化部分。使用方法如下:
在嵌入式系統(tǒng)中,事件是靜態(tài)使用的,即創(chuàng)建后永遠不刪除。但有時候需要動態(tài)使用,即根據(jù)需要創(chuàng)建和刪除事件,此時創(chuàng)建事件就是在任務的事件執(zhí)行代碼中,使用方法如下:
要掌握事件函數(shù)在中斷服務程序中的調(diào)用規(guī)則,我們必須清楚中斷服務有哪些特點。
下面給出事件在中斷服務程序中使用方法,假設Task0任務接收ISR發(fā)送的消息,任務代碼如下:
注意:
1.中斷服務程序一般不會調(diào)用建立和刪除事件函數(shù),否則要么沒有起到事件的作用,要么程序很復雜;
2.中斷服務程序不能調(diào)用等待事件的函數(shù),否則可能造成程序崩潰,可以調(diào)用無等待獲得事件函數(shù)獲得信號,但事實上,在中斷中調(diào)用無等待獲得事件的情況都很少。
網(wǎng)站名稱:信號量、郵箱、隊列與事件
本文地址:http://jinyejixie.com/article12/cheodc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、微信公眾號、ChatGPT、面包屑導航、搜索引擎優(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)