Hello >Both lines above are essential. The first one makes sure your >application's memory will remain physically present and not swapped away >e.g. The second one turns the main thread of this program into a Xenomai >thread, and this is required to block on an event out of the real-time >domain like the arrival of a TDMA SYNC frame. > >But if you have a demo code that doesn't work while the above example >does, please post it.
This mean, when I want to use WAITONCYCLE in xmit_msg(void *arg) of frag-ip.c I need to add mlockall(MCL_CURRENT | MCL_FUTURE) in main() and rt_task_shadow(&task, "waitonsync", 1, 0) in xmit_msg(void *arg) ? Jochen >From: Jan Kiszka <[EMAIL PROTECTED]> >To: [EMAIL PROTECTED] >CC: rtnet-users@lists.sourceforge.net >Subject: Re: [RTnet-users] WAITONCYCLE_EX cycle number problem >Date: Thu, 10 Aug 2006 17:17:38 +0200 > >matrix_df hotmail wrote: > > Hello > > > >> Your build must have become inconsistent in some way. Are you sure that > >> the latest RTnet modules are installed on the master, not accidentally > >> some older ones? > > > > I am sure, but I will double check. > > > > When I use your test program it works: > > > > ----------------------------------------------------- > > #include <stdio.h> > > #include <sys/mman.h> > > #include <native/task.h> > > #include <rtnet.h> > > #include <rtmac.h> > > > > main() > > { > > int i, fd, err; > > RT_TASK task; > > > > mlockall(MCL_CURRENT | MCL_FUTURE); > > > > fd = rt_dev_open("TDMA0", O_RDWR); > > printf("open = %d\n", fd); > > > > rt_task_shadow(&task, "waitonsync", 1, 0); > > > > for (i=0; i < 100; i++) { > > err = rt_dev_ioctl(fd, RTMAC_RTIOC_WAITONCYCLE, > > TDMA_WAIT_ON_SYNC); > > if (err) > > printf("TDMA_WAIT_ON_SYNC = %d\n", err); > > } > > printf("done\n"); > > rt_dev_close(fd); > > } > > --------------------------------------------------------------- > > > > BUT when I remove the lines with > > mlockall(MCL_CURRENT | MCL_FUTURE); > > and > > rt_task_shadow(&task, "waitonsync", 1, 0); > > it FAILS with error=-13: > >Argh: "When I pull the plug, my TV doesn't work. Is it broken?" ;) > >Both lines above are essential. The first one makes sure your >application's memory will remain physically present and not swapped away >e.g. The second one turns the main thread of this program into a Xenomai >thread, and this is required to block on an event out of the real-time >domain like the arrival of a TDMA SYNC frame. > >But if you have a demo code that doesn't work while the above example >does, please post it. > >Jan > ><< signature.asc >> ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ RTnet-users mailing list RTnet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rtnet-users