drivers/timers_xeno/timers_xeno.c
changeset 459 ddd1a31b7960
parent 457 ee7f0092bcb1
child 463 f7455fef585f
equal deleted inserted replaced
458:a3906286b09b 459:ddd1a31b7960
    35 void TimerInit(void)
    35 void TimerInit(void)
    36 {
    36 {
    37   	int ret = 0;
    37   	int ret = 0;
    38   	char taskname[32];
    38   	char taskname[32];
    39 
    39 
       
    40 	// lock process in to RAM
    40   	mlockall(MCL_CURRENT | MCL_FUTURE);
    41   	mlockall(MCL_CURRENT | MCL_FUTURE);
    41 
    42 
    42   	snprintf(taskname, sizeof(taskname), "S1-%d", getpid());
    43   	snprintf(taskname, sizeof(taskname), "S1-%d", getpid());
    43 	rt_sem_create(&CanFestival_mutex, taskname, 1, S_FIFO);
    44 	rt_sem_create(&CanFestival_mutex, taskname, 1, S_FIFO);
    44 
    45 
    75 {
    76 {
    76 	rt_sem_delete(&CanFestival_mutex);
    77 	rt_sem_delete(&CanFestival_mutex);
    77 	rt_mutex_delete(&condition_mutex);
    78 	rt_mutex_delete(&condition_mutex);
    78 	rt_cond_delete(&timer_set);
    79 	rt_cond_delete(&timer_set);
    79 	rt_sem_delete(&control_task);
    80 	rt_sem_delete(&control_task);
       
    81 	rt_task_delete(&timerloop_task);
    80 }
    82 }
    81 
    83 
    82 /**
    84 /**
    83  * Take a semaphore
    85  * Take a semaphore
    84  */
    86  */
   101  * Timer Task
   103  * Timer Task
   102  */
   104  */
   103 void timerloop_task_proc(void *arg)
   105 void timerloop_task_proc(void *arg)
   104 {
   106 {
   105 	int ret = 0;
   107 	int ret = 0;
   106   	// lock process in to RAM
       
   107   	mlockall(MCL_CURRENT | MCL_FUTURE);
       
   108 
   108 
   109 	getElapsedTime();
   109 	getElapsedTime();
   110 	last_timeout_set = 0;
   110 	last_timeout_set = 0;
   111 	last_occured_alarm = last_time_read;
   111 	last_occured_alarm = last_time_read;
   112 	
   112 	
   147 	if(exitall){
   147 	if(exitall){
   148 		EnterMutex();
   148 		EnterMutex();
   149 		exitall(NULL,0);
   149 		exitall(NULL,0);
   150 		LeaveMutex();
   150 		LeaveMutex();
   151 	}
   151 	}
   152 	
       
   153 	rt_task_delete(&timerloop_task);
       
   154 }
   152 }
   155 
   153 
   156 /**
   154 /**
   157  * Create the Timer Task
   155  * Create the Timer Task
   158  * @param _init_callback
   156  * @param _init_callback