关于看门狗

  imx6ull芯片内部自带看门狗定时器,在开启看门狗后,当系统发生故障时,将由看门狗超时喂狗而触发系统重启。开发板配套的出厂源码及固件已添加看门狗功能。

看门狗的启动

  在系统启动后,由文件系统执行 /etc/init.d/S15watchdog 服务来启动看门狗,看门狗默认超时时间为 60 秒, watchdog 服务的 -t 5 参数设置了每5秒喂一次狗。
  看门狗一旦开启后便不会停止,其将运行直至系统重新启动;即使 kill 掉 watchdog 服务进程,看门狗也不会停止,如果执行的 watchdog 服务被关闭,喂狗将转由内核驱动执行,内核将以超时时间的二分之一来定时执行喂狗操作。

看门狗功能测试

  分别在开启看门狗和不开启看门狗的情况下,让系统奔溃,验证系统是否会重启。

  • 开启看门狗的情况下,让内核奔溃,系统重启
  1. 开机自动运行 /etc/init.d/S15watchdog 服务;
  2. 执行 echo c > /proc/sysrq-trigger,让内核奔溃;
  3. 等待至多 60 秒,开发板将重启。
  • 不开启看门狗的情况,让内核奔溃,系统不会重启
  1. 将/etc/init.d/ 目录下的 S15watchdog 服务文件名变更为 X15watchdog 重启系统,开机后 watchdog 服务不会执行,看门狗不被启动;
  2. 执行 echo c > /proc/sysrq-trigger,让内核奔溃;
  3. 观察系统并不会因为内核奔溃而重启。
文档更新时间: 2021-04-09 21:39   作者:admin