Breno Carneiro Pinheiro wrote:
> Hi all, I wanna some help with my application. I'm learning about
> Xenomai POSIX and Native API. I wonder know what is wrong with my code
> below because both don't worked out:
>
> POSIX:
>
> #include <sys/mman.h>
>
> #include <posix/pthread.h>
> #include <posix/time.h>
>
> #include <stdio.h>
>
> static pthread_t task_desc;
> void task_body (void *cookie)
> {
> struct timespec time;
> clock_gettime(CLOCK_MONOTONIC, &time);;
> pthread_make_periodic_np(pthread_self(),&time, 1000000000);
> while(1) {
> printf("%s\n","a");
> }
> }
>
> int main (int argc, char *argv[])
>
> {
> int ret;
> pthread_attr_t thattr;
>
> pthread_attr_init(&thattr);
> pthread_attr_setdetachstate(&thattr, 0);
> pthread_attr_setstacksize(&thattr, 1024);
> ret = pthread_create(&task_desc, NULL, &task_body, NULL);
>
> if(!ret)
> pthread_join(task_desc, NULL);
>
> }
>
> and NATIVE
>
> #include <sys/mman.h>
> #include <native/task.h>
> #include <native/queue.h>
> #include <native/intr.h>
> #include <native/pipe.h>
>
> #include <stdio.h>
> #define TASK_PRIO 99 /* Highest RT priority */
> #define TASK_MODE 0 /* No flags */
> #define TASK_STKSZ 0 /* Stack size (use default one) */
>
> RT_TASK task_desc;
> RTIME period_ns = 1000000000llu;
> void task_body (void *cookie)
> {
> unsigned long overrun;
> rt_task_set_periodic(NULL, TM_NOW, rt_timer_ns2ticks(period_ns));
> while(1) {
> rt_task_wait_period(&overrun);
> printf("%s\n","a");
> }
> }
>
> int main (int argc, char *argv[])
>
> {
> int err;
> int ret;
> pthread_attr_t thattr;
> mlockall(MCL_CURRENT|MCL_FUTURE);
>
> err = rt_task_create(&task_desc,
> "teste",
> TASK_STKSZ,
> TASK_PRIO,
> TASK_MODE);
>
>
> if (!err)
> rt_task_start(&task_desc,&task_body,NULL);
>
> /* ... */
> }
>
> void cleanup (void)
>
> {
> rt_task_delete(&task_desc);
> }
>
> I used the Makefile attached and tried to run on powerpc processor using
> NFS.
Please, don't bother use with obviously incomplete and buggy code.
Start with working examples. As I told you, there are examples on how to
use the native. POSIX and RTDM skin in
http://www.rts.uni-hannover.de/xenomai/lxr/source/examples/
Can you make and run them on your target?
Wolfgang.
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help