RTEMS behaviour when using rtems_clock_tick incorrectly?

Sebastian Huber sebastian.huber at embedded-brains.de
Thu Jul 5 10:06:20 UTC 2012


Hello,

the rtems_clock_tick() function should be called only by the clock driver.  In 
the RTEMS configuration you specify the micro seconds per tick.  The clock 
driver will then normally setup a hardware timer which triggers in the 
configured interval.  The interrupt service routine corresponding to the 
hardware timer will call rtems_clock_tick().

On 07/05/2012 11:53 AM, Leonard Bise wrote:
> Hello all,
>
> We're working on a project where we have a RTEMS application which uses the
> rtems_clock_tick function to signal that a tick elapsed.
> Now I just noticed that in some case the implementation is badly done and this
> function can be called two successive times in a very short amount of time.
>
> This happens because the rtems_clock_tick is called from an IRQ which is
> triggered when receiving a synch signal over the MIL-1553 bus. This IRQ in some
> error cases can be trigged two times in the lapse of a few milliseconds.
>
> For debugging purposes and to better understand the problem we have, could
> anyone shed some light on what could or would happen to RTEMS scheduling in
> case the ticks are very close to each other instead of being called roughly
> once per second?

In case the interval between rtems_clock_tick() calls doesn't fit to the value 
specified in the configuration the time of day will be wrong (maybe only 
sometimes).  Also the timeouts may be wrong.  I would say this could lead to a 
pretty unpredictable behaviour.

-- 
Sebastian Huber, embedded brains GmbH

Address : Obere Lagerstr. 30, D-82178 Puchheim, Germany
Phone   : +49 89 18 90 80 79-6
Fax     : +49 89 18 90 80 79-9
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.





More information about the users mailing list