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)

相关推荐

  • Python怎么修改表格数据

    技术Python怎么修改表格数据这篇文章主要介绍“Python怎么修改表格数据”,在日常操作中,相信很多人在Python怎么修改表格数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Pyt

    攻略 2021年11月29日
  • Ajax技术中有哪些局限性

    技术Ajax技术中有哪些局限性这篇文章主要讲解了“Ajax技术中有哪些局限性”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Ajax技术中有哪些局限性”吧!  Ajax技术

    攻略 2021年11月13日
  • 如何使用Python和Prometheus跟踪天气

    技术如何使用Python和Prometheus跟踪天气如何使用Python和Prometheus跟踪天气,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能

    攻略 2021年10月26日
  • C++11:std::tuple

    技术C++11:std::tuple C++11:std::tuple翻译来自:https://thispointer.com/c11-stdtuple-tutorial-examples/
    在本文中,

    礼包 2021年11月23日
  • 如何分析bootstrap和vue的区别

    技术如何分析bootstrap和vue的区别今天就跟大家聊聊有关如何分析bootstrap和vue的区别,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。区别:1、B

    攻略 2021年11月2日
  • 用java技术实现网上聊天系统(java聊天室系统整体设计)

    技术基于Java怎么实现简易的局域网对话系统基于Java怎么实现简易的局域网对话系统,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。先说一下写的确实比较一般,

    攻略 2021年12月20日