Java轮训任务_VxWorks中的轮询任务

我想写一个任务,对某些IO进行一些轮询 . 现在,我需要它不阻止cpu,而是每1微秒左右检查一次IO . 我是一个相对的VxWorks新手,只是意识到在我的轮询循环中插入_1789413可能不会做我需要它做的事情 . 我最好怎么做?

我已经发现 sysClkRateGet() 返回60,这不会阻止CPU中发生的其他事情,所以我猜 taskDelay() 不会对我这么做......还有什么能让我的停机时间缩短任务(超过1/60秒)?

edit

我想我已经发现,每执行一次执行我的短轮询功能的计时器就会更加明智 . 我触发了这样的计时器:

timer_t polltimerID;

struct itimerspec poll_time;

poll_time.it_value.tv_sec = 0;

poll_time.it_value.tv_nsec= 1000;

poll_time.it_interval.tv_sec = 0;

poll_time.it_interval.tv_nsec= 1000; // execute it every 1us

if(timer_create (CLOCK_REALTIME, NULL, &polltimerID))

printf("problem in timer_create(): %s",strerror(errno));

if(timer_connect (polltimerID,MyPollFunction,0))

printf("problem in timer_connect(): %s",strerror(errno));

if(timer_settime (polltimerID, 0, &poll_time, NULL))

printf("problem in timer_settime(): %s",strerror(errno));

但是我还不确定,计时器的优先级是什么,以及是否(以及如何)能够抢占当前任务,任何人?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值