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)

相关推荐

  • 怎么解决数据库中的bash: warning: setlocale问题

    技术怎么解决数据库中的bash: warning: setlocale问题这篇文章主要讲解了“怎么解决数据库中的bash: warning: setlocale问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟

    攻略 2021年11月16日
  • htmltextarea宽度如何设置(htmltextarea怎么设置高度)

    技术html textarea如何设置大小本篇内容介绍了“html textarea如何设置大小”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔

    攻略 2021年12月13日
  • 如何给SQL做个优化

    技术如何给SQL做个优化本篇内容主要讲解“如何给SQL做个优化”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何给SQL做个优化”吧!SQL 语句执行较慢的 3 个原因没有建

    攻略 2021年10月22日
  • Redis如何安装及配置

    技术Redis如何安装及配置小编给大家分享一下Redis如何安装及配置,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!安装Redis安装非常方便

    攻略 2021年11月15日
  • 论文翻译:2020GCRNLearning Complex Spectral Mapping With Gated Convolutional Recurrent Networks for Monaural Speech Enhancement

    技术论文翻译:2020GCRNLearning Complex Spectral Mapping With Gated Convolutional Recurrent Networks for Monaural Spee

    礼包 2021年12月9日
  • genie是什么程序(genie中文是啥名字)

    技术Genie的特点是什么本篇内容主要讲解“Genie的特点是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Genie的特点是什么”吧!一 数据平台的发展简介

    攻略 2021年12月20日