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)

相关推荐

  • 显示器设置,戴尔2721d显示器设置

    技术显示器设置,戴尔2721d显示器设置1显示器设置、以win7系统为例,打开戴尔显示器,在屏幕左下角打开开始选项并选择其中的“控制面板”。
    2、然后在打开的“控制面板”中选择“外观和个性化”选项。
    3、然后在打开的新页

    生活 2021年10月27日
  • 怎么理解JavaScript中的变量、范围和提升

    技术怎么理解JavaScript中的变量、范围和提升本篇内容介绍了“怎么理解JavaScript中的变量、范围和提升”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这

    攻略 2021年11月20日
  • VB.NET对话框怎么用

    技术VB.NET对话框怎么用这篇文章主要为大家展示了“VB.NET对话框怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB.NET对话框怎么用”这篇文章吧。VB.NET

    攻略 2021年12月2日
  • linux部署dotnetcore应用(linux部署多个dotnetcore网站)

    技术在Linux下怎么为dotnet创建守护进程本篇内容介绍了“在Linux下怎么为dotnet创建守护进程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧

    攻略 2021年12月23日
  • 27 视图集

    技术27 视图集 27 视图集视图集
    “””视图集特点: 1,可以将一组相关的操作, 放在一个类中进行完成 2,不提供get,post方法, 使用retrieve, create方法来替代

    礼包 2021年11月4日
  • 人保是哪个保险公司的,人保和中保是一家保险公司吗

    技术人保是哪个保险公司的,人保和中保是一家保险公司吗中保和人保不是一家保险公司人保是哪个保险公司的,但同属于一个集团,且中保来自人保旗下。1、中保
    中国人寿保险(集团)公司属国家特大型金融保险企业,总部设在北京,世界50

    生活 2021年10月20日