RTEMS crash with error 18 (RTEMS_CALLED_FROM_ISR) again.
Nick Thomas
nick.thomas at pixsan.com
Wed Feb 17 17:27:00 UTC 2010
Hi, thanks again for your input.
> -----Original Message-----
> From: Joel Sherrill [mailto:joel.sherrill at oarcorp.com]
> Sent: 17 February 2010 17:04
> To: Nick Thomas
> Cc: rtems-users at rtems.com
> Subject: Re: RTEMS crash with error 18 (RTEMS_CALLED_FROM_ISR) again.
>
> On 02/17/2010 10:56 AM, Nick Thomas wrote:
> > Does that prove that it came from a task context?
> >
> >
> Depends. Sometimes on some targets, the trace from an ISR can follow
> back through from the ISR to the interrupted task. Do you see any of
> the ISR entry code in the back trace?
The backtrace doesn't go through any code that I recognize as ISR related.
>
> If there is no hint of being in an ISR (bit in PSR?), then there is
> something out of sync -- an ISR exit path which doesn't decrement the
> count, code which thinks it is in the register but it is in
> _ISR_Nest_level, or vice-versa.
_ISR_Nest_level is zero.
Does the _System_state_Get function have anything to do with this?
It appears just before the Error 18 is set, and _Internal_error_Occurred is
called.
What does _System_state_Get function do for us here?
Sometimes I have noticed the system will hang (lock up - not crash) with
_ISR_Nest_level stuck at 1. This has prevented tasks from running as the
system thinks it is constantly in an ISR.
I can manually flip _ISR_Nest_level back to zero (through BDI2000 debugger
interface) and then the tasks start running again, for a short while - until
a real crash occurs :(
I guess that also suggests that something is out of sync.
>
> The vectoring code is board dependent in your RTEMS version and this
> was fragile. It could be a very specific path in your BSPs version of
> this code.
>
> --joel
> > Regards
> >
> > Nick
> >
> >
> >
> >
>
>
> --
> Joel Sherrill, Ph.D. Director of Research& Development
> joel.sherrill at OARcorp.com On-Line Applications Research
> Ask me about RTEMS: a free RTOS Huntsville AL 35805
> Support Available (256) 722-9985
More information about the users
mailing list