WDT(看門狗,WatchDog Timer)是一個APB從外設(shè),可以用來防止由于SiFli芯片中的部件或程序沖突而導(dǎo)致的系統(tǒng)死機。 HCPU 和 LCPU 都有專用的WatchDog定時器。它可以生成中斷作為不可屏蔽中斷 (NMI) 或為子系統(tǒng)復(fù)位。WatchDog可以以獨立復(fù)位 LCPU 或 HCPU 子系統(tǒng)。芯片還提供一個系統(tǒng)級別的Watchdog(IWDT),可以復(fù)位整個芯片。
1.1 計數(shù)器
WatchDog有 2 個計數(shù)(count1 和 count2),從預(yù)設(shè)的超時值降序到零。計數(shù)器基于 32K 時鐘,每 1/32768 秒減一。 1。當計數(shù)器 count1 達到零時,根據(jù)選擇的輸出響應(yīng)模式,系統(tǒng)復(fù)位或中斷發(fā)生。用戶可以重新啟動計數(shù)器到其初始值,或停止它。重新啟動看門狗計數(shù)器的過程有時被稱為喂狗(Pet Watchdog)。
1.2 中斷
可以對WatchDog進行編程,使watchdog在count1 超時時產(chǎn)生中斷, 同時count2開始計數(shù)。如果中斷不被清理,在count2 超時的時候系統(tǒng)復(fù)位;如果它在第二次超時(count2 達到 0)之前清除中斷,count1被復(fù)位,同時count2復(fù)位,重新開始計數(shù)。
1.3 系統(tǒng)復(fù)位
WatchDog也可以被編程為直接產(chǎn)生系統(tǒng)復(fù)位。 HCPU 或 LCPU 子系統(tǒng)在計數(shù)器count1減為 0后復(fù)位。
以下代碼將啟動WatchDog定時器而不產(chǎn)生中斷。
以下代碼將啟動WatchDog定時器并在第一個計數(shù)器達到 0 后產(chǎn)生中斷。