6 #include <native/task.h>
7 #include <native/timer.h>
8 #include <native/sem.h>
17 RT_TASK_INFO curtaskinfo
;
19 // inquire current task
20 curtask
=rt_task_self();
21 rt_task_inquire(curtask
,&curtaskinfo
);
23 rt_sem_p(&semGlobal
,TM_INFINITE
);
26 int num
= * (int *)arg
;
27 rt_printf("Task name : %s \n", curtaskinfo
.name
);
30 int main(int argc
, char* argv
[])
35 // Perform auto-init of rt_print buffers if the task doesn't do so
36 rt_print_auto_init(1);
38 // Lock memory : avoid memory swapping for this program
39 mlockall(MCL_CURRENT
|MCL_FUTURE
);
41 /* create semaphore */
42 rt_sem_create(&semGlobal
,"semaphore",0,S_PRIO
);
44 rt_printf("start task\n");
51 * stack size (0=default),
53 * mode (FPU, start suspended, ...)
55 sprintf(str
,"hello-%d",i
);
56 rt_task_create(&demo_task
, str
, 0, 50+i
, 0);
63 rt_task_start(&demo_task
, &demo
, &i
);
66 rt_sem_broadcast(&semGlobal
);