新聞中心

        EEPW首頁 > 嵌入式系統 > 牛人業話 > ARM學習之---看門狗(WatchDog)

        ARM學習之---看門狗(WatchDog)

        作者: 時間:2016-08-05 來源:網絡 收藏

          WatchDog,中文為"",老外起的名字有時很有趣也很貼切,這些從事技術的老外對生活總是充滿了樂觀的態度,把工作當成樂趣而不要認為他是痛苦的事情,這樣才能把工作做好.否則就不要去做,天天做自己不喜歡的事情,其結果是很痛苦的.

        本文引用地址:http://www.104case.com/article/201608/295115.htm

          一樣,我總是喜歡用自己的理解而不是無聊的術語來講解我所理解的東西.

          WatchDog是為了能夠防止程序跑飛而使用的一種東西.如果你的程序沒有跑飛,那么你的程序會定時的去喂,如果你的程序跑飛了,那么就不會再去喂狗了,如果超過了喂狗的時間,那么狗就會自己生成一個信號來重新reset你的CPU,重新開始.這是一種在很重要的情況下防止系統跑飛的一種方法.一般的程序也許不需要,但在特殊的情況下可能會需要這種機制.

          我們在上一篇的圖中,第一個地址段就是為設置的.

          

         

          可以看一下實際的電路.SP706的(-RST)輸出低電平時會使LPC2478的CPU復位.對于PFI,-PFO兩個管腳來講,當PFI的電壓監控輸入低于1.25V時,-PF0會置為LOW.但因為PFI在這里接地,-PFO置空,因此沒有使用這一功能.

          因為-MR,-WDO相連接,因此當Vcc低于復位值,-RST將輸出200ms的LOW脈沖.并且如果WDI輸出保持高電平1.6s時,看門狗超時,-WDO將置為LOW,也就將-MR置低,一旦-MR置低,-RST便置低,也就將CPU復位.

          當WDI超過1.6s沒有來脈沖,也會導致-WDO輸出低電平,同理也會是-RST產生復位信號.

          在文檔中介紹超時時間是1.6s,電路中標識為1.2s.我也有點不理解,沒有細研究其原因.而控制看門狗的APB寄存器大概是這樣的Name Description Access ResetValue[1] Address

          WDMOD Watchdog mode register. This register contains

          the basic mode and status of the Watchdog Timer. R/W 0 0xE000 0000

          WDTC Watchdog timer constant register. This register

          determines the time-out value. R/W 0xFF 0xE000 0004

          WDFEED Watchdog feed sequence register. Writing 0xAA

          followed by 0x55 to this register reloads the

          Watchdog timer with the value contained in WDTC. WO NA 0xE000 0008

          WDTV Watchdog timer value register. This register

          reads out the current value of the Watchdog timer. RO 0xFF 0xE000 000C

          WDCLKSEL Watchdog clock source selection register. R/W 0 0xE000 0010

          讀書的時候,老師總是要求學生學好英語,學理工科的孩子總是不喜歡,沒辦法,自己看吧.

          看門狗我們也沒有必要把他研究得那么明白,講這東西只是講個道理,我也懶得把他解釋得完全正確,如果中間講的有問題,大家包涵,以便大家能夠理解硬件電路,寄存器以及程序之間的關系.實際上,我們按照參考設計去做就可以了,在應用中,改動看門狗的情況應該不多.



        關鍵詞: ARM 看門狗

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 丽江市| 岳阳市| 金山区| 新邵县| 义乌市| 马公市| 松潘县| 吴桥县| 诸城市| 锦屏县| 闽侯县| 建水县| 阿瓦提县| 西城区| 迁西县| 中超| 石河子市| 锡林浩特市| 崇明县| 拜泉县| 合作市| 凤凰县| 林口县| 吴忠市| 泗水县| 宁河县| 象州县| 迁安市| 滨州市| 祁连县| 扬州市| 灵山县| 富裕县| 博罗县| 久治县| 元氏县| 富阳市| 菏泽市| 曲松县| 贡嘎县| 当雄县|