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