Watchdog 首先在16MB+128MB上验证了(暂不适用32+128的情况),如下:
这里涉及到的寄存器,请查询7688手册1.4版本的69页 http://wiki.widora.cn/_media/mt7688_datasheet_v1_4.pdf 。
首先,enable_watchdog.sh脚本:
#!/bin/sh
reg w 10000120 0x03e80000
reg w 10000124 0x7d0
reg w 10000120 0x03e80090
第一句是设置分频系数,系统默认是1us,也就是1M,此处3e8是分频到千分之一,也就是1ms。
第二句是这是看门狗的初始值,7d0是2000。看门狗是个减法计时器,减到0发起系统复位。所以此出意义是2秒。
第三局是启动看门狗。
上述脚本运行后,如果什么都不做,2秒后系统会重启。所以要想保证系统持续运行,必须有喂狗脚本eat_watchdog.sh,如下:
#!/bin/sh
reg w 10000100 0x0200
reg w 10000120 0x03e80090
10000100寄存器的BIT9是控制看门狗的计数器回归到初始值(7d0),这里好像有个小bug,喂狗后,10000120处的寄存器会被清零,很奇怪,故多增加了一句喂狗后重新启动开门狗。