At 02:57 PM 12/12/05 +0000, brendanmurphy37 wrote: >Jack Ganssle's paper gives one way out of this (a supervisory task >monitoring the health of all other tasks). I first started using that technique about 10 years ago. My usual way is to have the watchdog supervisor in a periodic interrupt (sometimes the main clock tick) watching a number of countdown watchdog timers and flags, one of each for each task or process being monitored. Each cycle of the supervisor decrements the countdown timers and if none of them have overrun feeds the watchdog. As soon as one is no longer fed the watchdog no longer gets fed. As additional protection the task countdown timers are hamming protected so overwrites are less likely to give valid results. The flags usually are required to have some sort of sequence or specific value (ie just setting them to any old value is not sufficient). As well the task timers are not regarded as active until they have first been fed but they cannot be turned off. They can be made fancier from there but that is sufficient to put watchdogs in as many periodic tasks and interrupts as you can afford the overhead for. In my systems that usually only amounts to a small handful that you want to watch anyway. Robert " 'Freedom' has no meaning of itself. There are always restrictions, be they legal, genetic, or physical. If you don't believe me, try to chew a radio signal. " -- Kelvin Throop, III http://www.aeolusdevelopment.com/
Message
Re: [lpc2000] Re: Problem with watchdog
2005-12-13 by Robert Adsett
Attachments
- No local attachments were found for this message.