WDT(看门狗,WatchDog Timer)是一个APB从外设,可以用来防止由于SiFli芯片中的部件或程序冲突而导致的系统死机。 HCPU 和 LCPU 都有专用的WatchDog定时器。它可以生成中断作为不可屏蔽中断 (NMI) 或为子系统复位。WatchDog可以以独立复位 LCPU 或 HCPU 子系统。芯片还提供一个系统级别的Watchdog(IWDT),可以复位整个芯片。
1.1 计数器
WatchDog有 2 个计数(count1 和 count2),从预设的超时值降序到零。计数器基于 32K 时钟,每 1/32768 秒减一。 1。当计数器 count1 达到零时,根据选择的输出响应模式,系统复位或中断发生。用户可以重新启动计数器到其初始值,或停止它。重新启动看门狗计数器的过程有时被称为喂狗(Pet Watchdog)。
1.2 中断
可以对WatchDog进行编程,使watchdog在count1 超时时产生中断, 同时count2开始计数。如果中断不被清理,在count2 超时的时候系统复位;如果它在第二次超时(count2 达到 0)之前清除中断,count1被复位,同时count2复位,重新开始计数。
1.3 系统复位
WatchDog也可以被编程为直接产生系统复位。 HCPU 或 LCPU 子系统在计数器count1减为 0后复位。
以下代码将启动WatchDog定时器而不产生中断。
以下代码将启动WatchDog定时器并在第一个计数器达到 0 后产生中断。