5.5.23 · D2 · HinglishEmbedded Systems & Real-Time Software

Visual walkthroughWatchdog timers — purpose, feeding, types

2,451 words11 min read↑ Read in English

5.5.23 · D2 · Coding › Embedded Systems & Real-Time Software › Watchdog timers — purpose, feeding, types

Yeh watchdog timer ka visual walkthrough hai. Hum timeout formula ko ek bare counter se build karte hain — koi formula pehle se assume nahi — aur picture by picture dekhte hain ki "feeding the dog" count ke saath exactly kya karta hai. End tak tum draw kar sakoge ki ek watchdog hung system ko reset kyun karta hai, aur kyun ek window watchdog us system ko bhi pakad leta hai jo zyada fast chal raha ho.


Step 1 — Ek counter sirf ek aisa number hai jo girta hai

KYA. Sirf ek hardware piece se shuru karte hain jo matter karta hai: ek register (ek chhota sa box jo ek whole number hold karta hai) jo har clock tick par exactly se decrease hota hai. Jo number yeh hold karta hai use kehte hain. Shuruaat mein yeh apni sabse badi possible value se load hota hai, jise hum kehte hain.

KYUN. Time ki baat karne se pehle, humein raw mechanism par agree karna hoga. Abhi koi "timer" nahi hai — sirf counting down hai. Time woh cheez hai jo hum Step 3 mein earn karenge jab is girte hue number ke saath ek clock attach karenge.

PICTURE. Laal staircase number hai. Har step neeche ek clock tick hai. Yeh par upar se shuru hota hai aur par black floor ki taraf badhta hai.

Figure — Watchdog timers — purpose, feeding, types

kyun? Ek 16-bit box mein binary digits hote hain. Solah 1-bits se bana sabse bada number hai. Yeh bas staircase ki maximum height hai.


Step 2 — Floor tak pahunchna reset hai

KYA. Ek rule add karo: jis instant tak pahunche, hardware ek reset line pull karta hai aur poora chip reboot ho jaata hai (ya ek interrupt fire karta hai, config ke hisaab se — dekho System Reset Sources).

KYUN. Yahi watchdog ka poora point hai. Girta hua number ek promise hai: "agar koi mujhe roka nahi, toh main tumhe reboot kar dunga." Is rule ko table par rakhna zaroori hai pehle, phir baat karenge rokne ki.

PICTURE. Laal line ko neeche follow karo. Jahan yeh black floor ko touch karta hai, ek laal bolt fire hoti hai — yeh reset event hai. Counter zero se neeche nahi ja sakta; zero hi trigger hai.

Figure — Watchdog timers — purpose, feeding, types

Step 3 — Clock attach karna ticks ko seconds mein convert karta hai

KYA. Ab tak ek "tick" abstract hai. Ab counter ko frequency ki ek real clock feed karo — matlab ticks har second hoti hain. Isliye ek tick seconds chalti hai.

KYUN. Humne frequency (ticks-per-second) ko yahan introduce karna choose kiya — stopwatch jaisi koi cheez nahi — kyunki hardware genuinely ek fixed rate par ticking oscillator se driven hota hai. Frequency natural bridge hai: yeh "kitne steps" ko "kitne seconds" mein convert karta hai, jo ultimately humara important quantity hai.

PICTURE. Wohi staircase, lekin ab har step ko uski duration se label kiya gaya hai. Us step width ko wide ya narrow karna hi poore descent ko zyada ya kam time lene ka ek hi tarika hai.

Figure — Watchdog timers — purpose, feeding, types

Step 4 — Prescaler har step ko stretch karta hai

KYA. Real watchdogs ek prescaler insert karte hain: ek divider jo counter ko har raw clock ticks mein sirf ek baar step down karne deta hai. Toh effective tick rate hai, aur har visible step ab times zyada lambi chalti hai.

KYUN. Fast clock ke saath, ek raw 16-bit descent sirf kuch milliseconds le sakti hai — useful hone ke liye bahut choti. Humein giraavat ko slow karne ka ek knob chahiye. Prescaler wahi knob hai. Hum multiplication nahi, division introduce kar rahe hain kyunki hum counter ko slow kar rahe hain: fewer usable ticks per second.

PICTURE. Do staircases side by side. Left: , narrow steps, floor par fast crash. Right (red): , har step zyada wide, isliye utni hi steps floor tak pahunchne mein bahut zyada time lete hain.

Figure — Watchdog timers — purpose, feeding, types

Step 5 — Har step add karo: timeout formula

KYA. se tak drain hone mein exactly steps lagte hain, har ek lasting. Multiply karo.

KYUN. Yeh bas "total time = steps ki sankhya × time per step" hai. Har factor hum pehle se earn kar chuke hain: Step 1 se, Step 4 se. Kuch naya assume nahi ho raha — hum sirf jo banaya hai use sum kar rahe hain.

PICTURE. Poori laal staircase top se floor tak, ek bracket poori height span karte hue steps labelled, aur base par ek bracket — descent ka total wall-clock time.

Figure — Watchdog timers — purpose, feeding, types

Step 6 — Feeding matlab "number ko wapas top par dhakeil do"

KYA. "Feeding the dog" (wdt_reset()) ek hi kaam karta hai: ko wapas par reload karta hai. Pictures mein, yeh laal dot ko jahan bhi giri ho, seedha ceiling par wapas teleport kar deta hai.

KYUN. Yahi wajah hai ki system survive karta hai. Jab tak software descent complete hone se pehle feed instruction tak wapas pahunche, counter kabhi tak nahi pahuncha, toh Step 2 ka reset kabhi fire nahi hota. Health = "Main har baar ceiling tak waqt par wapas pahunch jaata hun."

PICTURE. Ek sawtooth: laal line girti hai, phir har feed par seedhi upar par jump karti hai, phir girti hai, phir jump — ek healthy heartbeat jo floor ko kabhi nahi chhuti.

Figure — Watchdog timers — purpose, feeding, types

Step 7 — Degenerate case: hang

KYA. Ab software ko freeze hone do — ek infinite loop mein stuck, ya hamesha ke liye block. Feed instruction kabhi reach nahi hoti, toh koi jump nahi hota. Laal line simply uninterrupted floor par gir jaati hai.

KYUN. Humein failure ko explicitly dikhana hoga, kyunki yahi woh scenario hai jise pakadne ke liye watchdog exist karta hai (dekho Fault Tolerance aur Safe State Design). Bina feed ke, Steps 1–5 unmodified play out hote hain: full descent, phir reset.

PICTURE. Left par healthy sawtooth; hang ke moment par jumps ruk jaate hain, line black floor tak coast karti hai, aur laal reset bolt exactly baad fire hoti hai last successful feed ke baad.

Figure — Watchdog timers — purpose, feeding, types

Step 8 — Window watchdog: ek floor aur ek ceiling-guard

KYA. Ek plain watchdog sirf care karta hai ki tum floor se pehle feed karo. Ek window watchdog ek forbidden early zone add karta hai: feeding sirf tab legal hai jab counter ek upper threshold se neeche gir chuka ho. Bahut jaldi feed karo (counter abhi high hai) → reset. Bahut der se feed karo (counter floor hit kar gaya) → reset. Legal feeds ek middle band mein hoti hain.

KYUN. Ek hung system "bahut slow" hai, lekin ek runaway — interrupt storm, ek timing bug loop ko zyada fast fire kar raha hai — "bahut fast" hai, aur ek plain watchdog un extra early feeds ko cheerfully healthy maan leta hai. Window ka lower bound ek doosra net hai jo speed faults pakadta hai jise normal dog dekh nahi sakta.

PICTURE. Staircase par ab do horizontal red guides hain: ek upper threshold aur floor. Unke beech shaded legal window hai. Ek feed arrow jo upper line se upar land kare (too early) reset trigger karta hai; ek jo band ke andar land kare accept hoti hai; ek jo kabhi nahi aata line ko floor hit karne deta hai.

Figure — Watchdog timers — purpose, feeding, types

Ek-picture summary

Sab kuch ek canvas par: laal counter rate se girta hai (Steps 3–4); se tak poori drop leti hai (Step 5); feeds use wapas teleport karti hain (Step 6); ek missed feed use floor hit karne deta hai aur reboot hota hai (Step 7); aur shaded band window watchdog ka legal feed zone dikhata hai jo aur se bound hai (Step 8).

Figure — Watchdog timers — purpose, feeding, types
Recall Feynman retelling — plain words mein wapas bolo

Ek chhote box mein ek number hai jo akele hi count down karta hai, ek step at a time. Yeh kitni tezi se step karta hai yeh clock aur prescaler naam ke stretch-knob se set hota hai; kitna far girna hai yeh number kitna bada shuru hua tha se set hota hai. "Kitne steps" ko "har step kitna time leta hai" se multiply karo aur tumhe timeout milta hai — woh time jab tak yeh zero hit karta hai aur chip reboot karta hai. Tumhare software ka poora kaam hai ki box mein thodi thodi der mein haath daalo aur number ko wapas top par dhakeil do; yahi "feeding" hai. Feed karte raho aur yeh kabhi zero nahi hit karta, toh chip chalta rehta hai — yahi heartbeat sawtooth hai. Feed karna band karo, kyunki code freeze ho gaya, aur number zero tak coast karta hai aur tumhe reboot karta hai — yahi safety net hai. Ek fancier "window" version ek rule add karta hai ki tum feed karne allowed hi nahi ho jab tak number kuch neeche nahi gir jaata, isliye software jo bahut zyada fast chal rahi hai woh bhi pakdi jaati hai, sirf woh nahi jo stuck hai.

Recall Quick self-test

16-bit counter, 128 kHz clock, prescaler 64 ke liye timeout ::: s wdt_reset() par physically kya hota hai ::: Counter register par reload ho jaata hai — laal dot ceiling par wapas jump karta hai. Window watchdog ka lower time bound kyun hota hai ::: Too fast chal rahi code (early feeds) pakadne ke liye, jise ek plain watchdog healthy maan leta hai. Hang ke baad, reset hone mein kitna time ::: Last successful feed ke baad ek poora tak.

Dekho bhi: Hardware Timer Peripherals · Real-Time Operating Systems · Brown-Out Detection · Bootloader Design