RTEMS Class example Timer : strange behaviour (to me)
Joel Sherrill
joel.sherrill at OARcorp.com
Mon May 18 13:43:10 UTC 2009
Pierre,
Would you mind filing a PR on this so you get notifications?
--joel
pierre kestener wrote:
> 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
>>>
>>>
>
>
>
--
Joel Sherrill, Ph.D. Director of Research & Development
joel.sherrill 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