TSR problems

leonp at plris.com leonp at plris.com
Sun Jun 5 12:02:08 UTC 2005


Hello, all.

I am stuck with the following problem: while using time server, the TSR does 
not fire. Contrary, without server everything works OK.
The rtems_timer_initiate_server returns OK.
When rtems_timer_server_fire_after() is called with delay that exceeds 1 tick, 
the timer does not fire at all. With 1 tick interval the timer fires once
and then doesn't fire (even though it is reset after it's firing).
All the functions involved return RTEMS_SUCCESSFUL, so it doesn't seem
like an initialization issue.
Again, the rtems_timer_fire_after() works fine.

Upon investigating this further, when breaking in the clock ISR
rtems_clock_tick() and doing dump_tasks in gdb I see that the ticks associated 
with the "TIME" task are not decremented from one time tick to the next. 
Looking inside the Timer Server function _Timer_Server_body(), I notice
that the execution is suspended at the first _Thread_Enable_dispatch()
and it is never resumed afterward.

Thanks ahead for any help.

P.S. Small remark: the server task name is displayed as "ITEM" and not "TIME" 
as it is supposed to be. The issue partially may be because it is hard coded 
for a little endian machine, while I am on a big endian machine.
-- 
Leon M.Pollak



More information about the users mailing list