Stuck in a 'for' loop in _Watchdog_Insert.

Thomas Doerfler Thomas.Doerfler at embedded-brains.de
Thu May 20 06:54:09 UTC 2010


Nick,

without going into details on the current topic: I have scanned back the
problems you mentioned in the past. It all seems like your RTEMS system
is tending to get inconsistent from time to time. :-(

So there are some things I would ask you to check:

- do you have caching problems? Maybe the cache (e.g. during interrupt
processing) is not working consistently. Switching the cache off and
doing some more tests might help there. If your JTAG debugger supports
it, checking the differences between the data cache content and the main
memory may help also.

- There are systems using the PPC405 running in real world. So what are
the differences in your system? Are you using interrupts, that are not
based on the RTEMS interrupt entry code? Are you using critical interrupts?

- which BSP are you working with?

- which real chip derivate are you using?

- which compiler toolchain are you using?

- Did you modify the code generation switches of the toolchain?

RTEMS-4.7.1 is rather old, but it should not THAT unreliable ;-)

wkr,
Thomas.


Am 20.05.2010 07:49, schrieb Nick Thomas:
> 
> Hi, I am using RTEMS 4.7.1, on PowerPC.
> 
> I have just seen an odd behavior in watchdoginsert.c, in the
> _Watchdog_Insert function.
> 
> It looks like there is one Watchdog_Control in the chain, because the
> Previous and Next nodes in the linked list point to itself. So the
> _Watchdog_Next( after ) always returns the same Watchdog_Control struct.
> 
> Also, the after->delta_interval is zero.
> 
> But, the delta_interval variable in _Watchdog_Insert is 99. So, the
> delta_interval is never getting dcremented.
> 
> Consequently, there is no way out of the 'for' loop!
> 
> 
> I have commented out the _ISR_Flash( level ); call according to the comments
> on that file, but this problem still happens from time to time.
> 
> 
> So, what could cause this problem?
> 1) Is it right that the chain nodes point to itself? I would expect the last
> one to be NULL to mean the end of the list.
> 2) Can the after->delta_interval be zero in normal operation?
> 
> Help appreciated.
> 
> 
> Regards
> 
> Nick
> 
> -----------------------------
> Nick Thomas
> Email: nick.thomas at pixsan.com 
> 
> _______________________________________________
> rtems-users mailing list
> rtems-users at rtems.org
> http://www.rtems.org/mailman/listinfo/rtems-users


-- 
--------------------------------------------
Embedded Brains GmbH
Thomas Doerfler           Obere Lagerstr. 30
D-82178 Puchheim          Germany
email: Thomas.Doerfler at embedded-brains.de
Phone: +49-89-18908079-2
Fax:   +49-89-18908079-9



More information about the users mailing list