SIS in "real time"

Heinz Junkes junkes at fhi-berlin.mpg.de
Tue Apr 13 13:25:08 UTC 2021


rtems-examples, master

commit d5ba50c15c6bd188d4bb5921ae520e1066597ab1 (HEAD -> master, origin/master, origin/HEAD)
Author: Vijay Kumar Banerjee <vijay at rtems.org>
Date:   Fri Mar 26 14:44:30 2021 -0600

    lvgl/wscript: Add libpath to search for required libraries

Heinz

> On 13. Apr 2021, at 15:09, Joel Sherrill <joel at rtems.org> wrote:
> 
> 
> 
> On Tue, Apr 13, 2021 at 8:02 AM Heinz Junkes <junkes at fhi-berlin.mpg.de> wrote:
> Unfortunately I still do not understand it. Under Unix it runs perfectly and also the 
> values are displayed correctly.
> 
> In the debugger, the contents of the structure timespec are displayed correctly.
> 
> Another point that probably makes the program hang:
> 
> the function pthread_cond_timedwait(&cond, &mutex, &timeout) returns "1" and does not wait for the timeout.
> This return value should not exist at all?
> 
> Under Unix, as expected, "110" is returned. ETIMOUT.
> 
> What's your current version of the source?
> 
> --joel 
> 
> Heinz
> 
> 
> > On 12. Apr 2021, at 20:38, Gedare Bloom <gedare at rtems.org> wrote:
> > 
> > On Fri, Apr 9, 2021 at 11:45 AM Heinz Junkes <junkes at fhi-berlin.mpg.de> wrote:
> >> 
> >> Jiri, Joel, thanks for your answers.
> >> 
> >> @Joel: I was wondering that rtems-examples in psx_example_3 does not wait 3 seconds.
> >> 
> >> I made a curious observation:
> >> 
> >> in the original code:
> >> 
> >>   clock_gettime( CLOCK_REALTIME, &timeout );
> >>   timeout.tv_sec += 3;
> >>   timeout.tv_nsec = 0;
> >>   printf("The task is coming to enter in a timed wait\n");
> >>   pthread_cond_timedwait(&cond, &mutex, &timeout);
> >> 
> >> 
> >> I then inserted some printfs and found that the "3" is added to the nsec’s.
> >> 
> >> Then I added the rtems-timespec-helpers routines, but get the same behavior:
> >> 
> >> 
> >> void * print_hello(void * arg)
> >> {
> >>  struct timespec now, timeout;
> >>  rtems_timespec_set(&timeout, 3, 0);
> >> 
> >>  printf("<child>: Hello World! task with max priority \n");
> >>  clock_gettime( CLOCK_REALTIME, &now );
> >> printf("now tv_sec = %d, tv_nsec = %d\n", now.tv_sec, now.tv_nsec);
> >>  rtems_timespec_add_to(&timeout, &now);
> >> printf("timeout tv_sec = %d, tv_nsec = %d\n", timeout.tv_sec, timeout.tv_nsec);
> > 
> > Please try with the appropriate type sizes and report back what you find.
> > 
> > tv_sec is of type time_t
> > tv_nsec is of type long
> > 
> > %d will only take 32b of those values, so you get some kind of garbage
> > (that can depend on endianness)
> > 
> >>  printf("The task is coming to enter in a timed wait\n");
> >>  pthread_cond_timedwait(&cond, &mutex, &timeout);
> >>  printf("The task is coming out from the timed wait \n");
> >>  return NULL;
> >> }
> >> 
> >> program output:
> >> 
> >> <main> Enter in the main
> >> Creating first task
> >> <child>: Hello World! task with max priority
> >> now tv_sec = 4766459, tv_nsec = 567993600
> >> timeout tv_sec = 4766459, tv_nsec = 567993603
> >> The task is coming to enter in a timed wait
> >> The task is coming out from the timed wait
> >> First Task created
> >> Creating second task
> >> <child>: Hello World! Task with lowest priority Second task created
> >> <main> Out of the main
> >> 
> >> If I now swap the arguments in the set-function , i.e. instead of
> >> rtems_timespec_set(&timeout, 3, 0);
> >> 
> >> rtems_timespec_set(&timeout, 0, 3);
> >> 
> >> it looks as it should
> >> 
> >> <child>: Hello World! task with max priority
> >> now tv_sec = 10766729, tv_nsec = 567993600
> >> timeout tv_sec = 10766732, tv_nsec = 567993600
> >> The task is coming to enter in a timed wait
> >> The task is coming out from the timed wait
> >> First Task created
> >> Creating second task
> >> <child>: Hello World! Task with lowest priority Second task created
> >> <main> Out of the main
> >> 
> >> But still no timed wait  recognizable :-(
> >> 
> >> Heinz
> >> 
> >> 
> >> 
> >> _______________________________________________
> >> users mailing list
> >> users at rtems.org
> >> http://lists.rtems.org/mailman/listinfo/users
> 
> _______________________________________________
> users mailing list
> users at rtems.org
> http://lists.rtems.org/mailman/listinfo/users

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2542 bytes
Desc: not available
URL: <http://lists.rtems.org/pipermail/users/attachments/20210413/3278d2e8/attachment-0001.bin>


More information about the users mailing list