1 工作方式
在數字訊號處理器的工作過程中有時會發生一些異常情況,這可能是在軟體執
行時發生錯誤,如堆疊溢位、記憶體溢位等軟體編寫時沒有預料到的錯誤,也可
能是
dsp
在執行時受到外界干擾而使得程式執行不正常,在這些情況下將會發
生不可**的錯誤。為了防止出現這種情況,使用看門狗定時器是一種很好的
解決方法。
看門狗定時器實際上是乙個定時器,該定時器需要處理器週期性的執行一
些特定操作,當處理器執行正常時,這些操作會正常執行,而當出現異常時這
些操作將被打斷,看門狗定時器計數會計到
0
而發生超時,這時定時器將輸出一
個低脈衝,這個輸出可以觸發中斷或引起
dsp
復位(可以觸發不可遮蔽中斷或
看門狗定時器中斷,如果看門狗定時器的輸出連線到硬體復位端將引起
dsp
復
位)。
看門狗定時器有乙個
16位計數器和乙個
16位預計數器,使得計數器動態範圍達到32
位。復位狀態後,看門狗定時器是關閉的,且允許軟體在將其使能之前,對其進行配置。
看門狗定時器正常工作後,當定時器計到
0時,會觸發看門狗定時器中
斷,並將
wdflag位置1
,之後計數器和預計數器將會被重新載入,而超時事
件將會從看門狗定時器的輸出端輸出。看門狗定時器正常工作時會在計數狀態
、服務狀態和超時狀態之間轉換,接著給出了看門狗定時器的狀態轉換過程。
如果看門狗定時器被使能,不能通過軟體直接禁止,但可以通過看門狗超
時事件或硬體復位禁止看門狗定時器。當軟體陷入死迴圈或發生軟體錯誤時,
看門狗定時器會產生超時事件,強迫
dsp
進行異常處理。
看門狗的時鐘是直接來自時鐘產生器,因此即使處理器處於休眠狀態中仍
將繼續計數。
2 暫存器
看門狗定時器主要有
4
個暫存器
——
即看門狗計數暫存器(
wdtim
)、看門狗週期暫存器(
wdprd
)、看門狗控制暫存器
(
wdtcr
)和看門狗控制暫存器
2
(
wdtcr2
)。
看門狗計數暫存器和看門狗週期暫存器都是
16
位暫存器,它
們協同工作完成計數功能。
看門狗週期暫存器
wdprd
存放計數的初始值,當計數暫存器
的值減到
0
後,將把週期暫存器中的數載入到計數暫存器中。當控
制暫存器中的
psc
位減到
0
之前或看門狗計數器被復位時,計數寄
存器將進行減
1
計數。
3 配置看門狗定時器
初始化和使能看門狗定時器的步驟:
1.將主計數器週期prd裝入看門狗週期暫存器wdprd
2.設定看門狗定時器控制暫存器wdtcr的模式bit(wdout,soft和free),以及tddr裡的預定標控制值
3.往看門狗定時器的控制暫存器2(wdtcr2)中的wdkey寫入關鍵值5c6h,使看門狗定時器進入預啟用狀態
4.寫關鍵值a7eh到wdkey中,置位wden,將預定標模式bit(premd)的值寫到wdtcr2中。這第二個值完成了關鍵值序列,表示乙個實際的服務序列,wden = 1使能看門狗定時器,
3 看門狗定時器的應用
應用看門狗定時器的晶元支援函式首先要包含
csl_wdtim.h
標頭檔案,接下來定義看門狗定時器的配置結構:
wdtim_config myconfig = ;
配置看門狗定時器需要呼叫看門狗配置函式:
wdtim_config(&myconfig);
在配置好看門狗定時器後呼叫開始函式,該函式的作用是將看門狗定時器控制暫存器
2
的
wden
位置成
1
:
wdtim_start();
在執行看門狗開始函式後,看門狗開始遞減計數,在計數器減到
0
之前需要周期性地向
wdkey
字段寫入
a5c5h
和
a7eh
,否則看門狗定時器將會發生超時事件從而觸發中斷或復位,該操作可以通過呼叫
wdtim_service()
函式來完成。
wdtim_service();
S3C2440看門狗定時器
看門狗定時器的主要作用是在程式因為干擾而跑飛後,能夠使系統復位,不至於使系統永遠的死下去。它的原理與一般的定時器沒有多大區別,就是先要設定好一段時間,當超過這段時間後,就從當前執行的程式中跳出進入中斷處理程式中。但兩者的主要差別是,一般的定時器中斷是我們希望它發生的,因此我們不會在定時器中斷發生前的...
S5PC100看門狗定時器
看門狗定時器 wdt,watch dog timer 是微控制器的乙個組成部分,在微控制器程式的除錯和執行中都有著重要的意義。它的主要功能是在發生軟體故障時,通過使器件復位 如果軟體未將器件清零 將微控制器復位。也可以用於將器件從休眠或空閒模式喚醒。看門狗 watchdog 定時器和pwm定時功能目...
學習朱有鵬老師的看門狗定時器
看門狗定時器典型應用場景 我們在應用程式中開啟看門狗裝置,初始化好,給它乙個實踐,然後應用程式使用乙個執行緒來餵狗,這個執行緒的執行時間安全短於看門狗的復位實踐。當系統 或者應用程式 異常後,餵狗執行緒自然就停止工作了,然後看門狗就復位了。s5pv210的看門狗定時器共有4個暫存器 1.wtcon ...