1. 程式人生 > >AM335x裸機<三>:Watchdog的操作

AM335x裸機<三>:Watchdog的操作

logs 註意 col 需要 分享 簡單 自減 log 翻轉

基於第二篇,結合代碼和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等待操作完成

AM335x裸機<三>:Watchdog的操作