|
背景 芯片一般都会有看门狗,但毕竟是内部的,要是芯片真的出了问题,看门狗也可能会不工作的,所以外部看门狗是很必要的一部分。在i.mx283的核心板了有外部看门狗芯片,但是程序没有使用。 解决 外部看门狗,无非需要一个脉冲信号,在外部看门狗复位周期内发出,防止外部看门狗芯片发出复位信号,也就是一个周期的GPIO操作。 但是在bootloader与内核运行过程中,一般会有长时间的程序在运行,就需要在这些程序中加入“喂狗”程序。 对于bootloader: 1、在网络循环超时时,要加入“喂狗”,要是uboot中没有加入网络部分,这里就可以忽略了。 2、调试串口在等待输入时,也会超时,在这里加入“喂狗”程序。 3、NAND FLASH的读写、擦除部分要用很长的时间,这里要加入“喂狗”程序。 对于内核,就要改和容易一些,可以用一个定时器,做一个“喂狗”的函数,周期调用就行了,可以做成一个内核模块,编译进内核是,起动后再加载。 延伸 在一些稳定性要求较高的产品中,一般都会有外部看门狗,就是为了防止程序出错后,可以复位芯片,重新进入正常的运行状态,不会发生什么大的事故,尤其是在电力行业,这种外部看门狗用的很多。
|