This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: Hardware Watchdog


Interrupts may not be enabled in redboot, but
does that stop him from installing his own
tick handler and servicing the watchdog from there?
The maximum time on the 860 watchdog is around
three seconds with a 50Mhz CPU clock.
As Christoph mentioned, the watchdog activates
a hard reset cycle, and there is nothing you can
do to catch it. The other problem is that if you
disable the watchdog, you cannot reenable it
without performing a hard reset.

As well as servicing it with a tick interrupt
during redboot, you could also disable it if
the redboot polling mechanism detects a GDB
connect. You probably want the watchdog off
during debugging anyway, so that would allow the
target to boot with a watchdog in a normal run
state, yet reduce the complexity of having to
service it during a debug session.

good luck...

Doug

> -----Original Message-----
> From: Gary Thomas [mailto:gthomas@redhat.com]
> Sent: Thursday, July 26, 2001 12:24 PM
> To: Christoph Csebits
> Cc: Doug Fraser; fche@redhat.com; ecos-discuss@sources.redhat.com
> Subject: Re: [ECOS] Hardware Watchdog
> 
> 
> 
> On 26-Jul-2001 Christoph Csebits wrote:
> > On Thu, Jul 26, 2001 at 09:49:29AM -0600, Gary Thomas wrote:
> >> 
> >> On 26-Jul-2001 Christoph Csebits wrote:
> >> > Nevertheless my watchdog is not
> >> > software controlled. :-|
> >> > 
> >> 
> >> What happens when your watchdog fires?   
> > 
> > the MPCs reset lines are pulled accordingly
> > to do an hard reset. no way to catch it. :-)
> > 
> >> Fixing this may be hard.  Within RedBoot, there is a 
> notion of "idle"
> >> routines which will be called while RedBoot waits.  
> However, once the
> >> GDB stubs start running, all of that stops and everything is simply
> >> polled based on the serial port.
> > 
> > I have a running version of RedBoot, but as i told, from
> > time to time i am running into a loop, and the board resets.
> > Then i start to locate the loop and fix it.
> > 
> > The best solution may be a timer interrupt routine
> > with detaching the interrupt when starting an application.
> > (Someone mentioned it earlier, thanks to him
> > - i lost the mail and do not remember the name)
> > 
> > Is it the right way to do it with
> > cyg_drv_interrupt_create( );
> > cyg_drv_interrupt_attach( );
> > cyg_drv_interrupt_acknowledge( );
> > cyg_drv_interrupt_unmask( );
> >:
> 
> Sorry, interrupts are not enabled in RedBoot, so this just 
> isn't going to
> cut it.
> 
> What is the period on the watchdog?
> Do you have any ideas what's happening (in RedBoot or 
> otherwise) then it fails?
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]