我有一个运行 2.6 内核的处理器 AT91SAM9G20。看门狗在引导级别启用并配置 16 秒。看门狗模式寄存器只能配置一次。当代码在引导程序、引导加载程序或内核中挂起时,电路板将重新启动。但是一旦内核启动,即使没有在任何应用程序中刷新看门狗,板子也不会在 16 秒后重置,而是 15 分钟。
谁在刷新看门狗?
在我们的例子中,看门狗应该受到应用程序的影响,以便在我们的应用程序挂起时板可以重置。
这些是正在运行的进程:
1 root init
2 root [kthreadd]
3 root [ksoftirqd/0]
4 root [watchdog/0]
5 root [events/0]
6 root [khelper]
63 root [kblockd/0]
72 root [ksuspend_usbd]
78 root [khubd]
85 root [kmmcd]
107 root [pdflush]
108 root [pdflush]
109 root [kswapd0]
110 root [aio/0]
740 root [mtdblockd]
828 root [rpciod/0]
982 root [jffs2_gcd_mtd10]
1003 root /sbin/udevd -d
1145 daemon portmap
1158 dbus dbus-daemon --system
1178 root /usr/sbin/ifplugd -i eth0 -fwI -u0 -d5 -l -q
1190 root /usr/sbin/ifplugd -i eth1 -fwI -u0 -d5 -l -q
1221 default avahi-daemon: running [SP14.local]
1226 root /usr/sbin/dropbear
1246 root /root/bin/host_app
1254 root /root/bin/mini_httpd -c *.cgi -d /root/bin -u root -E /root/bin/
1256 root -sh
1257 root /sbin/syslogd -n -m 0
1258 root /sbin/klogd -n
1259 root /usr/bin/tail -f /var/log/messages
1265 root ps -e
我们正在使用 kernel-2.6.25-ts.at91sam9g20/kernel/softlockup.c 中可用的软锁定看门狗