AM335x裸機<三>:Watchdog的操作
阿新 • • 發佈:2017-09-09
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的操作