<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Dec 31, 2020, 6:03 AM Sebastian Huber <<a href="mailto:sebastian.huber@embedded-brains.de">sebastian.huber@embedded-brains.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello Mattia,<br>
<br>
On 24/12/2020 11:24, Mattia Bottaro wrote:<br>
> I need to develop a multitasking real-time application with RTEMS <br>
> (preferably in Ada, but also C solutions are welcomed). I see that I <br>
> can use the Classic API <br>
> <<a href="https://docs.rtems.org/branches/master/c-user/index.html" rel="noreferrer noreferrer" target="_blank">https://docs.rtems.org/branches/master/c-user/index.html</a>>, but they <br>
> are unsuitable to my purposes. As you can read here <br>
> <<a href="https://docs.rtems.org/branches/master/c-user/task/directives.html#task-wake-when-wake-up-when-specified" rel="noreferrer noreferrer" target="_blank">https://docs.rtems.org/branches/master/c-user/task/directives.html#task-wake-when-wake-up-when-specified</a>>, <br>
> the rtems_task_wake_when directive is too coarse: "The timing <br>
> granularity of this directive is a second.".<br>
> I need to work with microseconds-granularity and I cannot find how to <br>
> do it.<br>
<br>
this limitation is do some implementation constraints which no longer <br>
apply. From an API point of view<br>
<br>
/**<br>
  * @ingroup RTEMSAPIClassicTypes<br>
  *<br>
  * @brief This type represents Classic API calendar times.<br>
  */<br>
typedef struct {<br>
[...]<br>
<br>
   /**<br>
    * @brief This member contains the clock tick of the second with <br>
values from 0<br>
    *   to rtems_clock_get_ticks_per_second() minus one.<br>
    */<br>
   uint32_t ticks;<br>
} rtems_time_of_day;<br>
<br>
it would be possible to also specify the clock driver ticks of a time <br>
point. The rtems_task_wake_when() uses _Thread_Timer_insert_realtime() <br>
which uses a time with a nanoseconds resolution. It would be easy to <br>
change the implementation of rtems_task_wake_when() to use the clock <br>
driver ticks.<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">This could be changed but I believe the original specifications called for second boundary. </div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
As already mentioned, the clock_nanosleep() provides this functionality <br>
already.<br>
<br>
-- <br>
embedded brains GmbH<br>
Herr Sebastian HUBER<br>
Dornierstr. 4<br>
82178 Puchheim<br>
Germany<br>
email: <a href="mailto:sebastian.huber@embedded-brains.de" target="_blank" rel="noreferrer">sebastian.huber@embedded-brains.de</a><br>
phone: +49-89-18 94 741 - 16<br>
fax:   +49-89-18 94 741 - 08<br>
<br>
Registergericht: Amtsgericht München<br>
Registernummer: HRB 157899<br>
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler<br>
Unsere Datenschutzerklärung finden Sie hier:<br>
<a href="https://embedded-brains.de/datenschutzerklaerung/" rel="noreferrer noreferrer" target="_blank">https://embedded-brains.de/datenschutzerklaerung/</a><br>
<br>
_______________________________________________<br>
users mailing list<br>
<a href="mailto:users@rtems.org" target="_blank" rel="noreferrer">users@rtems.org</a><br>
<a href="http://lists.rtems.org/mailman/listinfo/users" rel="noreferrer noreferrer" target="_blank">http://lists.rtems.org/mailman/listinfo/users</a></blockquote></div></div></div>