日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WINCE6.0+S3C2443下WatchDog学习

發布時間:2025/4/16 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WINCE6.0+S3C2443下WatchDog学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

********************************LoongEmbedded********************************

作者:LoongEmbedded(kandi)

時間:2011.01.22

類別:WINCE OAL開發

?

********************************LoongEmbedded********************************

?

1?watchdog的作用及工作原理

1.1??watchdog的作用

在嵌入式控制系統運行時收到外部干擾或者系統錯誤,這時候程序就有可能出現“跑飛”,從而導致整個系統癱瘓。為了防止這種現象的發生,在對系統穩定性要求較高的場合往往要加入看門狗(watchdog)電路或者開啟集成在CPU中的watchdog timer(看門狗定時器)Watchdog的作用就是當系統“跑飛”而進入死循環的時候,可以復位系統,讓系統繼續重新運行。

1.2??watchdog的工作原理

watchdog原理上就是一個定時器,定時器timer對時鐘進行計數,當定時器溢出時,產生復位信號,使得整個系統復位。其基本原理為:設本系統程序完整運行一周期的時間是tp,看門狗的定時周期為ti,且ti>tp,在程序運行一周期后就修改(再重新設定看門狗的定時周期)定時器的計數值(俗稱“喂狗”),只要程序正常運行,定時器就不會溢出。若由于干擾等原因使系統不能在tp時刻修改定時器的計數值,定時器將在ti時刻溢出,引發系統復位,使系統得以重新運行,從而起到監控作用。

?

2????????S3C2443watchdog

2.1??watchdog概述

S3C2443的看門狗定時器用于控制器因為噪聲或系統錯誤等故障干擾時恢復控制器系統的正常工作,它能作為通用的16位的定時器來請求中斷服務。看門狗定時器可以產生128PCLK周期的復位信號

?

2.2??watchdog的特征

用于中斷請求的通用的定時器模式。

當定時器計數值減到0(計時時間到),激活128PCLK周期的復位信號。

?

2.3??watchdog定時器的結構圖

?

1

從上圖可知PCLK是看門狗定時器的時鐘源,PCLK經過一個預分頻器后產生合適的看門狗定時器時鐘,這個時鐘經過MUX再次被分頻。這個8位的預分頻值和頻率分頻系數由看門狗定時器控制寄存器(分別由WTCON[15:8]WTCON[4:3]來確定)。其中有效的預分頻值的范圍是028-1,頻率分配系數的值可以是1632164128。我們可以用下面的方程式來計算看門狗定時器頻率和每個定時器時鐘周期持續時間。

?

2

2.4??WTDATWTCNT寄存器的關系

一旦使能看門狗定時器,看門狗定時器數據寄存器(WTDAT)不能被自動重新裝入到看門狗定時器計數寄存器中(WTCNT),因此,在看門狗定時器開始之前,一個初始值必須被寫入到看門狗定時器計數寄存器中。

?

3

2.5??調試環境考慮因素

S3C2443debug模式使用Embedded ICE(in-circuit Emulator)時,不能操作看門狗定時器。看門狗定時器能夠通過CPU內核信號(DBGACK信號)來判斷當前是否工作在debug模式下。一旦CPU內核的DBGACK信號生效,看門狗定時器在計時結束時不會激活復位輸出,這樣就不能復位系統。

?

2.6??看門狗定時器專用寄存器

看門狗定時器控制(WTCON)寄存器

WTCON寄存器允許用戶使能或關閉看門狗定時器,可以從4個不同的時鐘源中來選擇時鐘信號,可以使能和關閉中端,可以使能和關閉看門狗定時器輸出。看門狗定時器用于在上電后出現故障的情況下來復位重啟S3C2443系統。如果控制器不希望重啟,可以關閉看門狗定時器。如果用戶把看門狗定時用作普通的定時器,就需要使能中斷(WTCON[2])和關閉看門狗定時器(WTCON[5])

?

4

看門狗定時器數據(WTDAT)寄存器

WTDAT寄存器用于指定超時時間,在初始化看門狗定時器操作的時候(也即第一次初始化時)WTDAT寄存器的內容不能被自動加載到看門狗定時器計數寄存器中(WTCNT),但是使用初始值0x8000可以驅動第一次超時,在這種情況下,WTDAT寄存器的值將自動重新加載到WTCNT寄存器中。

?

5

看門狗定時器計數(WTCNT)寄存器

WTCNT寄存器包含正常操作時看門狗定時器當前的計數值,注意,在看門狗定時器被開始使能的時候WTDAT寄存器的值不能被自動加載到WTCONT寄存器中,所以我們在使能看門狗定時器前要為WTCONT寄存器初始化一個初始值。

?

6

?

3????????WINCE中的初始化代碼

Init.c文件中的OEMInit函數調用OALTimerInit函數,下面是OALTimerInit函數初始化watchdog的代碼

?

7

SMDKInitWatchDogTimer函數在watchdog.c中實現,如下:

?

8

上圖的喂狗函數RefreshWatchdogTimerwatchdog.c中定義,見圖1,而pfnOEMRefreshWatchDogdwOEMWatchDogPeriodWINCE600/public/common/oal/inc/bceoemglobal.h定義,見下圖:

?

9

上圖的pfnRefreshWatchDogdwWatchDogPerioddwWatchDogThreadPriority的定義在在WINCE600/public/common/oal/inc/oemglobal.h中定義,如下

?

?

10

?

?

ARM之看門狗

http://blog.csdn.net/genglei1022/archive/2010/05/15/5594634.aspx

?

嵌入式系統之WATCHDOG(看門狗)概述

http://blog.csdn.net/Chenah/archive/2009/09/22/4575434.aspx

?

看門狗watchdog的理解

http://blog.csdn.net/dadalan/archive/2008/09/14/2803318.aspx

?

?

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的WINCE6.0+S3C2443下WatchDog学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。