<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 基于μC/OS-Ⅲ的多任務(wù)間郵箱機(jī)制分析與應(yīng)用

          基于μC/OS-Ⅲ的多任務(wù)間郵箱機(jī)制分析與應(yīng)用

          作者: 時(shí)間:2013-06-14 來源:網(wǎng)絡(luò) 收藏

          3 的靈活
          3
          1 用作為二值信號(hào)量
          可以當(dāng)作二值信號(hào)量用,郵箱中有消息表示資源可以使用,而空郵箱表示資源已經(jīng)被其他資源占用。首先,在初始化時(shí)將郵箱設(shè)置為一個(gè)非空指針(eg.void*1),這樣,一個(gè)可以調(diào)用OSMboxPend()函數(shù)請求信號(hào)量,然后通過調(diào)用OSMboxPost()函數(shù)釋放信號(hào)量。若只需要二值信號(hào)量和郵箱,采用這種方法可以節(jié)省代碼空間。此時(shí),需將OS_MBOX_EN置1,而將OS_SEM_EN清0,即只用郵箱,而不是同時(shí)使用郵箱和信號(hào)量。同樣,給出了一個(gè)郵箱傳遞二值信號(hào)量的簡單示例。
          e.JPG
          3.2 郵箱實(shí)現(xiàn)延時(shí),而不使用OSTimeDly()
          郵箱的超時(shí)等待功能可以用作延時(shí),模仿TimeDly()函數(shù)功能。示例代碼如下:
          f.JPG
          g.JPG
          在程序執(zhí)行過程中,若在指定的時(shí)間TIMEOUT內(nèi)沒有消息到來,則TaskC繼續(xù)執(zhí)行,這顯然與OSTimeDly(TIMEOUT)功能類似;但是,如果TaskD在指定的時(shí)間結(jié)束之前,向郵箱發(fā)送一個(gè)dummy消息,則可以中止1中的延時(shí),使TaskC提前繼續(xù)執(zhí)行,這與調(diào)用函數(shù)OSTimeDly Res ume()的功能一致。

          4 結(jié)語
          本文嵌入式操作系統(tǒng)μC/Ⅲ探討了郵箱在間通信中的方法及注意事項(xiàng),了各郵箱函數(shù)的關(guān)系及使能/屏蔽方法,并給出示例實(shí)現(xiàn)2個(gè)任務(wù)的全雙工通信;在此基礎(chǔ)上,還研究了郵箱在二值信號(hào)量和延時(shí)功能中的靈活,并給出實(shí)例代碼驗(yàn)證,這在嵌入式系統(tǒng)開發(fā)過程中有一定的參考價(jià)值。

          本文引用地址:http://www.ex-cimer.com/article/153463.htm

          上一頁 1 2 3 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();