Autosar事件机制——摘自百度文库

摘自https://wenku.baidu.com/view/19b75a8ff18583d04864591b.html,感谢原作者!

AUTOSAR事件机制

作者:邓孔宏

1.1 事件

事件是由操作系统管理的对象。事件机制只提供给拓展的任务,它开始任务到waiting和去到waiting状态的转换,是一种同步的方法。

每个任务有一个确切数量的事件集。这个任务被称作那些事件的所有者。一个个别的事件被识别通过它的所有者和它的名称(或掩码)。事件可以被用来传达二进制信息到(事件分配到的)拓展的任务。

有多种可用的选项去操作事件,依据事件的所有者是专用的任务还是另一个(不一定要是一个拓展的任务的)任务。所有的任务可以设置任何不是suspended拓展的任务的任何事件。只有所有者能清除它的事件和去等待它的事件的接收。

任何的任务或者第二类中断可以设置一个事件给一个非suspended任务,这样通过这个事件通知这个拓展的任务关于任何状态的改变。

任何情况下一个事件的接收者是一个拓展的任务。因此,不可能一个中断服务程序或一个基础的任务等待一个事件。一个事件只能被该事件的所有者任务清除。

如果至少一个任务正等待的事件已经发生,该处于waiting状态的拓展的任务被释放到ready状态。如果一个拓展的任务试图等待一个事件,而这个事件已经发生,该任务继续在running状态。

1.2 事件控制

StatusType  SetEvent(TaskType  <TaskID>,EventMaskType  <Mask>)

输入参数:TaskID 指的是要被设置一个或几个事件的任务

Mask 要被设置的事件的掩码

返回的Status值:

标准的: ·  没有错误,E_OK

拓展的: ·  任务<TaskID>是无效的,E_OS_ID

·  涉及的任务不是拓展的任务,E_OS_ACCESS

·  事件被能被设置因为涉及的任务处于suspended状态,E_OS_STATE

一致性类别:ECC1,ECC2

该服务可能在一个中断服务程序和任务层被调用,但是不是在hook函数里被调用。

任务<TaskID>的事件被设置根据事件掩码<MASK>。如果任务<TaskID>在等待至少一个在<MASK>里规定的事件,调用SetEvent导致任务被转换到ready状态。

在事件掩码里没有被设置的事件维持不变。

StatusType  ClearEvent(EventMaskType  <Mask>)

输出参数:MASK 要被清除的事件的掩码

返回的Status值

标准的: ·  没有错误,E_OK

·  不是来自拓展任务的调用,E_OS_ACCESS

·  调用在中断层,E_OS_CALLEVEL

一致性类别:ECC1,ECC2

拓展任务的事件通过调用ClearEvent被清除根据事件掩码<Mask>。

系统服务ClearEvent仅限于拥有该事件的拓展的任务。

StatusType  GetEvent(TaskType  <TaskID>,EventMaskRefType  <Event>)

输入参数:TaskID 所有的事件掩码要被返回的任务

输出参数:指向返回数据的内存

返回的状态值

标准的: ·  没有错误,E_OK

拓展的: ·  任务<TaskID>无效,E_OS_ID

·  涉及的任务<TaskID>不是一个拓展的任务,E_OS_ACCESS

·  涉及的任务<TaskID>处于suspended状态,E_OS_STATE

一致性类别:ECC1,ECC2

该服务返回任务<TaskID>当前的所有的事件二进制数字。

服务可能在中断服务程序,任务层和一些hook程序被调用。

任务<TaskID>的事件掩码的当前的状态被复制到<Event>。

涉及的任务应该是一个拓展的任务。

StatusType  WaitEvent(EventMaskType  <Mask>)

输入参数:Mask 等待的事件的掩码

返回的Status值:

标准的: ·  没有错误,E_OK

拓展的: ·  调用任务不是拓展的任务,E_OS_ACCESS

·  调用任务占据资源,E_OS_RESOURCE

·  调用在中断层,E_OS_CALLEVEL

一致性类别:ECC1,ECC2

调用任务被设置成waiting,除非规定在<Mask>里的至少一个事件已经发生。

如果等待的条件发生,这个调用强制重调度。如果重调度发生,任务的内部的资源被释放当任务处于waiting状态的时候。

该服务只能被拥有该事件的拓展的任务调用。

声明:本文主要内容从OSEK OS标准规范文件os223.pdf翻译而来,并结合AUTOSAR OS规范进行了部分调整。文件公开,用于研究和探讨,作者不承担引用本文而造成的任何后果。未经作者同意不允许用于任何商业用途。

原文地址:https://www.cnblogs.com/Elf-Cheung/p/9683921.html

时间: 2024-11-10 18:16:21

Autosar事件机制——摘自百度文库的相关文章

百度地图API详解之事件机制,function“闭包”解决for循环和监听器冲突的问题:

原文:百度地图API详解之事件机制,function"闭包"解决for循环和监听器冲突的问题: 百度地图API详解之事件机制 2011年07月26日 星期二 下午 04:06 和DOM编程里的事件模型一样,百度地图API也提供了类似的事件机制.本文介绍了事件监听的添加和移除方法,this指针和事件参数的使用以及绑定事件监听函数中涉及的闭包问题,最后分享了一个用来增强地图API事件机制的开源项目. 事件添加和移除 我们最简单的事件开始,下面的代码示例给map对象添加了click事件的监听

JavaScript事件机制

<script type="text/javascript" src="http://runjs.cn/gist/2zmltkfa/all"></script> [前端培养-作业01]javascript事件机制 1.javascript事件模型 2.e.target与e.currentTarget是干什么的? 3.preventDefault与stopPropagation是干什么的 4.什么是dispatchEvent? 5.说一说事件代

使用Selenium爬取百度文库word文章

转载请注明作者和出处: http://blog.csdn.net/c406495762 运行平台: Windows Python版本: Python3.x IDE: Sublime text3 前言 问题分析 预备知识 1 Selenium 11 简介 12 安装 13 基础知识 131 小试牛刀 132 模拟提交 133 元素选取 134 界面交互 135 添加User-Agent 2 Xpath 动手实战 1 页面切换 2 内容爬取 3 整体代码 总结 1 前言 大家都应该有过从百度文库下载

js仿百度文库文档上传页面的分类选择器_第二版

仿百度文库文档上传页面的多级联动分类选择器第二版,支持在一个页面同时使用多个分类选择器: 此版本把HTML,CSS,以及图片都封装到"category.js"中,解决因文件路径找不到样式及图片的问题: 源码下载地址:http://download.csdn.net/detail/testcs_dn/7290577 初始状态,一个页面使用两个,可以初始化之前选中的分类: 选择状态: 当选中一个分类后,会触发"onChange"事件,如上图中的"您选择的分类编

实战操作百度文库、百度经验营销,让您的“流量”稳居首页

其实百度系列的产品,一直是做营销的首选,但近来百度在出现不断的"地震",什么则西事件,数据事件,但依然也撼动不了他中文搜索引擎行业"霸主"的地位,而对于营销者来说百度文库/经验,一直是获取百度流量的首选. 文库上传不成功?私有?为什么对手轻松可以上传成功? 为什么现在文库上传越来越难? 为什么履次上次都不成功? 为什么别人的可以上传成功,我们每次上传都被私有化,是不是因为百度推出付费的文库收费服务,所以才会导致这些? 其实这几年互联网也在不断的变化,网站安全也在不断

我也来说说js的事件机制

原文链接:http://www.w3cfuns.com/notes/17398/8062de2558ef495ce6cb7679f940ae5c.html 学js,不懂事件机制,基本可以说学了js,就是白学.本人看了很多js相关书籍,评价一本说讲得好不好,我主要看两块儿,一块儿是js面向对象讲得怎么样,另一块儿就是这个事件机制这块儿.面向对象按下不表,这里就详细说说事件机制.事件这个东西可以说js中核心之一.为啥如此重要,因为js是一门事件驱动的语言. 说说本文的结构.(真的好长,又不想写成一个

js的事件机制二

js的事件机制二 1.给合适的HTML标签添加合适的事件 onchange-----select下拉框 onload-----body标签 单双击-----用户会进行点击动作的HTML元素 鼠标事件 ---用户会进行鼠标移动的操作的 键盘事件----用户会进行键盘操作的HTML元素 2.给HTML添加多个事件时,注意事件的冲突 举个例子:单击和双击 当事件的触发条件包含相同部分时候,会产生事件之间的冲突. 3.事件的阻断 当事件所监听的函数的将返回值返回给事件时 false:则会阻断当前所在HT

QT开发(六十三)——QT事件机制分析

QT开发(六十三)--QT事件机制分析 一.事件机制 事件是由系统或者QT平台本身在不同的时刻发出的.当用户按下鼠标.敲下键盘,或者是窗口需要重新绘制的时候,都会发出一个相应的事件.一些事件在对用户操作做出响应时发出,如键盘事件等:另一些事件则是由系统自动发出,如计时器事件. 事件的出现,使得程序代码不会按照原始的线性顺序执行.线性顺序的程序设计风格不适合处理复杂的用户交互,如用户交互过程中,用户点击"打开文件"将开始执行打开文件的操作,用户点击"保存文件"将开始执

Qt事件机制概览

Qt事件机制概览 Qt事件机制概览 消息循环 Qt事件循环 简介 QEventLoop 跨线程的信号和槽与事件循环 模态窗口 Native widget or Alien widget 创建Native widget 创建QApplication的message-only窗口 派发事件的公共基础方法 source code QApplication的创建过程 QWidget native QWidget 的创建过程 普通native widget回调过程 QApplication的message