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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于VxWorks操作系統(tǒng)的通用定時器設(shè)計

          基于VxWorks操作系統(tǒng)的通用定時器設(shè)計

          作者: 時間:2014-05-13 來源:網(wǎng)絡(luò) 收藏

           

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

          中斷處理任務(wù)TimerSvrTask()主要用來處理已經(jīng)到時的節(jié)點。該任務(wù)生成后等待同步信號量,如果獲得該信號量,則從傳遞來的第一個節(jié)點開始遍歷所有timeLeft為0的節(jié)點,然后執(zhí)行節(jié)點對應(yīng)的函數(shù)或者釋放節(jié)點對應(yīng)的信號量,最后再根據(jù)到時節(jié)點的timerType判斷:若該定時節(jié)點為單次則把該節(jié)點設(shè)為不可用;若該定時節(jié)點為周期性的,則先將該節(jié)點從鏈表中取出,重新初始化剩余時間后再次插入鏈表中的恰當(dāng)位置。

          需要說明的是,基于輔助時鐘的通用需要CPU的一個時鐘資源,且輔助時鐘的使用會和調(diào)試工具SpyChart沖突,使用時應(yīng)特別注意。

          3 數(shù)據(jù)訪問的防沖突考慮

          由于定時節(jié)點鏈表以及程序中用到的其它全局變量相對所有的任務(wù)都是共享數(shù)據(jù),因此為保持數(shù)據(jù)使用的一致性,需要加以保護,以防止多個任務(wù)對共享數(shù)據(jù)的使用沖突。對于有輔助時鐘中斷服務(wù)程序參與的數(shù)據(jù),例如鏈表,其他任務(wù)在對鏈表操作前需要先禁止中斷,操作完畢后再允許中斷,以防出現(xiàn)中斷與任務(wù)的不一致問題;對于輔助時鐘中斷服務(wù)程序不參與的數(shù)據(jù),各任務(wù)對它的訪問采用互斥信號量方式即可。

          4 結(jié)束語

          當(dāng)前,基于輔助時鐘的通用已在某無人機發(fā)射裝置中的強實時命令傳遞、通訊數(shù)據(jù)幀收發(fā)以及目標系統(tǒng)狀態(tài)監(jiān)控方面得到了應(yīng)用,滿足了毫秒級的單次和周期交叉定時要求,效果良好。該機制對所用接口進行了封裝,使其具有了較好的繼承性和擴展性,為今后此類系統(tǒng)中的精確定時需求提供了方便。


          上一頁 1 2 下一頁

          關(guān)鍵詞: VxWorks 定時器

          評論


          相關(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); })();