ticker hangs on bf537Stamp
Kolja Waschk
rtemsdev at ixo.de
Tue Oct 15 12:44:42 UTC 2013
> You can set a break point to _Thread_Delay_ended().
Ok, thanks, that's a good starting point.
After the first hit, it runs into _Scheduler_priority_Unblock which sets
"_Thread_Dispatch_necessary" = true.
The code following label doDispatch in cpu_asm.S shortly afterwards zeros the
flag (revealed by a HW watch on the DISPATCH_NEEDED location).
Finally, the interrupt is followed by execution of _ISR15_Handler, which calls
_Thread_Dispatch. That seems to decide (from "per_cpu->dispatch_necessary" ==
0) that no switch is needed.
After the second and third hit, _Thread_Delay_ended() ends without any attempt
to switch context. _ISR15_Handler is not called anymore.
A HW watch on the location of "dispatch_necessary" reveals that it is cleared
by _Thread_Start_multitasking line 38. Shouldn't that already have terminated
long ago?!
Kolja
More information about the users
mailing list