Stuck in a 'for' loop in _Watchdog_Insert.

Nick Thomas nick.thomas at
Thu May 20 08:37:05 UTC 2010

Hi Thomas,
Thanks for your reply, my comments below.

> 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.

Not sure about caching problems. For this specific problem, if _ISR_Flash()
is commented out, then there should be no interrupts happening while stuck
in the for loop, because there was an _ISR_Disable( level ) call at the top
of the _Watchdog_Insert function.

I can't think of any reason how after->delta_interval could become zero
unless through the action of an interrupt. Does that mean the _ISR_Disable()
doesn't work?

JTAG debugger does support cache interrogation, through ICACHE and DCACHE
commands. Will try that.
But, not sure where about in main memory the data is!

> - 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?

All interrupts are set up using the ictrl_set_vector function. Not sure how
to tell if they are critical interrupts or 'normal' interrupts though.

More information about the users mailing list