<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 為何一般不建議在中斷中喂狗?

為何一般不建議在中斷中喂狗?

作者: 時(shí)間:2016-11-09 來(lái)源:網(wǎng)絡(luò ) 收藏
在"主程序喂狗論"中,最"強有的理論依據"就是---"程序跑飛了可是中斷不一定會(huì )死" (中斷一般都有自己固定不變的中斷向量地址,這樣即使主程序飛,中斷也能正確地跳入自己的軌道繼續運行.)

本文引用地址:http://dyxdggzs.com/article/201611/317717.htm

可如果只在主程序喂狗,由于中斷被無(wú)意關(guān)斷,那么主程序實(shí)際就只干傻喂狗功能,這種不工作也不死的。

所以建議:最好的辦法是主程序和中斷相結合的方法喂狗,這個(gè)需要根據實(shí)際程序中斷的特點(diǎn)編寫(xiě)相應的喂狗功能(參考方法:在主循環(huán)內判中斷進(jìn)入標志(或中斷進(jìn)入次數)再喂狗.)。

如果你沒(méi)什么把握的話(huà),還是建議只在主程序喂狗



而"狗論"恰恰就是利用了這個(gè)"理論依據"!!!

中斷一般都有自己固定不變的中斷向量地址,這樣即使主程序飛,中斷也能正確地跳入自己的軌道繼續運行.

如果每個(gè)其他事件即程序模塊都設置一個(gè)"執行標志",即執行過(guò)后都設置此標志.

那么,在定時(shí)(節拍)中斷中,可以從這些"執行標志"掌握程序的運行狀況,達到檢控的目的.

若全部模塊正常運行,則清除全部標志,否則,進(jìn)行硬件復位(不喂狗)或軟件復位(在沒(méi)硬件看門(mén)狗時(shí)或需要立即復位時(shí)).

由于各模塊的運行周期不定,喂狗中斷可以靈活掌握.

"狗論"和"主程序應答喂狗論"(不同于亂喂)效果基本相同,都能達到同樣的目的,但是它的喂狗周期不定,在低功耗的系統中,主循環(huán)的喂狗檢測較耗電.
而且主循環(huán)飛后只能期待硬件看門(mén)狗的復位了,故一般用在有硬件看門(mén)狗的系統中.而前者可用于有無(wú)硬件看門(mén)狗的系統中(當然要保證定時(shí)器及中斷不能被關(guān)閉,一般在主循環(huán)中刷新中斷配置較好).

當然,"狗論"要耗損一些在中斷中的時(shí)間,但在定時(shí)(節拍)中斷中,是很短暫的,基本不影響系統的性能.

再駁"主程序喂狗論"
主程序活著(zhù)比死了更難受!!!

所以沒(méi)有"雙向應答"機制的主程序強喂狗方式還是有漏洞的.

由于中斷被無(wú)意關(guān)斷,那么主程序實(shí)際就只干傻喂狗功能,這種不工作也不死的

程序要它何用???

所以我喜歡在主循環(huán)內刷新中斷標志,即再次打開(kāi)自己所需的全部中斷.

在主循環(huán)內判中斷進(jìn)入標志(或中斷進(jìn)入次數)再喂狗.

或在主循環(huán)內設置主循環(huán)內駐留標志(表示中斷是從主循環(huán)跳入的),再在中斷中

"主程序不飛可是中斷被關(guān)斷"將會(huì )如何???

一般是定時(shí)中斷(或OS的節拍中斷)中喂狗,因為這種喂狗發(fā)生喂狗時(shí)間恒定,狗不得胃病.

中斷中喂狗后清除那個(gè)主循環(huán)內駐留標志,這樣:

1.如果主程序飛,則定時(shí)中斷照常工作時(shí),將收不到那個(gè)主循環(huán)內駐留標志,則不喂狗(硬件看門(mén)狗),若無(wú)硬件看門(mén)狗,則定時(shí)中斷數次后,強行軟件復位!!!(起到了軟件看門(mén)狗的作用)

2.若主程序不飛,且主循環(huán)強制刷新中斷標志,一般都能定時(shí)中斷,即使不能中斷,

則系統得不到喂狗,則硬件看門(mén)狗動(dòng)作,系統復位.

從上2種情況分析,中斷喂狗的好處還能兼職軟件看門(mén)狗的作用!!!



關(guān)鍵詞: 中斷喂

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>