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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 多任務系統(tǒng)看門狗的實現(xiàn)

          多任務系統(tǒng)看門狗的實現(xiàn)

          作者: 時間:2013-04-06 來源:網(wǎng)絡(luò) 收藏
          分硬件和軟件。硬件看門狗是利用一個定時器電路,其定時輸出連接到電路的復位端,程序在一定時間范圍內(nèi)對定時器清零(俗稱“喂狗”),因此程序正常工作時,定時器總不能溢出,也就不能產(chǎn)生。

          如果程序出現(xiàn)故障,不在定時周期內(nèi)復位看門狗,就使得看門狗定時器溢出產(chǎn)生并重啟系統(tǒng)。軟件看門狗原理上一樣,只是將硬件電路上的定時器用處理器的內(nèi)部定時器代替,這樣可以簡化硬件電路設(shè)計,但在可靠性方面不如硬件定時器,比如系統(tǒng)內(nèi)部定時器自身發(fā)生故障就無法檢測到。當然也有通過雙定時器相互監(jiān)視,這不僅加大系統(tǒng)開銷,也不能解決全部問題,比如中斷系統(tǒng)故障導致定時器中斷失效。

          看門狗本身不是用來解決系統(tǒng)出現(xiàn)的問題,在調(diào)試過程中發(fā)現(xiàn)的故障應該要查改設(shè)計本身的錯誤。加入看門狗目的是對一些程序潛在錯誤和惡劣環(huán)境干擾等因素導致系統(tǒng)死機而在無人干預情況下自動恢復系統(tǒng)正常工作狀態(tài)??撮T狗也不能完全避免故障造成的損失,畢竟從發(fā)現(xiàn)故障到系統(tǒng)復位恢復正常這段時間內(nèi)怠工。同時一些系統(tǒng)也需要復位前保護現(xiàn)場數(shù)據(jù),重啟后恢復現(xiàn)場數(shù)據(jù),這可能也需要一筆軟硬件的開銷。

          多任務系統(tǒng)看門狗的實現(xiàn)

          圖1:(a) 看門狗示意圖
          ;(b) 相應的看門狗復位邏輯圖。

            在單任務系統(tǒng)中看門狗工作原理如上所述,容易實現(xiàn)。在中情況稍為復雜。假如每個任務都像單任務系統(tǒng)那么做,如圖1(a)所示,只要有一個任務正常工作并定期“喂狗”,看門狗定時器就不會溢出。除非所有的任務都故障,才能使得看門狗定時器溢出而復位,如圖1(b)。

            而往往我們需要的是只要有一個任務故障,系統(tǒng)就要求復位?;蛘哌x擇幾個關(guān)鍵的任務接受監(jiān)視,只要一個任務出問題系統(tǒng)就要求復位,如圖2(a)所示,相應的看門狗復位邏輯如圖2(b)所示。

            在中通過創(chuàng)建一個監(jiān)視任務TaskMonitor,它的優(yōu)先級高于被監(jiān)視的任務群Task1、Task2...Taskn。TaskMonitor在Task1~Taskn正常工作情況下,一定時間內(nèi)對硬件看門狗定時器清零。如果被監(jiān)視任務群有一個Task_x出現(xiàn)故障,TaskMonitor就不對看門狗定時器清零,也就達到被監(jiān)視任務出現(xiàn)故障時系統(tǒng)自動重啟的目的。另外任務TaskMonitor自身出故障時,也不能及時對看門狗定時器清零,看門狗也能自動復位重啟。接下來需要解決一個問題是:監(jiān)視任務如何有效監(jiān)視被監(jiān)視的任務群。

          多任務系統(tǒng)看門狗的實現(xiàn)

          圖2:(a) 多任務系統(tǒng)看門狗示意圖;(b) 正確的看門狗復位邏輯圖。

            在TaskMonitor中定義一組結(jié)構(gòu)體來模擬看門狗定時器組,

            typedef STruct

            {

            UINT32 CurCnt, LastCnt;

            BOOL RunState;

            int taskID;

            } STRUCT_WATCH_DOG;


          上一頁 1 2 下一頁

          評論


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