1kHz timer behavior on Cyclone V

Oyake, Amalaye (398F) amalaye.oyake at jpl.nasa.gov
Wed Dec 7 21:48:55 UTC 2016


Hello Joel:

She is using the following function:

uint64_t rtems_clock_get_uptime_nanoseconds (void)

Returns the system uptime in nanoseconds.
Is this a monotonic time source? Could something preempt this function?

Could she also use:


1)    The RTEMS Rate Monotonic Manager, or the



2)    POSIX clock_gettime() ?


Regards,
-----------
* Amalaye Oyake                                       *
* Instrument Product Software Development Group  */\  *
* Jet Propulsion Laboratory, Pasadena            *||  *
*                                                /||\ *
**************************************************^^***


From: users <users-bounces at rtems.org> on behalf of Janet Schneider <janetsc at fb.com>
Date: Wednesday, December 7, 2016 at 1:38 PM
To: "joel at rtems.org" <joel at rtems.org>
Cc: "users at rtems.org" <users at rtems.org>
Subject: Re: 1kHz timer behavior on Cyclone V


Hi - thanks for the responses!



It is a very simple application that is only processing a 1 kHz timer for the purposes of this test.  There is no other CPU load on the system.  The only thing I do right now when the timer fires is calculate the time difference since the last timer fired.  Once a second, I output the average, min and max for that second.



I do have a delay it the main task, since it is just sitting there idle.  Would that account for such an increase in the time between the timer firing?



I will try the POSIX API next.



Thank you,

Janet

________________________________
From: Joel Sherrill <joel at rtems.org>
Sent: Wednesday, December 7, 2016 1:15:23 PM
To: Janet Schneider
Cc: users at rtems.org
Subject: Re: 1kHz timer behavior on Cyclone V



On Wed, Dec 7, 2016 at 11:44 AM, Janet Schneider <janetsc at fb.com<mailto:janetsc at fb.com>> wrote:

Hello,



I am running a 1kHz timer test on the Altera Cyclone V dev board.  I am trying to measure the average time period between the timer firing, and any variance on that latency.



I'm seeing an average of 1003 microseconds between the timer firing.  About once a second, I see the maximum time between the timer firing go up to 2500-3000 microseconds.


There are two sets of timers. One is per clock tick and one is per second.

My guesses are:

Do you have a sleep/delay statement in your thread?
There may be some work updating the time that occurs once per second. The implementation of this area has changed so I don't remember offhand if this is still the case.



I'm using rtems_clock_get_uptime_nanoseconds() to measure the time that the timer fires.  I have CONFIGURE_MICROSECONDS_PER_TICK set to 500.


What happens when the HW interrupt timer fires?

--joel

Has anyone else seen this (or something similar)?  Any ideas what might be happening here?



Thanks,

Janet

_______________________________________________
users mailing list
users at rtems.org<mailto:users at rtems.org>
http://lists.rtems.org/mailman/listinfo/users<https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.rtems.org_mailman_listinfo_users&d=DgMFaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=ipHQnEo1XnvLdE9wWxwn7A&m=PSdN3QZ704zCArL-e2FC8HNKBuxOYGI0eRi5dMuQb4c&s=eTxFRJzt-tRGJuYUztqYK5Oxmhq9j8bfp3the-WZgl4&e=>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20161207/4d57af21/attachment-0002.html>


More information about the users mailing list