娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

基于WINCE6.0+S3C2443的camera驅動

發布者:CuriousMind123最新更新時間:2024-10-18 來源: cnblogs關鍵字:WINCE6  S3C2443  camera驅動 手機看文章 掃描二維碼
隨時隨地手機看文章

1 watchdog的作用及工作原理

1.1  watchdog的作用

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


1.2  watchdog的工作原理

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


2 S3C2443的watchdog

2.1  watchdog概述

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


2.2  watchdog的特征


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


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


2.3  watchdog定時器的結構圖

f74d0822b91fe9462083cc2b6420b5b9_0_1295680895aeJ8.gif

圖1


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

5deeb5dea5d98dc707c6f7509593cc9c_0_12956809008PJJ.gif

圖2


2.4  WTDAT和WTCNT寄存器的關系


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

7a3e56ab8166ad36969c275a9af82921_0_1295680907He2F.gif

圖3


2.5  調試環境考慮因素


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


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


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


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

5187fe61d765f09b66c3784cd2e446ca_0_1295680914amqf.gif

圖4


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


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

437fc5b4f2e502c047bcf4cd8911c353_0_1295680919yd6Z.gif

圖5


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


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

18ca9e2831158d97365ef1c058b487bb_0_1295680924Lsr5.gif

圖6


3 WINCE中的初始化代碼


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

6f542a96c98e393d0dec62b865c04749_0_1295680929xHUu.gif

圖7


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

57f85f5d2f28308c9f913bc7e3efa823_0_12956809378r73.gif

圖8


上圖的喂狗函數RefreshWatchdogTimer在watchdog.c中定義,見圖1,而pfnOEMRefreshWatchDog和dwOEMWatchDogPeriod在WINCE600/public/common/oal/inc/bceoemglobal.h定義,見下圖:

a88afce29dedad9a351a83838c63e757_0_1295680944Ru7I.gif

圖9


上圖的pfnRefreshWatchDog,dwWatchDogPeriod和dwWatchDogThreadPriority的定義在在WINCE600/public/common/oal/inc/oemglobal.h中定義,如下

33b81249a3577eab59913d51a38b1d2c_0_1295680948Q58T.gif

圖10


關鍵字:WINCE6  S3C2443  camera驅動 引用地址:基于WINCE6.0+S3C2443的camera驅動

上一篇:WINCE6.0+S3C2451環境搭建過程遇到的一些問題
下一篇:【嵌入式開發】 ARM 匯編 (指令分類 | 偽指令 | 協處理器訪問指令)

小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 江北区| 新蔡县| 苏州市| 南丹县| 铅山县| 威远县| 营山县| 佛山市| 沙河市| 封开县| 壤塘县| 乌拉特后旗| 江城| 星子县| 阿拉善左旗| 贵定县| 望城县| 通许县| 凤翔县| 固安县| 习水县| 长沙市| 平乐县| 西充县| 漳州市| 襄城县| 垦利县| 会昌县| 汶川县| 时尚| 太仓市| 蚌埠市| 清水县| 碌曲县| 玛沁县| 宁强县| 子洲县| 安吉县| 龙岩市| 唐河县| 勃利县|