这是我在研究OSEK时翻译的文章,本来是自己用的,想可能对其他工程师有用,就贴出来了.
下载区有全文的PDF <
译者叙 ..............................................................................................................................................
7
Change History.................................................................................................................................. 8
1 介绍 .......................................................................................................................................... 9
1.1 系统体系 .......................................................................................................................... 9
1.2 文章前言 ........................................................................................................................ 12
1.3 文章的结构 .................................................................................................................... 12
2 摘要 ........................................................................................................................................ 13
3 OSEK 操作系统的架构 ........................................................................................................ 15
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 tasks......................................................................................................... 19
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 非抢占式调度 ........................................................................................................ 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 同步机制的问题 ............................................................................................................ 35
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 错误管理,追踪和调试 .................................................................................................... 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.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 DisableAllInterrupts.......................................................................................... 59
13.3.2.3 ResumeAllInterrupts......................................................................................... 59
13.3.2.4 SuspendAllInterrupts........................................................................................ 60
13.3.2.5 ResumeOSInterrupts........................................................................................ 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 GetResource.................................................................................................... 63
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.3 系统服务 ................................................................................................................ 66
13.5.3.1 SetEvent.......................................................................................................... 66
13.5.3.2 ClearEvent....................................................................................................... 66
13.5.3.3 GetEvent.......................................................................................................... 67
13.5.3.4 WaitEvent........................................................................................................ 67
13.6 Alarms............................................................................................................................. 68
13.6.1 数据类型 ................................................................................................................ 68
13.6.2 结构成员 ................................................................................................................ 69
13.6.2.1 DeclareAlarm................................................................................................... 69
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.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....................................................................................................... 76
13.8.2.2 PreTaskHook.................................................................................................. 77
13.8.2.3 PostTaskHook................................................................................................. 77
13.8.2.4 StartupHook.................................................................................................... 77
13.8.2.5 ShutdownHook................................................................................................ 78
13.8.3 常量 ........................................................................................................................ 78
13.8.4 宏( Macros ) ....................................................................................................... 78
14 执行和应用规范主题 ........................................................................................................ 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 直接操作的中断 ............................................................................................ 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 历史 ........................................................................................................................ 98