Stuck in a 'for' loop in _Watchdog_Insert.
Nick Thomas
nick.thomas at pixsan.com
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