RTEMS Class example Timer : strange behaviour (to me)
pierre kestener
pierre.kestener at cea.fr
Mon May 18 07:31:14 UTC 2009
Yes, exactly.
For latest CVS sources, defining USE_TIMER_SERVER triggers the problem.
With RTEMS 4.9 whatever this variable, the example is working as expected.
The problem certainly is with the timer server code. I'll try to have a
look there.
Pierre.
Joel Sherrill a écrit :
> pierre kestener wrote:
>> Hello,
>>
>> The problem can be reproduced using the Sparc/SIS simulator target
>> with the latest CVS sources and the 4.10 toolchain. However the
>> problem disappears
>> when falling back to RTEMS version 4.9.
>>
>>
> I have duplicated this and wonder if the USE_TIMER_SERVER
> is NOT defined when it works and is defined when it does not.
>
> That would indicate an issue with the task timer server code
> that is likely version independent.
> Please confirm this setting for your "works" and "broken" cases.
>
> FWIW you can also do this to get the time stamp:
>
>
> { struct timespec uptime;
> rtems_clock_get_uptime( &uptime );
> fprintf( stderr, " %d:%d\n", uptime.tv_sec, uptime.tv_nsec );
> }
>
> rtems_clock_get_uptime() is fairly new but handy. :)
>
> --joel
>> Can someone confirm he has the same wrong output as me for this test
>> using the SIS target ?
>> Wrong output of timer class example (withthe only modification to
>> have a print_time following each LED print) :
>> *** LED BLINKER -- timer ***
>> LED OFF 00:00:01
>> LED ON 00:00:02
>> LED OFF 00:00:03
>> LED ON 00:00:05
>> LED OFF 00:00:07
>> LED ON 00:00:09
>> LED OFF 00:00:11
>> LED ON 00:00:13
>> LED OFF 00:00:15
>> LED ON 00:00:17
>>
>> The first LED_ON is missing.
>> Moreover it looks like after a while, the 2 timers are
>> "sequentialized" instead of interleaved.
>>
>> Pierre Kestener.
>>
>>
>> pierre kestener a écrit :
>>
>>> More about timer example problem in Leon2 BSP :
>>>
>>> I have tried different couples RTEMS toochain / RTEMS src :
>>> - 4.9.0 from rtems.org
>>> - RCC 1.1.1 from Gaisler (RTEMS scr 4.8)
>>> - RCC 1.1.99.1 from Gaisler (downloaded in Feb 2009)
>>> - RCC 1.1.99.3 from Gaisler (downloaded today)
>>>
>>> the problem described below only appears with the latest Gaisler
>>> toolchain/src 1.1.99.x
>>>
>>> everything is fine when using the release toolchain/src 4.9.0 (from
>>> rtems.org) or with the older Gaisler toolchain/src couple.
>>>
>>> I haven't tried a more recent toolchain/src neither the CVS sources.
>>>
>>> Pierre.
>>>
>>> pierre kestener a écrit :
>>>
>>>> Hello,
>>>>
>>>> I am running the timer class example on real hardware (Sparc/Leon2)
>>>> with printing on console.
>>>>
>>>> Timer1 and 2 service routines are each set with a 2 seconds
>>>> interval, but I noticed that
>>>> after 2 fireouts, time between 2 LED_ON (or LED OFF) prints
>>>> becomes 4 seconds.
>>>> To illustrate this, I put a rtems_time_of_day global variable
>>>> named "now" in the source code to use it to print time.
>>>>
>>>> Here is the corresponding output :
>>>>
>>>> *** LED BLINKER -- timer ***
>>>> LED ON 00:00:00
>>>> 01/01/2009 LED
>>>> OFF 00:00:01
>>>> 01/01/2009 LED ON
>>>> 00:00:02
>>>> 01/01/2009 LED
>>>> OFF 00:00:03
>>>> 01/01/2009 LED ON
>>>> 00:00:05
>>>> 01/01/2009 LED
>>>> OFF 00:00:07
>>>> 01/01/2009 LED ON
>>>> 00:00:09
>>>> 01/01/2009 LED
>>>> OFF 00:00:11
>>>> 01/01/2009 LED ON
>>>> 00:00:13
>>>> 01/01/2009 LED
>>>> OFF 00:00:15
>>>> 01/01/2009 LED ON
>>>> 00:00:17 01/01/2009
>>>>
>>>> I also noticed that if I comment the line calling Timer2 service
>>>> routine
>>>> Timer_Routine(Timer2, NULL);
>>>> in the Init task, then Timer1 is called twice and then it stops, no
>>>> print anymore.
>>>> *** LED BLINKER -- timer ***
>>>> LED ON 00:00:00
>>>> 01/01/2009 LED ON
>>>> 00:00:02
>>>> 01/01/2009 Can
>>>> someone help me and give some explanation of what seems strange to
>>>> me ?
>>>> Thank you in advance.
>>>>
>>>> Pierre Kestener.
>>>>
>>>>
>>
>>
>> _______________________________________________
>> rtems-users mailing list
>> rtems-users at rtems.org
>> http://www.rtems.org/mailman/listinfo/rtems-users
>>
>
--
+--------------------------------------------------------+
Pierre KESTENER
CEA Saclay -- DSM/IRFU/SEDI/TRAPS
91191 Gif-sur-Yvette - FRANCE
tel : +33 (0)1 69 08 57 09
fax : +33 (0)1 69 08 31 47
http://pierre.kestener.org/
+--------------------------------------------------------+
More information about the users
mailing list