vx works获取时间(vxworks中的任务是干嘛的)

技术vxworks中Event是什么小编给大家分享一下vxworks中Event是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Event

边肖将与您分享vxworks中的事件。相信大部分人都不是很了解,所以分享这篇文章供大家参考。希望你看完这篇文章后会有很多收获。让我们一起来发现吧!

事件是一种高效的任务间同步机制。事实上,它还可以与一些资源(信号量和消息队列)同步。使用xxEvStart()将当前任务注册到相应的资源。当此资源生效并且此资源上没有其他任务被阻止时,系统将向此注册的任务发送事件。结合Event的基本操作,可以实现任务和各种资源的同步操作。

/*与资源相关的选项*/# define EVENTS _ OPTIONS _ NONE0x 00 # define EVENTS _ SEND _ ONCE0x 01/*在EVENTS SEND之后取消注册事件*/# define EVENTS _ ALLOW _ OVERWRITE0x 02/*可以覆盖以前的注册*/# define EVENTS _ SEND _ IF _ FREE0x 04/*在xxxEvStart()*/STATUS semEvStart(SEM _ ID semi,UINT32 events,UINT8 options)中发送事件;状态semEvStop状态msgQEvStart(MSG_Q_ID msgQId,UINT32事件,UINT8选项);状态msgQEvStop(MSG _ Q _ ID msgQId);

看一个例子。

/*版权所有2020 VxWorks 567 */# include stdio . h/* printf()*/# include eventlib . h/* eventReceive()*/# include semevlib . h/* include msgqevlib . h/* msgQEvStart()*/#定义MSGS _ NUM 5 #定义MSG _ Lstatic SEM _ ID semId静态MSG _ Q _ ID msgQIdvoid testEvent(){ _ Vx _ event _ t eventsReceived;/*一个资源用二进制信号量*表示/semi=sembcreate (SEM _ q _ FIFO,SEM _ empty);/*将当前任务注册到这个信号量*/semevstart(SEM,vxev01,events _ options _ none);/*用消息队列表示一个资源*/msgqid=msgqcreate (msgs _ num,msg _ len,msg _ q _ FIFO);/*将当前任务注册到此消息队列*/msgqevstart (msgqid,vxev02,events _ options _ none);While(1) {/*当任何资源有效时,它将被处理*/事件接收(vxev01 | vxev02,events _ wait _ any,wait _ forever,接收到的事件);如果(eventsreceivedvxev 01){/* semaphore有效,并且没有其他任务可以申请semaphore */printf(' \ n \ t semphorais free \ n ');semTake(SeM,WAIT _ FOURE);} else if(EventsReceiveDVXEV 02){/*新消息到达,没有其他任务读取该消息*/printf(\ n \ tmsgQ空闲\ n ');msgQReceive(msgQId,NULL,0,WAIT _ FOREVER);}}}}} Void FreeSEM () {/* Release信号量,表示对应的资源有效*/SEM give(semi);}void freeMsgQ(){ /*发送消息表示对应资源有效*/msgQSend(msgQId,0,0,0,0);}

实施效果

vxworks中Event是什么

以上就是文章《什么是vxworks中的事件》的全部内容。感谢您的阅读!相信大家都有一定的了解,希望分享的内容对大家有所帮助。想了解更多知识,请关注行业资讯频道!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/155159.html

(0)

相关推荐

  • win10系统Docker怎么搭建设备共享平台stf

    技术win10系统Docker怎么搭建设备共享平台stf本篇内容介绍了“win10系统Docker怎么搭建设备共享平台stf”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如

    攻略 2021年12月13日
  • http2的真正性能到底如何

    技术http2的真正性能到底如何http2的真正性能到底如何,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、研究目的http2的概念提出已经有相当长一

    攻略 2021年11月16日
  • 鳄鱼属于哺乳动物吗,为什么说鳄是最高等的爬行动物

    技术鳄鱼属于哺乳动物吗,为什么说鳄是最高等的爬行动物提起鳄鱼,大家就会想到它是很凶猛的动物鳄鱼属于哺乳动物吗。生活在热带地区的非洲鳄,长达5米,重约1吨。它们有时会突然咬住到河边饮水的牛、羚羊、鹿,用力地把它们拖入水中,

    生活 2021年10月23日
  • 怎样生成一个基础的springboot项目

    技术怎样生成一个基础的springboot项目今天就跟大家聊聊有关怎样生成一个基础的springboot项目,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在线生成

    攻略 2021年12月2日
  • codcr是什么意思,CODcr后面的cr是什么意思

    技术codcr是什么意思,CODcr后面的cr是什么意思采用重铬酸钾(K2Cr2O7)作为氧化剂测定出的化学耗氧量表示为CODcrcodcr是什么意思。 COD是Chemical Oxygen Demand,化学耗氧量。

    生活 2021年10月29日
  • Java入门中Hashtable和HashMap的区别是什么

    技术Java入门中Hashtable和HashMap的区别是什么这篇文章将为大家详细讲解有关Java入门中Hashtable和HashMap的区别是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文

    攻略 2021年12月8日