[MinnowBoard] MinnowBoard Turbot Watchdog

Eric ericolv at cox.net
Tue Apr 12 19:10:02 UTC 2016


I forgot to add, I'm familiar with your DMP eBox, I also own an RB-110
board.  Nice board, with some great features but the 256KB RAM wasn't
cutting it.   I noticed that the 'heart of robotics' folks revamped their
website, very recently.   If you haven't done so in a while, you should
check out their site.   http://www.roboard.com


-----Original Message-----
From: elinux-MinnowBoard
[mailto:elinux-minnowboard-bounces at lists.elinux.org] On Behalf Of Eric
Sent: Tuesday, April 12, 2016 11:57 AM
To: 'MinnowBoard Development and Community Discussion'
Subject: Re: [MinnowBoard] MinnowBoard Turbot Watchdog

I've implemented multiple WDs, for different purposes, with a typical
implementation running as a background thread.  

I can't recall a time where we we've had a WD thread hang in production
code(at least not that I'm aware of ;-) ).   Of course, it's possible but I
usually try to keep them fairly short and simple, not to mention exhaustive
testing.    Typically, it's a while loop, checking on some condition, e.g.
network connectivity loss, disk removal or to check if a separate process is
still running.  In most cases, you'll want to 'sleep' between condition
checks, or make the condition check an event, raised periodically, based on
some other condition.   It's important because, you don't want your WD
hogging the CPU.  In one instance, a device running an embedded version of
Flash player would lock up, after running for a few days.  Turned out, Flash
had a memory leak.  We were stuck,  if there were going to be a fix, it
would have to come from Adobe.  As a temporary work around, we implemented a
WD, which kept an eye on memory usage.  Once a threshold was exceeded, the
WD would stop/restart the process, responsible for displaying Flash.  It
wasn't beautiful but it did stop the crashes.

My best advice, keep the WD code small, don't try to do too much in a single
WD and test repeatedly.   There isn't much I can add to those who answered
questions about a hardware level implementation. If nothing else, my gut
tells me, it's not a good idea ;-)   

HTH

-----Original Message-----
From: elinux-MinnowBoard
[mailto:elinux-minnowboard-bounces at lists.elinux.org] On Behalf Of Mike
Winter (Work)
Sent: Tuesday, April 12, 2016 2:31 AM
To: 'MinnowBoard Development and Community Discussion'
Subject: Re: [MinnowBoard] MinnowBoard Turbot Watchdog

Hi Eric

How have you implemented a software Watchdog? What happens if your WD
software hangs?
 
Not that I have a lot of experience, but quite a few, if not all of the
boards that I have come across for embedded purposes have a watchdog :
Beagleboard (http://beaglebone.cameon.net/home/watchdog-timer)
RPi
(http://blog.ricardoarturocabral.com/2013/01/auto-reboot-hung-raspberry-pi-u
sing-on.html)
The PC that I am looking to replace with the Minnowboard is a DMP eBox - In
the manual, it tells you about the watchdog :
ftp://ftp.dmp.com.tw/DMP_Vortex86_Series_Software_Programming_Reference_0912
16.pdf

I just tried googling the processor used in the Turbot, and the first one
that came up was this (which includes a WD):
http://www.portwell.com/pdf/catalog/Intel_Bay_Trail_E3800.pdf

>From Wiki : "Watchdog timers are commonly found in embedded systems and
other computer-controlled equipment where humans cannot easily access the
equipment or would be unable to react to faults in a timely manner. In such
systems, the computer cannot depend on a human to reboot it if it hangs; it
must be self-reliant"

I may be wrong (frequently am!), but I think that the way these WD work, is
by software enabling the Hardware WD, which has a timer (also initiated by
s\w). The timer starts to count down, and if it gets to 0, will perform a
hardware reset - same as physically turning the power off & then on again.
The software's 'job' is to make sure the timer never gets to 0, so should
frequently set the timer back to your specified WD interval.

What I normally do is set the WD timeout period to 3 seconds, and then in my
s\w initialize the WD every second. This allows you to miss a cycle by
accident, without the PC rebooting.

Regards

Mike



-----Original Message-----
From: Eric [mailto:ericolv at cox.net]
Sent: 08 April 2016 20:39
To: 'MinnowBoard Development and Community Discussion'
<elinux-minnowboard at lists.elinux.org>
Subject: Re: [MinnowBoard] MinnowBoard Turbot Watchdog

I've not heard of any PC motherboard or embedded board with a feature like
this.   However, I have implemented this type of functionality in software.

-----Original Message-----
From: elinux-MinnowBoard
[mailto:elinux-minnowboard-bounces at lists.elinux.org] On Behalf Of Mike
Winter (Work)
Sent: Friday, April 8, 2016 7:02 AM
To: 'MinnowBoard Development and Community Discussion'
Subject: Re: [MinnowBoard] MinnowBoard Turbot Watchdog

Hi John, thanks for the reply.

I am looking at using the Minnowboard in an embedded environment. Other PCs
that I have used have a hardware Watchdog, which, when turned on, you are
required to poll at definable intervals. If you do not poll it quickly
enough (or stop polling, due to hung software), the PC will perform a hard
reset. Is this a feature of the Minnowboard, or likely to be incorporated in
future versions?

Thanks again for your help

Mike

-----Original Message-----
From: John Hawley [mailto:john.hawley at intel.com]
Sent: 08 April 2016 06:09
To: elinux-minnowboard at lists.elinux.org
Subject: Re: [MinnowBoard] MinnowBoard Turbot Watchdog

What kind of watchdog are you looking for / need?  Just trying to figure out
what kind of watchdog you are looking for.

- John 'Warthog9' Hawley

On 4/7/2016 3:25 AM, Mike Winter (Work) wrote:
> I have a MinnowBoard Turbot on the way, but when I ordered I forgot to 
> check whether there is a watchdog, which is a requirement for my 
> project. Is there one in the Turbot, I haven't found any mention of one?
> 
>  
> 
> Regards
> 
> *Mike Winter*
> 
>  
> 
> 
> 
> _______________________________________________
> elinux-MinnowBoard mailing list
> elinux-MinnowBoard at lists.elinux.org
> http://lists.elinux.org/mailman/listinfo/elinux-minnowboard
> 
_______________________________________________
elinux-MinnowBoard mailing list
elinux-MinnowBoard at lists.elinux.org
http://lists.elinux.org/mailman/listinfo/elinux-minnowboard

_______________________________________________
elinux-MinnowBoard mailing list
elinux-MinnowBoard at lists.elinux.org
http://lists.elinux.org/mailman/listinfo/elinux-minnowboard

_______________________________________________
elinux-MinnowBoard mailing list
elinux-MinnowBoard at lists.elinux.org
http://lists.elinux.org/mailman/listinfo/elinux-minnowboard

_______________________________________________
elinux-MinnowBoard mailing list
elinux-MinnowBoard at lists.elinux.org
http://lists.elinux.org/mailman/listinfo/elinux-minnowboard

_______________________________________________
elinux-MinnowBoard mailing list
elinux-MinnowBoard at lists.elinux.org
http://lists.elinux.org/mailman/listinfo/elinux-minnowboard



More information about the elinux-MinnowBoard mailing list