【已解决】MT7688的硬件看门狗watchdog玩法

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处的寄存器会被清零,很奇怪,故多增加了一句喂狗后重新启动开门狗。

因32+128的版本FLASH模式复位后需要从4Byte地址切换回3Byte地址,看门狗部分不能通过系统内复位,需要利用WDT_RST_N引脚来操作系统复位引脚,我稍后会给出那个的操作步骤。

@wdlhpw 最晚周一出来。:art:

是啊,watchdog timer验证了么?