信號量,郵箱,隊(duì)列的不同在于它們發(fā)送的內(nèi)容不同。
創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、麻栗坡網(wǎng)絡(luò)推廣、小程序設(shè)計(jì)、麻栗坡網(wǎng)絡(luò)營銷、麻栗坡企業(yè)策劃、麻栗坡品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供麻栗坡建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:aaarwkj.com信號量是一個(gè)觸發(fā)信號,也是一個(gè)計(jì)數(shù)器,等待接收信號的任務(wù)一般只有接收到信號才可以執(zhí)行,否則任務(wù)一直暫停。
郵箱是信號量的擴(kuò)展,相當(dāng)于把一個(gè)指針定義的變量從一個(gè)任務(wù)傳遞到另一個(gè)或多個(gè)任務(wù)中去,這個(gè)指針是先發(fā)到郵箱,然后等待任務(wù)從郵箱里提取指針,這也就傳遞了指針指向的具體變量值。
隊(duì)列是多個(gè)郵箱的數(shù)組,可以看做是個(gè)指針數(shù)組,任務(wù)之間可以按照一定順序以指針定義的變量來傳遞,即是發(fā)送一個(gè)個(gè)指針給任務(wù),任務(wù)獲得指針,來處理指向的變量。這個(gè)方式有先進(jìn)先出,先進(jìn)后出。
信號量就是給某個(gè)任務(wù)傳遞一個(gè)數(shù)值,基本作用是提示接收該信號量的任務(wù)什么時(shí)候可以執(zhí)行。
消息郵箱就是由某個(gè)任務(wù)傳遞一個(gè)指針(內(nèi)存上指針指向的一片區(qū)域的變量類型基本相同)給一個(gè)或多個(gè)任務(wù)。
消息隊(duì)列就是某個(gè)任務(wù)傳遞一堆指針(指針數(shù)組,數(shù)組中每個(gè)指針指向的變量類型可以不同)給一個(gè)或多個(gè)任務(wù)。
事件就是發(fā)生了一件事情,接下來要觸發(fā)某種動(dòng)作。例如,收到了一個(gè)信號量或消息隊(duì)列,或者是定時(shí)任務(wù)到要觸發(fā)某種任務(wù)要運(yùn)行。
在μC/OS-II中總共有34個(gè),而且每種事件具有的管理函數(shù)數(shù)目不同。但是所有的事件都有類似的6個(gè)函數(shù),它們是所有事件的基本功能,其函數(shù)名類似,使用方法也類似,詳細(xì)函數(shù)見下表。
任何一個(gè)事件,必須先創(chuàng)建后使用。創(chuàng)建事件是通過調(diào)用函數(shù)OS???Create()實(shí)現(xiàn)的,其中???為事件的類型。創(chuàng)建事件可以在main()函數(shù)中,但更多的是在任務(wù)初始化部分。使用方法如下:
在嵌入式系統(tǒng)中,事件是靜態(tài)使用的,即創(chuàng)建后永遠(yuǎn)不刪除。但有時(shí)候需要?jiǎng)討B(tài)使用,即根據(jù)需要?jiǎng)?chuàng)建和刪除事件,此時(shí)創(chuàng)建事件就是在任務(wù)的事件執(zhí)行代碼中,使用方法如下:
要掌握事件函數(shù)在中斷服務(wù)程序中的調(diào)用規(guī)則,我們必須清楚中斷服務(wù)有哪些特點(diǎn)。
下面給出事件在中斷服務(wù)程序中使用方法,假設(shè)Task0任務(wù)接收ISR發(fā)送的消息,任務(wù)代碼如下:
注意:
1.中斷服務(wù)程序一般不會(huì)調(diào)用建立和刪除事件函數(shù),否則要么沒有起到事件的作用,要么程序很復(fù)雜;
2.中斷服務(wù)程序不能調(diào)用等待事件的函數(shù),否則可能造成程序崩潰,可以調(diào)用無等待獲得事件函數(shù)獲得信號,但事實(shí)上,在中斷中調(diào)用無等待獲得事件的情況都很少。
網(wǎng)站名稱:信號量、郵箱、隊(duì)列與事件
本文地址:http://aaarwkj.com/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)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)