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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

第二部分:S5PV210_关看门狗_1

發(fā)布時間:2025/6/17 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第二部分:S5PV210_关看门狗_1 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.關(guān)看門狗

(1)什么是看門狗?

  看門狗就好像你家門口的一條狗,我們必須在規(guī)定的時間內(nèi)去喂狗,如果經(jīng)過了規(guī)定的時間,你還不去喂狗的話,它就會咬死你。

  看門狗本質(zhì)上是一個定時器,首先,你給看門狗設(shè)置好一段時間,然后看門狗就開始計時,CPU必須在這段時間過去之前重置看門狗內(nèi)的時間,好讓他重新計時,如果cpu不去重置看門狗內(nèi)的時間的話,看門狗就會重啟整個系統(tǒng)或者產(chǎn)生一個中斷,當我們系統(tǒng)正常運行的時候,我們當然不希望重啟系統(tǒng)啦,所以,我們就要喂狗(重置它里面的值)。

(2)看門狗的作用:監(jiān)督,維護好系統(tǒng),看系統(tǒng)是否正常運轉(zhuǎn)。

  在一些比較惡劣的環(huán)境的情況下,當我們的系統(tǒng)壞的時候,我們沒有辦法人工重啟的時候,看門狗就可以幫助我們重啟系統(tǒng)。因為,系統(tǒng)壞了,CPU就不會去喂狗,不喂狗,看門狗到了那個時間后,就會觸發(fā)重啟,系統(tǒng)就自動重啟了。

(3)為什么要關(guān)看門狗?

  因為現(xiàn)在我們?nèi)斯び弥@機器,當然不需要看門狗了,因為,系統(tǒng)崩潰了,我們會自己重啟它,所以,我們現(xiàn)在需要關(guān)閉看門狗的功能。

(4)看門狗相關(guān)的寄存器

WTCON:看門狗主要功能的設(shè)置,如開/關(guān)看門狗,使能中斷,使能重啟,設(shè)置時鐘分頻多少等等。

WTDAT:看門狗重載的計數(shù)值

WTCNT:看門狗當前的計數(shù)值,看門狗計時時的當前值。

WTCLRINT:清中斷,寫1進去就清除中斷

  WTDAT寄存器和WTCNT寄存器的關(guān)系:看門狗剛開始啟動的時候,WTDAT的值是不會自動重載到WTCNT的這里WTDAT的值自動重載進WTCNT內(nèi)是僅發(fā)生在中斷的情況下的,發(fā)生完中斷后,WTDAT的值就會自動重載進WTCNT內(nèi),然后WTCNT開始自動減1,開始下一次計時。不會發(fā)生在重啟的原因是:重啟的時候,斷電,一切寄存器內(nèi)的值都不存在了,并且重啟的時候也不需要自動重載,因為它又經(jīng)過了一次初始化,用初始化的值就可以了。),因此,在啟動看門狗之前,我們必須寫一個初始值給WTCNT寄存器。

(5)看門狗時鐘分頻的介紹

  來源是PCLK(66MHz),經(jīng)過一個預(yù)分頻器,再經(jīng)過一個MUX開關(guān),就得到了看門狗的時鐘頻率了。

計算公式:

以下面代碼為例:t_watchdog = 1/(66M/(65+1))/128) = 128us

(6)寫相關(guān)寄存器的代碼示例

1 void wdt_init_interrupt(void) 2 { 3 //首先,我們就設(shè)置預(yù)分頻器(8~15),先清零,然后再設(shè)置值為66,因為時鐘源是PCLK(66MHz)得到1MHz 4 rWTCON &= ~(0xff<<8); 5 rWTCON |= (65<<8); 6 7 //然后設(shè)置分頻器(3~4),先清零,然后設(shè)置值為128,得到周期是128us 8 rWTCON &= ~(0x3<<3); 9 rWTCON |= (0x3<<3); 10 11 //然后就選擇中斷模式了(2),關(guān)閉復(fù)位模式(0) 12 rWTCON |= (1<<2); 13 rWTCON &= ~(1<<0); 14 15 //設(shè)置計數(shù)值了,就設(shè)置為1.28s 16 rWTDAT = 10000; 17 rWTCNT = 10000; 18 19 //最后,都設(shè)置好了,就開啟看門狗定時器了(5) 20 rWTCON |= (1<<5); 21 } 22   rWTCLRINT = 1; //清中斷,這里是設(shè)置任意數(shù)就可以清零了

還有喂狗的操作是寫WTCNT寄存器的:

void feed_dog(void) {rWTCNT= 10000; }

參考來源:朱老師物聯(lián)網(wǎng)大教程

轉(zhuǎn)載于:https://www.cnblogs.com/nibuyaoni/p/5716959.html

總結(jié)

以上是生活随笔為你收集整理的第二部分:S5PV210_关看门狗_1的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。