關於ARM Cortex a 系列的看門狗定時器

    關於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寄存器中的值爲地址的內存空間裏去


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章