Help: timer_create() blocks all system?!

Till Straumann strauman at slac.stanford.edu
Wed Apr 7 15:03:39 UTC 2004


Did you configure posix timers into the system?

T.

Alex wrote:

>Hi,
>I am trying to use timers in rtems. I have the following sample:
>
>#include <bsp.h>
>#include <time.h>
>#include <stdio.h>
>#include <stdlib.h>
>#ifndef _POSIX_TIMERS
>   #error "rtems is supposed to have timer_create"
>#endif
>
>void sigalarm(int signo, siginfo_t*extra, void*cruft)
>{
>	printf( "\nSIGALARM CALLED...\n");
>}
>
>timer_t mytimer;
>
>rtems_task Init(rtems_task_argument ignored)
>{
>  struct sigevent 	evp;
>  int              	result;
>  struct itimerspec 	ts;
>  int 			i;
>  sigset_t 		sigmask;
>
>  //0. signal handler
>  struct sigaction act;
>  sigemptyset(&act.sa_mask);
>  act.sa_flags=SA_SIGINFO;
>  act.sa_sigaction=sigalarm;
>  if(sigaction(SIGRTMIN,&act,NULL) <0)
>  {
>  	printf( "\nsigaction error...\n");
>	exit(0);
>  }
>
>  //1. Create timer
>  evp.sigev_notify = SIGEV_SIGNAL;
>  evp.sigev_signo = SIGRTMIN;
>  evp.sigev_value.sival_ptr=(void*) &mytimer;
>
>  printf( "\nBefore timer_create...\n");
>  result = timer_create(CLOCK_REALTIME, &evp, &mytimer );
>  printf( "\nAfter timer create...\n");
>
>  //2. Start Timer
>  ts.it_interval.tv_sec=5;
>  ts.it_interval.tv_nsec=10000;
>  ts.it_value=ts.it_interval;
>  result=timer_settime(mytimer,0,&ts,NULL);
>  printf( "\nAfter timer settime...\n");
>
>  for(i=0;i<200000;i++) ;
>
>  sigemptyset(&sigmask);
>
>  sigsuspend(&sigmask);
>
>  printf( "\nSome signal has arrived...\n");
>
>  timer_delete(mytimer);
>  exit(0);
>}
>
>/* configuration information */
>
>#define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
>#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
>#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
>#define CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
>#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
>#define CONFIGURE_MAXIMUM_TASKS 1
>#define CONFIGURE_MAXIMUM_POSIX_TIMERS 10
>#define CONFIGURE_MAXIMUM_TIMERS 10
>#define CONFIGURE_MAXIMUM_RTEMS_TIMERS 10
>#define CONFIGURE_INIT
>#include <confdefs.h>
>/* end of file */
>
>
>Why the program hangs in the timer_create() POSIX function?
>Any help?
>In the mailling list I saw a message with a doubt like this one
>but doent helped me... :-(
>
>Thanks in advance...
>
>Alex
>
>PS: I am a beginner in RTEMS world
>BSP=i686
>	
>Alex
>
>
>___________________________________________________________________________________________
>IOL Flash. A net normal em versao acelerada.
>Promocao: Ligue-se a Internet pelo IOL Flash e ganhe um Vale de €10 da Galp!
>Saiba como: http://www.iol.pt/central_utilizador/iol_flash/promocao.php
>
>  
>






More information about the users mailing list