看门狗软件复位
发布时间:2008/12/26 0:00:00 访问次数:711
看门狗软件复位
看门狗复位电路主要是利用arm正常工作时,定时复位计数器,使得计数器的值不超过某一值;当arm不能正常工作时,由于计数器不能被复位,因此其计数会超过某一值,从而产生复位脉冲,使得arm恢复正常工作状态。
看门狗复位电路的可靠性主要取决于软件设计,即将定时向复位电路发出脉冲的程序放在何处,在一般设计中,将此段程序放在定时器中断服务子程序中。然而,有时这种设计仍然会引起程序工作不正常,原因主要是,当程序异常发生在定时器初始化及开中断之后时,这种情况就有可能不能由watch dog复位电路校正回来。
因为定时器中断一直在产生,即使程序工作不正常,watch dog也能被正常复位。为此可以使用定时器加预设的设计方法,即在初始化时压入堆栈一个地址,在此地址内执行的是一条关中断和一条死循环语句。在所有不被程序代码占用的地址尽可能地用子程序返回指令代替,这样,当程序异常后,其进入陷阱的可能性将大大增加。而一旦进入陷阱,定时器就会停止工作并且关闭中断,从而使watch dog复位电路产生一个复位脉冲将arm复位。
看门狗应用程序如下所示。
欢迎转载,信息来源维库电子市场网(www.dzsc.com)
看门狗软件复位
看门狗复位电路主要是利用arm正常工作时,定时复位计数器,使得计数器的值不超过某一值;当arm不能正常工作时,由于计数器不能被复位,因此其计数会超过某一值,从而产生复位脉冲,使得arm恢复正常工作状态。
看门狗复位电路的可靠性主要取决于软件设计,即将定时向复位电路发出脉冲的程序放在何处,在一般设计中,将此段程序放在定时器中断服务子程序中。然而,有时这种设计仍然会引起程序工作不正常,原因主要是,当程序异常发生在定时器初始化及开中断之后时,这种情况就有可能不能由watch dog复位电路校正回来。
因为定时器中断一直在产生,即使程序工作不正常,watch dog也能被正常复位。为此可以使用定时器加预设的设计方法,即在初始化时压入堆栈一个地址,在此地址内执行的是一条关中断和一条死循环语句。在所有不被程序代码占用的地址尽可能地用子程序返回指令代替,这样,当程序异常后,其进入陷阱的可能性将大大增加。而一旦进入陷阱,定时器就会停止工作并且关闭中断,从而使watch dog复位电路产生一个复位脉冲将arm复位。
看门狗应用程序如下所示。
欢迎转载,信息来源维库电子市场网(www.dzsc.com)
热门点击