5 #include <native/intr.h>
7 #include <native/task.h>
9 const RTIME period
= 1e5
;
10 const int nsamples
= 10000;
14 RTIME arr_write_time
[10000];
15 RTIME time_diff
[10000];
17 void write_RTIMES(char * filename
, unsigned int number_of_values
,
21 file
= fopen(filename
,"w");
22 while (n
<number_of_values
) {
23 fprintf(file
,"%u;%llu\n",n
,time_values
[n
]);
29 void do_task(void *arg
)
32 RT_TASK_INFO curtaskinfo
;
35 // inquire current task
36 curtask
=rt_task_self();
37 rt_task_inquire(curtask
,&curtaskinfo
);
39 rt_task_set_periodic(NULL
, TM_NOW
, period
);
41 for(i
=0; i
<nsamples
; i
++)
43 write_time
= rt_timer_read();
44 arr_write_time
[i
] = write_time
;
46 rt_task_wait_period(NULL
);
48 time_diff
[i
] = rt_timer_read() - write_time
;
50 write_RTIMES("time_diff.csv",nsamples
,time_diff
);
57 rt_task_create(&task
, NULL
,0,50,0);
58 rt_task_start(&task
, &do_task
, NULL
);
62 /* Avoids memory swapping for this program */
63 mlockall(MCL_CURRENT
|MCL_FUTURE
);
65 /* Perform auto-init of rt_print buffers if the task doesn't do so */
66 rt_print_auto_init(1);
69 int main(int argc
, char* argv
[])
71 printf("\nType CTRL-C to end this program\n\n" );
73 // code to set things to run xenomai
79 // wait for CTRL-c is typed to end the program