sis time overflow was Re: rtems_wake_after

Joel Sherrill joel.sherrill at OARcorp.com
Fri Jun 20 17:08:49 UTC 2003



Fabio Degiovanni - Eicas wrote:
> 
> Dear Jerry Needell,
>                                 thank you for your help. Some other
> questions: I have sis intalled, where can I find documentation about
> sis? When I use the target sim option in sparc-rtems-gdb do I use sis or
> another simulator?

You get sis.  tsim is Jiri Gaisler's new and improved simulator
that he supports via Gaisler Enterprises (www.gaisler.com).

> Where can I find the limitation of sparc-rtems-gdb simulator? In the
> tsim site it is clearly stated the limit of 232 instruction, but I
> didn't find anything for my simulator. I think that you correctly deduce
> that the same limit exists, but is there a document stating clearly this
> limit?

I recall that there is a limitation in sis where something like the
cycle counter is a 32 bit integer.  This is all a very recollection
so I am cc'ing this to Jiri.  If this is an internal counter in the
simulator, it might be possible to turn it into a 64-bit variable.
This would have some performance impact which I suspect that today's
fast CPU would offset.

> Thank you very much again for you help
> 
> Fabio Degiovanni
> 
> Jerry Needell wrote:
> 
> >
> > On Friday, Jun 20, 2003, at 10:34 US/Eastern, Fabio Degiovanni - Eicas
> > wrote:
> >
> >> Dear Jarry Needell,
> >>                                I think you were right: it is a
> >> problem of overflow. I tried with CONFIGURE_MICROSECONDS_PER_TICK
> >> 1000 and rtems_task_wake_after(1000). The problems is at the 305th
> >> iteration. I tried to put the directive rtems_clock_get(
> >> RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &inter ); to see at what time (in
> >> ticks this happens) and I found out at 305266 ticks.
> >
> >
> > I was just about to try that myself :-)
> >
> >> I don't understand what variables is subjected to overflow. I'm used
> >> to Linux real-time: in that case there is a periodic interrupt timer
> >> that is loaded to the value of MICROSECONDS_PER_TICK 1000, it counts
> >> down till 0 then it gives an interrupt, the interrupt service routine
> >> increment the value of ticks an reset the PIT to the
> >> MICROSECONDS_PER_TICK value. If RTEMS follows nearly the same
> >> procedure I don't see any point in which an overflow can occur. How
> >> does RTEMS work? What the variable that is subject to overflow? Why?
> >> Thank you very much for your help
> >>
> > The problem is not in RTEMS, but in the simulator. On real hardware,
> > it does not crash and it runs in "real time" :-) .
> >
> > - Jerry
> >
> >> Fabio Degiovanni
> >>
> >> --
> >> Dott. Ing. Degiovanni Fabio
> >> Eicas Automazione
> >> Via Vincenzo Vela, 27 10128 Torino (ITALIA)
> >> Telefoni +39-11-562.37.98/562.3088 Fax +39-11-436.06.79
> >>
> >
> 
> --
> Dott. Ing. Degiovanni Fabio
> Eicas Automazione
> Via Vincenzo Vela, 27 10128 Torino (ITALIA)
> Telefoni +39-11-562.37.98/562.3088 Fax +39-11-436.06.79

-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel 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