RTEMS crash with error 18 (RTEMS_CALLED_FROM_ISR) again.
nick.thomas at pixsan.com
Wed Feb 17 21:08:34 UTC 2010
> Yes. That's the hint. A path out of the ISR code isn't doing exactly
> the right thing.
> >> 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.
Looking at _CORE_mutex_Seize in coremutex.h. This is the inlined function
where the error 18 is generated.
Note, that 18 is hard coded in there. I was searching for the RTEMS_XXX
defined constant !
So, the error will be generated if:
_Thread_Dispatch_disable_level > 0 AND _wait is TRUE AND _System_state_Get()
Now, _wait is always TRUE, and I assume that _System_state_Get() also
returns TRUE after the system has been running for a while before the bug
So, it looks like the culprit here is the _Thread_Dispatch_disable_level
I will wait for the crash to happen again, and check it's value.
More information about the users