AM335x裸机<三>:watchdog的操作

基于第二篇,结合代码和TRM分析看门狗相关操作,直接上代码

HWREG(SOC_WDT_1_REGS + WDT_WSPR) = 0xAAAAu;
while(HWREG(SOC_WDT_1_REGS + WDT_WWPS) != 0x00);
HWREG(SOC_WDT_1_REGS + WDT_WSPR) = 0x5555u;
while(HWREG(SOC_WDT_1_REGS + WDT_WWPS) != 0x00);

这里为什么要这么写呢?这个嘛,我也不知道.....因为TI的 TRM就是这么说的,有图有真相

再来看看相关寄存器的地址,所以地址都在Memory  Map里面可以找到,注意这里是没有WDT0的,如下

最后做个简单总结:

1.看门狗原理

看门狗本质就是一个定时器,不断自加或者自减,需要在指定时间内翻转看门狗引脚电平,从而到达清除看门狗的操作,这样就不会发生看门狗中断(若指定时间内没有喂狗,则系统会发生中断,系统从0地址开始运行),其作用:防止程序跑死,系统死机

2.am335x看门狗操作

允许:先写入xxxxBBBBh等待操作完成,然后再写入xxxx4444H等待操作完成

禁止:先写入xxxxAAAAh等待操作完成,然后再写入xxxxBBBBH等待操作完成

原文地址:https://www.cnblogs.com/Ethan-Gao/p/7499035.html