您好,登錄后才能下訂單哦!
關于ARM cortex a系列的看門狗定時器,現在以三星公司的S5PV210為例子,來討論學習一下看門狗定時器的相關知識。
剛開始學習使用英文技術手冊,很多都不太習慣,不過還是堅持吧。
看門狗定時器會在由于噪聲或者系統錯誤造成的問題中恢復機器正常操作,它可以產生復位信號。當定時器計數達到0的時候,如果一直沒有程序給它重新填裝數(沒有喂狗),它就會產生復位信號并復位。看門狗定時器支持等級觸發的中斷機制,有優先級先后之分,不過你打開了這個定時器之后你不喂狗的話那你早晚會被復位。
看門狗控制寄存器里指定預分頻的值和分頻要素,有效的預分頻值在0到(2^8-1)之間,分頻要素可以為16,32,64或128.這個等式可以計算看門狗定時器的頻率和每周期持續的時間: t_watchdog = 1/( PCLK / (Prescaler value(預分頻值) + 1) / Division_factor )
一旦看門狗定時器啟動了之后,看門狗數據寄存器就沒辦法再給它重新定值了,所以在看門狗定時器啟動之前最好給它一個初值。(補充:當定時器處于一種調試模式時,看門狗定時器取決于CPU的調試信號(應答信號),如果有調試信號應答,則看門狗定時器到期的時候則不會產生復位輸出)
看門狗定時器控制器決定了你是不是要開啟它,看門狗定時器的作用是重啟S5PV210來恢復它的功能,如果你不需要它自動重啟,那你應該先關上它。
本節只介紹如何關閉看門狗,至于里面別的設置,等以后遇到的時候再說。
關閉看門狗的步驟:
#define WTCON 0xE2700000
ldr r0, =WTCON
ldr r1, =0x0 //全都填充0,因為別的位一旦關閉,
//看門狗也都沒有作用了,所以都歸零算了
str r1, [r0] //指令的意思是:把r1寄存器中的值放到
//以r2寄存器中的值為地址的內存空間里去
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。