RTEMS PowerPC progress.

Nick Thomas nick.thomas at pixsan.com
Fri Jun 4 06:32:30 UTC 2010

> OK, I have back-ported the timer server code from 4.9.4 in my 4.7.3
> source
> tree.
> But, it still crashes.
> I have noticed that it behaves itself for longer if I make each call to
> rtems_timer_server_fire_after preceeded by rtems_interrupt_disable(),
> and
> make the calling task RTEMS_NO_PREEMPT.
> And putting the settings back immediately after the call.
> This has stopped interrupts getting in during the period after
> _ISR_Enable,
> which was causing the _Thread_Dispatch_disable_level to go negative.
> But, I suspect that the Timer_Server_body task itself is running during
> this
> period, and causing the _Thread_Dispatch_disable_level to go to zero,
> and
> the next call to _Thread_Enable_dispatch() in
> rtems_timer_server_fire_after
> is making it go negative.

OK, so I have made another test modification.
At the top of rtems_timer_server_fire_after, I suspend the timer_server
task, and resume it just before it returns.
This prevents the task from running during that functions execution.

I know this doesn't sound like the right thing to do.

But, I now have two units on test overnight, and this morning both are
running OK. So, this change isn't harmful - even if it isn't very elegant.

At this stage I am going to go with what works.



More information about the users mailing list