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