收藏 分享(赏)

osek-2.23中文.pdf

上传人:weiwoduzun 文档编号:5703794 上传时间:2019-03-13 格式:PDF 页数:99 大小:2.19MB
下载 相关 举报
osek-2.23中文.pdf_第1页
第1页 / 共99页
osek-2.23中文.pdf_第2页
第2页 / 共99页
osek-2.23中文.pdf_第3页
第3页 / 共99页
osek-2.23中文.pdf_第4页
第4页 / 共99页
osek-2.23中文.pdf_第5页
第5页 / 共99页
点击查看更多>>
资源描述

1、OSEK 2.2.3中文版 Name Date Department Created by Weichun.yang 2007-Jan-02 Designation: User note Status: Draft File Name: osek_os223_en_ch_v0.2.doc Version: 0.2 Document key: -/- Pages: 1 of 99! Copyright WYA OSEK/VDX操作系统杨伟春 ( 译 ) 版本 2.2.3 2月 17号 , 2005 本文档是正式的发布版 , 并且取代全部先前发布的文档 . OSEK组织保持修改这些文档的权力 ,

2、保留不预先通知和不接受任何错误的 权力 。OSEK 2.2.3中文版 Name Date Department Created by Weichun.yang 2007-Jan-02 Designation: User note Status: Draft File Name: osek_os223_en_ch_v0.2.doc Version: 0.2 Document key: -/- Pages: 2 of 99! Copyright WYA 前言 OSEK/VDX是汽车的工业的 一个联合 项目 , 它的目标是为汽车上 分布式的控制单 元建立一个开放结构的 工业 标准 。 OSEK项目目

3、合 作 伙 伴 详细的 信息 , 请查阅 “O SEK Binding Specification“ 本文只介绍在汽车上使用实时 操作系统的 概念及 多任务处理的能力 。 它 不涉及 产品 实现的描述 。 本 文也 介绍 OSEK操作系统 - 应用程序接口 ( API) . 按 常规 , 解释和缩写 已经被 编 写 在另外的 内部 - 项目 “ OSEK Overall Glossary “ , 它是 “OSEK Binding Specification“的一部分 。 关于系统 的 执 行和 创建 , 请查阅 “OSEK Implementation Language“ (OIL). OSE

4、K 2.2.3中文版 Name Date Department Created by Weichun.yang 2007-Jan-02 Designation: User note Status: Draft File Name: osek_os223_en_ch_v0.2.doc Version: 0.2 Document key: -/- Pages: 3 of 99! Copyright WYA 目录 译者叙 7 Change History. 8 1 介绍 9 1.1 系统体系 9 1.2 文章前言 .12 1.3 文章的结构 12 2 摘要 .13 3 OSEK操作系统的架构 .15

5、 3.1 处理级别 .15 3.2 一致性阶层 ( Conformance classes) .16 3.3 OSEK OS和 OSEKtime OS的关系 18 4 Task管理 .19 4.1 Task概念 .19 4.2 Task 状态模式 19 4.2.1 Extended tasks19 4.2.2 Basic task .21 4.2.3 Task类型的比较 23 4.3 激活一个 task 23 4.4 Task切换机制 .23 4.5 Task优先级 ( Task priority ) .23 4.6 调度策略 .25 4.6.1 全抢占式调度 25 4.6.2 非抢占式调度

6、26 4.6.3 Tasks 组 .27 4.6.4 混合抢占式调度 27 4.6.5 选择一种调度策略 27 4.7 Tasks 的终止 .28 5 应用模式 .28 5.1 应用模式范围 28 5.2 启动性能 .28 5.3 应用模式支持 28 6 中断处理 .29 7 事件机制 .32 8 资源管理 .34 8.1 访问占用资源的行为 34 8.2 使用资源时的限制 34 8.3 调度作为一种资源 35 8.4 同步机制的问题 35OSEK 2.2.3中文版 Name Date Department Created by Weichun.yang 2007-Jan-02 Designa

7、tion: User note Status: Draft File Name: osek_os223_en_ch_v0.2.doc Version: 0.2 Document key: -/- Pages: 4 of 99! Copyright WYA 8.4.1 优先反转的解释 35 8.4.2 死锁 .36 8.5 OSEK天花板优先级协议 .36 8.6 OSEK 天花板优先协议对中断的扩展 37 8.7 内部资源 .39 9 警报 ( Alarms) 41 9.1 计数器 .41 9.2 Alarm 管理 41 10 消息 ( Messages) 43 11 错误管理 , 追踪和调试

8、 43 11.1 钩子程序 ( Hook routines ) .43 11.2 错误管理 .43 11.3 系统启动 .46 11.4 系统关闭 .47 11.5 调试 .47 12 系统服务的描述 48 12.1 系统对象 的定义 48 12.2 协定 ( Conventions ) .48 12.2.1 调用类型 48 12.2.2 合法调用 ( Legitimacy of calls) 48 12.2.3 错误特性 50 13 系统服务的 规范 51 13.1 基本数据类型 52 13.2 Task的管理 .52 13.2.1 数据类型 52 13.2.2 结构成员 53 13.2.2

9、.1 DeclareTask 53 13.2.3 系统服务 53 13.2.3.1 ActivateTask.53 13.2.3.2 TerminateTask 54 13.2.3.3 ChainTask.54 13.2.3.4 Schedule .55 13.2.3.5 GetTaskID 56 13.2.3.6 GetTaskState.56 13.2.4 常量 .57 13.2.5 命名规则 57 13.3 中断管理 .58 13.3.1 数据类型 58 13.3.2 系统服务 58 13.3.2.1 EnableAllInterrupts.58 13.3.2.2 DisableAllI

10、nterrupts59 13.3.2.3 ResumeAllInterrupts .59OSEK 2.2.3中文版 Name Date Department Created by Weichun.yang 2007-Jan-02 Designation: User note Status: Draft File Name: osek_os223_en_ch_v0.2.doc Version: 0.2 Document key: -/- Pages: 5 of 99! Copyright WYA 13.3.2.4 SuspendAllInterrupts.60 13.3.2.5 ResumeOS

11、Interrupts .61 13.3.2.6 SuspendOSInterrupts.62 13.3.3 命名规则 62 13.4 资源管理 .63 13.4.1 数据类型 63 13.4.2 成员结构 63 13.4.2.1 DeclareResource .63 13.4.3 System services 63 13.4.3.1 GetResource63 13.4.3.2 ReleaseResource .64 13.4.4 常量 .65 13.5 事件控制 .65 13.5.1 数据类型 65 13.5.2 结构成员 65 13.5.2.1 DeclareEvent.65 13.5

12、.3 系统服务 66 13.5.3.1 SetEvent66 13.5.3.2 ClearEvent 66 13.5.3.3 GetEvent.67 13.5.3.4 WaitEvent .67 13.6 Alarms68 13.6.1 数据类型 68 13.6.2 结构成员 69 13.6.2.1 DeclareAlarm69 13.6.3 系统服务 69 13.6.3.1 GetAlarmBase.69 13.6.3.2 GetAlarm 70 13.6.3.3 SetRelAlarm .70 13.6.3.4 SetAbsAlarm.71 13.6.3.5 CancelAlarm.73

13、13.6.4 常量 .73 13.6.5 命名规则 74 13.7 操作系统执行控制 74 13.7.1 数据类型 74 13.7.2 系统服务 74 13.7.2.1 GetActiveApplicationMode.74 13.7.2.2 StartOS .75 13.7.2.3 ShutdownOS.75 13.7.3 常量 .76 13.8 钩子程序 ( Hook routines ) 76 13.8.1 数据类型 76 13.8.2 系统服务 76 13.8.2.1 ErrorHook.76OSEK 2.2.3中文版 Name Date Department Created by W

14、eichun.yang 2007-Jan-02 Designation: User note Status: Draft File Name: osek_os223_en_ch_v0.2.doc Version: 0.2 Document key: -/- Pages: 6 of 99! Copyright WYA 13.8.2.2 PreTaskHook 77 13.8.2.3 PostTaskHook.77 13.8.2.4 StartupHook77 13.8.2.5 ShutdownHook .78 13.8.3 常量 .78 13.8.4 宏 ( Macros ) .78 14 执行

15、和应用规范主 题 79 14.1 实施提示 .79 14.1.1 实施方面的问题 79 14.1.2 参数执行 79 14.1.2.1 功能 80 14.1.2.2 硬件资源 80 14.1.2.3 配置运行时内容 .81 14.2 应用设计提示 81 14.2.1 资源管理 82 14.2.1.1 LIFO序列的使用 .82 14.2.1.2 API services的调用标准 .83 14.2.1.3 在 task终止或中断完成时仍占用资源 83 14.2.2 API调用的布置 .84 14.2.3 中断服务程序 84 14.2.3.1 不同类型的嵌套中断 .84 14.2.3.2 直接操

16、作的中断 .85 14.2.4 优先和抢占 86 14.2.5 内部资源的使用例子 .86 14.2.6 传递给 ShutdownOS的参数 86 14.2.7 错误处理 87 14.2.8 错误和警告 87 14.3 规 范实现的工具 88 15 从规范 1.0到 2.2的变化 .89 16 索引 ( index) .97 17 OSEK历史 98OSEK 2.2.3中文版 Name Date Department Created by Weichun.yang 2007-Jan-02 Designation: User note Status: Draft File Name: osek_

17、os223_en_ch_v0.2.doc Version: 0.2 Document key: -/- Pages: 7 of 99! Copyright WYA 译者叙 为了更好的了解和使用 OSEK操作系统 , 就翻译了 OSEK OS 2. 2 .3, 由于很多的专业词汇没有一个标准的 中文翻译 , 很多的 词也就使用了自己的理解 。 并且 从第十三章开始只是简单的翻译了一下标题 , 没有全文翻 译 。 请看过本文的读者指出翻译的不足和错误 。 YANG Weichun Jan.2007 始 于 Banbenhausen Email: Or weichun.yangOSEK 2.2.3

18、中文版 Name Date Department Created by Weichun.yang 2007-Jan-02 Designation: User note Status: Draft File Name: osek_os223_en_ch_v0.2.doc Version: 0.2 Document key: -/- Pages: 8 of 99! Copyright WYA Change History Changes Date Name Version Initial version 02.Jan.2007 W.YANG 0.1 翻译 13章之后之内容 01, July 200

19、7 W.YANG 0.2OSEK 2.2.3中文版 Name Date Department Created by Weichun.yang 2007-Jan-02 Designation: User note Status: Draft File Name: osek_os223_en_ch_v0.2.doc Version: 0.2 Document key: -/- Pages: 9 of 99! Copyright WYA 1 介绍 OSEK操作系统是 一个使汽车控制单元应用软件资源兼容 , 有利于提高汽车软件开发效率的单一环境 。 OSEK也 是 一个基于 分布式嵌入控制单 元的 单

20、一处理 操作 系统 . 1.1 系统 体系 汽车的应用是 有 严 格 的实时需求 . 因此 OSEK操作系统必需 是 支持事件驱动 的 控制 系统 。 制定 标准的 操作系统 能 够 集成 不同厂商 的 软件模块 . 为了在最小资源的单个控制器上能使用 , OSEK最初 的 目标不是为了 100% 兼容性 , 而 是他们 可以直接移植 。 因为 OSEK操作系统是为了使用在任何类型 的控制器上 , 它可以 支持 大部分硬件上的时限应用 。 高 模组化 和可 灵活的配置可以使这个系统 既用在低端微处理器也可应用在复杂的控制单元上 。 支持 这些需求 被定义在 “conformance class

21、es“ (see chapter 3.2, Conformance classes) 和应用接口里 。 OSEK不适用动态系统 创建的应用 , 相反系统模块是在系统创建的阶段被分配 。 只要不影响总的系统的速度 , 内部错误检查可以让 操作系统有更好的健壮性 。 另外 , 一个带错误检查的系统版本已经被定义 , 它是可以在做 测试阶段和低时限 的应用时使用 。 标准接口 在系统服务中定义了应用软件和操作系统的接口 。 在不同系列的处理器上 操作系统实现了统一的接口 。 用 ISO/ANSI 类 C的描述了系统的服务 , 但是系统服务的实现语言没有定义 。 可扩展性 (Scalability )

22、 OSEK操作系统是设计可用在最小资源 ( RAM, ROM, CPU time) 的硬件上 , 因此甚至可以用在 8位微处 里器上 。 出错检查 (Error checking) OSEK操作系统提供两种标准的出错检查 , 开发阶段的扩展模式 ( extended status) 和生产阶段的标准 模式 。 extended status 在运行操作系统时允许提高真实性核查 相比较标准系统 , 附加的出错检查需要更多的执行时间和内存空间 , 可是很多的错误可以在测试阶段被发 现 。 在所有的错误被消除后 , 系统可以用标准版本重新编译 。OSEK 2.2.3中文版 Name Date Dep

23、artment Created by Weichun.yang 2007-Jan-02 Designation: User note Status: Draft File Name: osek_os223_en_ch_v0.2.doc Version: 0.2 Document key: -/- Pages: 10 of 99! Copyright WYA 应用软件的可移植性 OSEK的一个目标是为了移植和重用应用软件 。 因此应用软件和操作系统的接口被标准的系统服务定义 。 标准系统的使用可以缩减维护 移植和开发的费用 。 可移植意味着从一个 ECU到另一个 ECU移植软件模块不需要大的修改

24、 。 操作系统 的标准接口 ( 服务 , 类型定义和常数 ) 支持源代码级别的移植 。 OESK规范定义目标代码的交换不被固定地址 应用软件和 和 I/O 系统的接口没有被 OSEK标准定义 应用软件模块可以有几个接口 。 操作系统的接口是实时控制和资源管理 , 但是如果应用程序打算直接和微处里器模块工作 , 那对系统至少对 硬件而言 , 操作系统接口相对于其他的软件模块是一个复杂的功能 。 为了比较方便的移植应用软件 , OSEK定义了一个标准的配置语言 。 这个 “OIL“(OSEK Implementation Language) 支持所有 的 OSEK可移植目标 , 如 tasks,

25、alarms 等 。 Figure 1-1 Software interfaces inside ECU1OSEK 2.2.3中文版 Name Date Department Created by Weichun.yang 2007-Jan-02 Designation: User note Status: Draft File Name: osek_os223_en_ch_v0.2.doc Version: 0.2 Document key: -/- Pages: 11 of 99! Copyright WYA 在从一个 ECU到另一个 ECU移植应用软件的过程中 , 必须考虑软件开发的步骤

26、 , 开发的环境和 ECU的硬 件结构 。 ( 1 OSEK 是允许直接在硬件和应用上有接口 ) 例如 : 软件开发指导方式 文件管理系统 编译的数据分配和堆栈使用 ECU的内存结构 ECU的时钟实现 不同微处理器的接口细节 , 如 I/O口 , A/D串 口 , watchdog 时钟 API函数的调用 这个意味着 OSEK不足以描述 OSEK的复杂实现 。 必须要其他的说明文档来补充这个实现 。 支持可移植 认证是为了保证规范不同实现的一致性 , 14章里搜集了这个定义实现的细节 , 这个可以看作是为了提高应 用程序在不同 OSEK上的可移植性 。 在此 , 仅仅操作系统的接口被应用程序考

27、虑 。 汽车工业特殊需求的支持 对 OSEK操作系统需要详细的说明起因在于为汽车单元应用软件开发的需求 。 以下的要素指出了需求 , 如可靠性 实时性和敏感的价格 : OSEK系统是可配置和静态结构的 , 用户静态定义 task数量 , resources和服务的需求 OSEK的定义支持代码从 ROM运行的能力 , 如代码可以直接从 ROM运行 。 OSEK支持应用 tasks的移植 为了适应汽车实时性的要求 , 实现操作系统的行为 OSEK提供了预定义和文档的说明 , OSEK 允许执行预设的执行参数 。OSEK 2.2.3中文版 Name Date Department Created b

28、y Weichun.yang 2007-Jan-02 Designation: User note Status: Draft File Name: osek_os223_en_ch_v0.2.doc Version: 0.2 Document key: -/- Pages: 12 of 99! Copyright WYA 1.2 文章前言 以下的描述涉及任意 OSEK操作系统实现的强制性标准 。 它关注通用的方法 , 功能 , 接口调用 , 含义及声明 的参数和可能出现的错误代码 。 这个 规 范 留下了一定的灵活性 。 在一方面 , 广泛的描述 足以 应付 将来的升 级 ,另一方面 , 在

29、 实施范围 和 具体 的 规范作了 明确规定 . 应确定所 要 执行的具体问题 . 相同类型的支持需要被精确说明 , 确定问题 的 具体实施应 文档记录 。 OSEK操作 系统的 规范为了 适应 未来 新的要求 , 可能 要 被 更新 .因此 ,每一个实施 文件 应注明 osek正式授权 版 本号并将它 做为 参考 。 OSEK操作系统官方允许的正式命名版本类似叫 x.y2,这个文档的版本是 2.2.3。 因为这 个 描述是强制性的 ,所以只 定义了一般性 的 系统策略 . 在所有其他方面 , 就提升了 系统的 实现 以 便 最 优适应某一特定的硬件类型 . 1.3 文章的结构 以下 ,对 具

30、体章节作了简要说明 : 第二章 摘要 本章简要介绍了 OSEK操作系统概念 。 第三章 OSEK操作系统的结构 本章给出了有关 OSEK的操作系统设计原则与结构的 总览 . 第四章 任务 管理 本章 通过 不同种类 的 任务和调度机制解释 OSEK任务管理 . 第 五 章 应用模式 本章介绍应用模式以及 它 们如何受到支持 . 第 六 章 中断处理 本章提供 OSEK中 断策略和不同类型的中断服务 流程 资料 第七章的事件机制 这一章解释事件的机制和 基于调度的不同行为 . 第八章资源管理 本章介绍了 OSEK资源管理和讨论 OSEK天花板 协议的好处和实施 . OSEK 2.2.3中文版 N

31、ame Date Department Created by Weichun.yang 2007-Jan-02 Designation: User note Status: Draft File Name: osek_os223_en_ch_v0.2.doc Version: 0.2 Document key: -/- Pages: 13 of 99! Copyright WYA 第九章 定时器 ( alarm) 本章介绍了两 层 的概念 以支持基于时间的事件 (如硬件定时器 )以及非基于时间的事件 (如角度测量 ) 第 十 章 消息 本章介绍内部处理器通信 的 消息 处理 . 在 OSEK

32、com规 范里 中描述 了 全部 的 消息处理 第 11章 错误处理 ,追踪和调试 本章介绍了实现集中式错误处理 的 有关机制 . 这一章还描述了 初始化 和关闭系统 的 服务 第 12章 系统服务描述 本章介绍了 约定 使用的描述 . 第 13章 操作系统 服务 的 规范 本章说明所有操作系统服务 有效的 提供给 用户 . 描述 的 结构 对 任何服务是相同 ; 它包含用户需要 的所有信息服务 。 第 14章 实施和 特定 应用专题 本章列出了操作系统所有特定的主题 ,包括服务 ,数据类型和常量 . 第 15章 从规范 1.0到 2.2 的修改 本章提供了 操作 系统规 范 从 1.0 2.

33、0, 2.1 2.1r1版到 2.2版主要变化 的纵览 , 第 16章 索引 所有操作系统服务和 图片的列表 第 17章 历史 所有正式的发布版 . 2 摘要 OSEK规范的操作系统提供一 组 不同的服务和处理机制 . OSEK规范的操作系统在系统生成时根据用户的配置 指 示被 建立 的 . 四 个 conformance classes的 规定可以 满足 OSEK规范操作系统对功能和性能的不同需求 . 因此 , 用户可以 修改操作系统对 task和目标硬件的控制 , 但在运行后操作系统不能修改这个 。 已经被应用于 conformance classes的应用将不得不移植到 OSEK以实现相

34、同阶层 。 被 定义的服务确保了其范围的能力 和每一个 一致性阶层 的 行为 。 只 有 对 所有一致性 阶层 (conformance class) 确定能力 的 范围 , 才能使 OSEK操作系统实现一致性 。OSEK 2.2.3中文版 Name Date Department Created by Weichun.yang 2007-Jan-02 Designation: User note Status: Draft File Name: osek_os223_en_ch_v0.2.doc Version: 0.2 Document key: -/- Pages: 14 of 99!

35、Copyright WYA 在功能服务方面的结构 Task 管理 . tasks 的激活和终止 . 管理 task 状态 , task 切换 同步 操作系统支持两种方式有效执行任务 的 同步 . 资源管理 不等待的 使用 (逻辑 )资源或装置 进行存取 控制 , 或控制程序流程 . 事件控制 Task同步的事件管理 . 中断管理 中断处理服务 定时器 ( alarm) . 绝对和相对定时器 进程 内部 通讯 处理 . 数据交换的服务 出错处理 .用户发生各种错误 的 支持机制OSEK 2.2.3中文版 Name Date Department Created by Weichun.yang 2

36、007-Jan-02 Designation: User note Status: Draft File Name: osek_os223_en_ch_v0.2.doc Version: 0.2 Document key: -/- Pages: 15 of 99! Copyright WYA 3 OSEK操作系统的架构 3.1 处理级别 OSEK操作系统是一个独立于应用程 序的服务 , 它在一个处理器上提供环境给应用程序 。 OSEK 操作系统可 以使几个进程并行的实时执行 。 OSEK操作系统 给用户 提供了一 些标准 的接口 。 这些接口封装了和 CPU的接触 。 这里有两种封装 : 操作

37、系统的中断服务流程管理 Tasks (基础 tasks 和扩展 tasks) 操作系统可以管理 控制器的硬件资源 。 这些操作系统的服务有统一的调用接口 , 它即对应用程序也对操作 系统内部 . OSEK定义了 3层的处理级别 : 中断级逻辑级调度 Task 级 在 task级别 , 根据其用户分配优先权 task被调度 ( 没有 , 全或是 混合抢先调度 ) 运行时间方面 ,是在开始执行时间 时 被占 用 和任务完 时被再次 释放 。 Figure 3-1 OSEK操作系统的处理级别OSEK 2.2.3中文版 Name Date Department Created by Weichun.y

38、ang 2007-Jan-02 Designation: User note Status: Draft File Name: osek_os223_en_ch_v0.2.doc Version: 0.2 Document key: -/- Pages: 16 of 99! Copyright WYA 以下优先规则已经确立 : 中断优先于 TASK 中断的 处理级别 由一个或多个中断优先级 中断服务的流程 有一个静态分配 中断的优先级标准 对于 中断服务例程优先级的 分配 取决于执行和硬件结构 对于 task优先和资源的大的数字优先级高 task优先级是被用户静态分配的 ( task优先级的意

39、义说明在 4.5章节 ) task和中断被处理标准定义为一系列连续的值 。 对硬件的优先级镜像到操作系统的优先级 。 请注意优先调度的分配仅仅是 logic定义的 , 它可以不需要直接使用优先级的实现 。 另外 osek不指定任何 关于关于 一个特定微处理器 结构的 task优先 和硬件中断 的 规则 。 3.2 一致性阶层 ( Conformance classes) 为了使各类 应用软件 适应 系统和 不同模块 (例如处理器 记忆体 )需 要 操作系统 有 不同 的功能 。 在下面的描述里 , 这些操作系统功能被解释成 “一致性阶层 ”CC( conformance class) 存在的

40、conformance classes支持的目标如下 为 容易理解和讨论 OSEK规范的操作系统提供方便 的操作 系统 功能组 . 允许部分 执行 沿预先确定的线路 , 这些部分的实现可以被认证为 OSEK的封装 创造一个 不需要改变使用 osek相关 功能的 从 阶层 较小的功能 到阶层 高 的 功能 的 升级途径 , 对于认证 , 完整的 “一致性阶层 ”行为必须被履行 。 然而 , 创建系统仅仅需要连接这些被需求的特殊应用到 系统的服务 。 在执行时 “一致性阶层 ”不能被改变 。 一致性阶层被下面的特征决 定 : T ask任务 激活 的 多重请求 , 在 4.3章说明 Task的类型

41、 , 在 4.2章中说明 每个优先级的 task数量 如果没有明确说明否则所有其他 OSEK功能 是强制性的 。OSEK 2.2.3中文版 Name Date Department Created by Weichun.yang 2007-Jan-02 Designation: User note Status: Draft File Name: osek_os223_en_ch_v0.2.doc Version: 0.2 Document key: -/- Pages: 17 of 99! Copyright WYA Figure 3-2 对 “一致性阶层 ”制约向上兼容性 定义了下面的 “

42、一致性阶层 ”: BCC1 (只对基本的 tasks, 当所有的 task有不同的优先级 , 被限制只能有一个请求激活每个 task和每个优先级只能有一个 task) BCC2 ( 象 BCC1, 但每个优先级可以有多个 task和允许多个请求激 活 task。 ECC1 ( 象 BCC1, 增加扩展 tasks) ECC2 ( 象 ECC1, 但每个优先级可以有多个 task和允许多个请求激活 basic task) 如果最少的需求没有超过 “一致性阶层 ”, 应用的移植可以被假设的 。 最少的 “一致性阶层 ”需求在下图OSEK 2.2.3中文版 Name Date Department

43、Created by Weichun.yang 2007-Jan-02 Designation: User note Status: Draft File Name: osek_os223_en_ch_v0.2.doc Version: 0.2 Document key: -/- Pages: 18 of 99! Copyright WYA Figure 3-3 对 “一致性阶层 ”的最少需要3 BT = Basic Task, ET = Extended Task 3.3 OSEK OS和 OSEKtime OS的关系 OSEKtime OS 是一个 特别适合于需要时间触发 结构的操作系统

44、。 可以允许 OSEK os和 OSEktime OS 同时存在 。 就概念而言 , OSEKtime分配他的 IDLE时间被 OSEK使用 。 OSEK OS就像一整块在 OSEKtime os里的中断程序和低优先级的 tasks。 如果 OSEK和 OSEKtime同时存在 , OSEK的接口和系统调用定义是不需要改变 。 事实上由于 OSEKtime 负责整 个 的系统 ,而 OSEK只负责 局部的 , 所以 对于系统启动和关闭有一些小的例外 ,在规范中特别提到了 这些偏差 。 另外 , 为了 和 OSEKtime OS共存的目的 , 在 OSEKtime里定义了一些 限 制 执行 OS

45、EK OS 执行的 功能 。 更多的信息 , 请参考 OSEKtime OS的规范OSEK 2.2.3中文版 Name Date Department Created by Weichun.yang 2007-Jan-02 Designation: User note Status: Draft File Name: osek_os223_en_ch_v0.2.doc Version: 0.2 Document key: -/- Pages: 19 of 99! Copyright WYA 4 Task管理 4.1 Task概念 复杂的控制软件可以方便 的 根据自己的实时性要求 对 执行部分进

46、行细分 。 这些部分可以通过 TASKS来实 现 。 Task为执行 功能 提供了框架 。 操作系统提供同步和异步执行 task。 调度安排顺序执行 task。 OSEK操作系统提供一个 task切换的机制 (scheduler,请看第 4.4章 , task切换机制 ), 包含一个机 制 , 某个 task被激活当没 有其他系统或应用功能被激活时 , 这种机制被叫做 idle-mechanism, OSEK 提供两个 task的定义 。 . basic tasks . extended tasks Basic Tasks Basic task仅仅在下面的状态时才释放处理器 , 当 task终

47、止时 , OSEK切换到更高优先级的 task 一个中断使处理器切换到中断处理流程 ( ISR) Extended Tasks Extended tasks是可以通过系统调用 waitEvent的高级 basic task, 它可以进入一个 等待状态 ( 看第七章 事件机制和第 13.5.3.4章的 waitevent)。 等待状态允许处理器不需要停止运行的 extended task就释放和重分配低优先级的 task. 在操作系统的观点 , extended tasks的管理是比管理 basic tasks更复杂和需要更多的系统资源 。 4.2 Task 状态模式 下面的文字描述了在所有 t

48、ask状态之间 task的状态和转变过程 。 一个 task会在几个状态间切换 , 因为可能同一时间当几个 task同时竞争处理器的时候 , 任何时间处理器 只能运行一个 task的指令 , OSEK操作系统必要时会负责保存和恢复 task的状态切换时的数据 。 4.2.1 Extended tasks Extended tasks 有 4个 task状态 : OSEK 2.2.3中文版 Name Date Department Created by Weichun.yang 2007-Jan-02 Designation: User note Status: Draft File Name:

49、 osek_os223_en_ch_v0.2.doc Version: 0.2 Document key: -/- Pages: 20 of 99! Copyright WYA 运行状态 cpu被分配给某个 task以便它的指令被运行 。 当一些 task的状态相同时 , 这个时间点上只能 有一个 task在这个状态 。 准备 所有功能的先决条件过渡到存在 的 运行状 态 , task仅仅等处理器的分配 。 调度决定哪个等待的 task 下一次被执行 。 等待 一个不能被执行的 task, 因为它至少在等一个 event( 看第 7章 , 事件机制 )。 挂起 在挂起状态 task处于被动状态并且可以被激活 。 Figure 4-1 Extended task state model OSEK 2.2.3中文版 Name Date Department Created by Weichun.yang 2007-Jan-02 Designation: User note Status: Dr

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报