GCC_CLRWDT()是清理看门狗,底层实现原理看不到。
看门狗简介:
看门狗是一种用于监视和保护电子系统的硬件或软件机制。其原理基本上是通过定期收到系统的喂狗信号来确认系统正常运行,如果系统在规定的时间内没有提供该信号,看门狗将执行相应的操作,通常是重新启动系统,以恢复到一个已知的良好状态。
看门狗的基本原理:
1、看门狗定时器:看门狗通常包含一个内部计时器。在系统正常运行时,软件会定期(每隔几毫秒或几秒)向看门狗发送一个“喂狗”信号,表示系统仍在运行。
2、“喂狗信号”:软件在正常运行时会向看门狗发送一个特定的信号,这个信号高速看门狗系统依然正常。这个信号可以说写入特定寄存器、设定特殊的引脚状态等。
3、计时器复位:每次接收到“喂狗”信号时,看门狗的内部计时器被重置。如果在规定的时间内没有收到“喂狗”信号,计时器将溢出。
4、超时处理:当看门狗的计时溢出时,看门狗认为系统出现故障或停滞,此时,看门狗将执行一个预定义的操作,通常是重新启动整个系统,这由于与系统从潜在的故障中自动恢复
看门狗疑问:
既然看门狗溢出了,系统会重新启动来恢复正常,每隔一段时间喂一次狗,系统就会一直正常,从结果上来说,这不是多次一举吗?它这么设计的目的是什么?
答:看门狗设计的目的之一就是在系统出现问题、停滞或死机时能够自动恢复。防止程序跑飞的。如果程序跑飞了,可以自动重启,不能因为我故意不喂狗从而自动重启而判定看门狗没多大用