matrix_df hotmail wrote:
> Hello
>
> Is there any example which shows how to use WAITONCYCLE in user mode?
> Or some kind of documention?
>
> I tried to copy it from /broken/netshm but this is kernel mode and I did
> not get very far.
>
> int rtmac;
> char rtmac_name[] = "TDMA0";
> struct rtdm_getcontext_args getcontext;
>
> rtmac = open_rt(rtmac_name, O_RDONLY);
> if (rtmac < 0) {
> ret = rtmac;
> //goto err_rtmac1;
> printf("rtmac open failed!\n");
> }
> --> NOW compiling problem
> getcontext.struct_version = RTDM_CONTEXT_STRUCT_VER;
> ret = ioctl_rt(rtmac, RTIOC_GETCONTEXT, &getcontext);
> if (ret < 0) {
> printf("rtmac RTIOC_GETCONTEXT failed!\n");
> }
RTIOC_GETCONTEXT is a short path opener, only available to kernel-space
users (see also RTDM documentation). Therefore the compilation problems.
To invoke WAITONCYLE/WAITONCYLE_EX (see also stack/include/rtmac.h),
simply open the related TDMA device
fd = rt_dev_open("TDMA0", O_RDWR);
and issue RTMAC_RTIOC_WAITONCYCLE or RTMAC_RTIOC_WAITONCYCLE_EX from
your RT-thread:
err = rt_dev_ioctl(fd, RTMAC_RTIOC_WAITONCYCLE, TDMA_WAIT_ON_SYNC);
-or-
struct rtmac_waitinfo waitinfo = {
type: TDMA_WAIT_ON_SYNC,
ext_size: 0
};
err = rt_dev_ioctl(fd, RTMAC_RTIOC_WAITONCYCLE_EX, &waitinfo);
/* cycle number is now in waitinfo.cycle_no */
If you happen to create a nice demo with this information, please
contribute it so that we can put it into the examples repository.
Jan
signature.asc
Description: OpenPGP digital signature
------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________ RTnet-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/rtnet-users

