新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 如何使用STM32的窗口看門狗

如何使用STM32的窗口看門狗

作者: 時間:2016-12-02 來源:網(wǎng)絡(luò) 收藏
32F的窗口看門狗中有一個7位的遞減計(jì)數(shù)器,它會在出現(xiàn)下述2種情況之一時產(chǎn)生看門狗復(fù)位:
1)當(dāng)計(jì)數(shù)器的數(shù)值從0x40減到0x3F時
2)當(dāng)刷新看門狗時計(jì)數(shù)器的數(shù)值大于某一設(shè)定數(shù)值時,此設(shè)定數(shù)值在WWDG_CFR寄存器定義
對于一般的看門狗,程序可以在它產(chǎn)生復(fù)位前的任意時刻刷新看門狗,但這有一個隱患,有可能程序跑亂了又跑回到正常的地方,或跑亂的程序正好執(zhí)行了刷新看門狗操作,這樣的情況下一般的看門狗就檢測不出來了;如果使用窗口看門狗,程序員可以根據(jù)程序正常執(zhí)行的時間設(shè)置刷新看門狗的一個時間窗口,保證不會提前刷新看門狗也不會滯后刷新看門狗,這樣可以檢測出程序沒有按照正常的路徑運(yùn)行非正常地跳過了某些程序段的情況。
WWDG與IWDG的主要區(qū)別是有一個窗口控制,WWDG的中斷是給你最后一次喂狗的機(jī)會,通常這個中斷不是讓你執(zhí)行喂狗操作的;一般進(jìn)到這個中斷時表示你在其它地方安排的喂狗操作不能奏效,而發(fā)生這種現(xiàn)象時,肯定是系統(tǒng)有問題了,或者是程序有Bug,或者是碰到了干擾,在這種情況下,這個中斷是為了讓你的程序在發(fā)生真正的看門狗復(fù)位前,有一個緊急處理的機(jī)會,如保存重要的數(shù)據(jù),或做系統(tǒng)剎車等操作。
由此看出,簡單地在WWDG中斷喂狗,既沒有發(fā)揮WWDG相對于IWDG的優(yōu)勢,又因?yàn)樵谥袛嘀形构范鵀橐院蟮漠a(chǎn)品留下了隱患。
注:通常的看門狗與STM32的IWDG特點(diǎn)是一樣的。


關(guān)鍵詞: STM32窗口看門

評論


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

關(guān)閉