只是简单测试使用的话,在系统上操作就行,tina默认使用 procd-init 并在其中集成了喂狗功能,所以要先关了自带的喂狗功能。
先让procd停止喂狗:(如果出错也没有关系,没有配置服务就不会工作)
ubus call system watchdog '{"magicclose": true}'
ubus call system watchdog '{"stop": true}'
使用如下命令就可以快速配置看门狗和反复喂狗。
echo 0 > /dev/watchdog
从这之后需要软件自行喂狗了喔,想要关闭就用如下命令。
echo V > /dev/watchdog
代码里写死 16 秒后不写入就会自动重启了,更多的就去看具体的驱动实现吧!~
lichee/linux-4.9/drivers/watchdog/watchdog_dev.c
lichee/linux-4.9/drivers/watchdog/sunxi_wdt.c
实现通常类似于这样 https://blog.csdn.net/weixin_44410537/article/details/86708540
#define WDT_MAX_TIMEOUT 16
#define WDT_MIN_TIMEOUT 1
#define WDT_TIMEOUT_MASK 0x0F
#define WDT_CTRL_RELOAD ((1 << 0) | (0x0a57 << 1))
#define WDT_MODE_EN (1 << 0)
#define DRV_NAME "sunxi-wdt"
#define DRV_VERSION "1.0"
static bool nowayout = WATCHDOG_NOWAYOUT;
static unsigned int timeout = WDT_MAX_TIMEOUT;