首页
/
每日頭條
/
寵物
/
看門狗安裝包有問題
看門狗安裝包有問題
更新时间:2025-11-11 13:43:43

看門狗安裝包有問題?看門狗原理:在看門狗使能以後,需要在一定時間内對它進行喂狗,(一般在2S以内)如果沒有及時喂狗,則系統會被複位,系統重新從main()處開始運行,今天小編就來說說關于看門狗安裝包有問題?下面更多詳細答案一起來看看吧!

看門狗安裝包有問題(看門狗在程序中運用)1

看門狗安裝包有問題

看門狗原理:在看門狗使能以後,需要在一定時間内對它進行喂狗,(一般在2S以内)如果沒有及時喂狗,則系統會被複位,系統重新從main()處開始運行。

程序跑飛:當系統受到外部幹擾導緻總線錯誤或者數組溢出等錯誤時,會使CPU core的PC寄存器指向一個不可預知的位置。這裡有兩層意思:一是程序一直跑向一個不可預知的地方;二是:程序死在一個循環中。

在抗幹擾實驗中,我們經常會看到這樣的現象,整個系統死機了,但是系統并不複位,即看門狗沒有複位系統。為什麼會出現這樣的現象呢?可能原因之一就是程序死在了一個死循環中,并且在此死循環中執行了喂狗操作,從而導緻系統無法複位。所以喂狗操作不能在可能出現死循環中執行,也不能在中斷程序中執行。

現在的CPU體系結構都是基于中斷的,如複位中斷發生時,PC會指向RESET向量處;如定時器中斷發生時,PC會指向定時中斷向量處。在彙編代碼中,RESET中斷地址和定時器中斷地址存放的會是JMP指令,跳向各自的中斷向量函數。所以,main()和各個中斷函數是平等的,從宏觀上講,main()函數和各中斷函數是并行執行的,隻是因為一上電就執行RESET指令,所以main()先運行,而其它的中斷函數運行的條件并不是總是滿足的,即使中斷函數被觸發執行,也并會像main()一樣,會執行while(true){},所以我們經常看到的是大部分系統任務都在main()中運行,而其它中斷任務處于一個從屬的位置。理解了這樣的前提條件,若喂狗操作在一個1S為周期的定時中斷中執行,即使系統跑飛(我們所說的跑飛大部分是指main()中的任務沒有執行),但定時中斷發生時,PC自動裝載定時中斷地址的指令,執行定時中斷函數,執行喂狗操作。定時中斷執行完畢後,執行退棧操作,PC又指向了不可預知的位置,主程序仍沒有執行(如果要main()重新開始執行,必須發生RESET),當定時中斷再次發生時,又會在中斷中執行喂狗,如此循環,從而導緻系統不會複位。而實質上程序已經跑飛。

在程序中,我們經常會看到這樣的代碼:

While(flag){ if 某硬件條件{ flag = 0; } }

如果硬件損壞或在幹擾下硬件暫時失效,則flag不會被置0,則程序就會死在此循環中,此時就會導緻整個系統複位。若在這段代碼中有喂狗操作,即使主程序跑飛,系統也不會複位。如何解決此累問題:一,在檢測硬件條件一定次數之後,如果條件還不成立,則将flag = 0;二,置定時器标志,在檢測硬件一定時間之後,不管條件是否成立,仍将flag = 0。

那麼喂狗操作應該在什麼地方執行更合理,更能保證程序的健狀性?

void main(){ InitSys(); while(true){ TASK1(); TASK2(); ... FeedWatchDog(); //執行喂狗操作 } }

整個系統中,此有隻一處有喂狗操作,即如果主任務沒有被執行,則系統一定會複位。

如果TASK1,TASK2。。。。。。TASKn,運行時間加起來大于看門狗複位時間,可以在兩個任務之間插入喂狗操作。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
公貓與母貓哪個好養
公貓與母貓哪個好養
很多人想養貓,但不知道養公貓好,還是養母貓好。那麼養公貓和養母貓有什麼區别?親身經曆告訴你,這幾個方面,原來差距這麼大,簡直太真實了!1、價格區别公貓:公貓因為不會生幼崽的原因,所以相同品種的貓咪,公貓是比較便宜的。網友有話說:我就是想養一...
2025-11-11
寵物刺猬叫聲
寵物刺猬叫聲
随着“寵物熱”的加溫,越來越多的動物,都被加入了寵物的行列。今日,可愛點小編整理了玲珑可愛的寵物刺猬名字,一起來看看吧~七偉小剛格格偉祥小牧熱狗小銀小莫夢兒小茗大奔欣兒莫莫小亮熱熱小雪暢暢小愛雅虎小翩水貨小強美莎小榆雙雙餅幹想想靈寶煥兒卡特...
2025-11-11
貓咪挑食怎麼辦3點解決
貓咪挑食怎麼辦3點解決
衆所周知,貓咪的味蕾比較敏感,所以吃東西也比較挑剔,因此,當家長們心血來潮地給主子換新糧,買新零食時,可能主子們并不會買賬。面對“挑食”的貓咪,難道真的要餓幾天嗎?答案是:NO!小心餓出脂肪肝。三天不吃飯,小心脂肪肝當蛋白質攝入不足時,肝髒...
2025-11-11
到家一周的貓可以寄養嗎
到家一周的貓可以寄養嗎
春節的腳步近了,有不少朋友已經在準備返鄉過年,除了采購年貨,家裡有貓的朋友還有大事兒要幹,那就是如何安頓自己的貓。你有幾種選擇,帶貓一起回家,把貓送去寄養,或者讓貓自己留在家裡。我已經跟貓們過了好幾個春節,也在過年期間去朋友家裡照看他們的貓...
2025-11-11
dota2老陳不播了
dota2老陳不播了
要說起DOTA2圈子裡誰沒有打過職業,卻在主播圈混得風生水起,那麼老陳肯定是要位列其中的,他會整活,會來事,和OB的諸多兄弟們都能打成一團,可以說如果前期的人氣靠的是dota1時代屠夫阿川積累的話,那麼現在有此成就,則要更多地歸功于他後來的...
2025-11-11
Copyright 2023-2025 - www.tftnews.com All Rights Reserved