From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <4416CC6A.8030605@domain.hid> Date: Tue, 14 Mar 2006 15:00:10 +0100 From: marcellin MIME-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit Subject: [Xenomai-help] the same error List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: xenomai@xenomai.org well, I've made some little modifications, now i use the "rt_task_shadow() function", but from the "rt_intr_wait() function" the numerical error is "-1". To answer to Gilles, i use the RTC irq because i work on a (slow) acquisition system wich works continuously, and don't allow time drifts. The use of xenomai is to have tiny latencies. the modified test program : #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#include //#include #include #include RT_TASK task; RT_TASK main_task; RT_INTR intr_desc; RT_COND cond; RT_MUTEX mutextest; int err,fd,retval,i,irqcount = 0; unsigned long data; char err_message[80]; const int TIMER_IRQ = 8; void mytask(void * cookie) { sleep(1); err = rt_cond_signal(&cond); if(err != 0){ printf("\nrt_cond_signal : %i\n",err); } } int main (int argc, char **argv) { mlockall(MCL_CURRENT | MCL_FUTURE); rt_timer_set_mode(TM_ONESHOT); err = rt_task_shadow(&main_task,"main_task",11,0); if(err != 0){ printf("\nrt_task_shadow : %i",err); } err = rt_cond_create(&cond,"condition"); if(err != 0){ printf("\nrt_cond_create : %i",err); } err = rt_mutex_create(&mutextest,"mut"); if(err != 0){ printf("\nrt_mutex_create : %i",err); } err = rt_task_create(&task,"SecondTask",0,99,0); if(err != 0){ printf("\nrt_task_create : %i",err); } err = rt_task_start(&task,&mytask,NULL); if(err != 0){ printf("\nrt_task_start : %i",err); } err = rt_cond_wait(&cond,&mutextest,20000000); if(err != 0){ printf("\nrt_cond_wait : %i",err); } printf("\nend \n"); rt_mutex_delete(&mutextest); rt_cond_delete(&cond); rt_task_delete(&main_task); rt_task_delete(&task); return(0); } regards Marcell1