学习目的 学习目的 了解实时操作系统相关概念 了解实时操作系统相关概念 了解实时操作系统工作原理 了解实时操作系统工作原理 了解可配置 eCos 的配置机制 了解可配置 eCos 的配置机制 掌握建立 linux 或 Cygwin 程序编译环境 掌握建立 linux 或 Cygwin 程序编译环境 掌握交叉编译过程和代码调试 掌握交叉编译过程和代码调试 编译生成 Skyeye 编译生成 Skyeye 调试实时操作系统 调试实时操作系统 掌握代码分析工具 Source navigator,Source Insight,ROSE 等 掌握代码分析工具 Source navigator,Source Insight,ROSE 等
学习参考教材: 学习参考教材: 王京起,嵌入式可配置实时操作 eCos 技术 及实现机制 电子工业出版社, 2005 王京起,嵌入式可配置实时操作 eCos 技术 及实现机制 电子工业出版社, 2005 uCOS-ii 中文版电子书 uCOS-ii 中文版电子书
学习指南
难重点 交叉环境的建立 交叉环境的建立 RTOS 源码分析 RTOS 源码分析 添加自定义模块 添加自定义模块
知识点
第1讲 大纲要求:当前关键词:难重点: 嵌人式实时操作系统 现状和未来
嵌人式实时操作系统 ( RTOS )应用无处不在
RTOS 的全球市场规模 据 EMF 报告 1998 和 1999 年全球嵌人式市场规模 据 EMF 报告 1998 和 1999 年全球嵌人式市场规模 单板 亿美圆 亿美圆 单板 亿美圆 亿美圆 RTOS 亿美圆 亿美圆 RTOS 亿美圆 亿美圆 开发工具 亿美圆 亿美圆 开发工具 亿美圆 亿美圆 开发工具含 ICE/JTAG ,逻辑分析仪,编程器和软件编译器和调试器等
嵌人式 RTOS 发展历史( 1 ) 80 年代初 80 年代初 实时多任务调度内核 实时多任务调度内核 第三方的开发工具 第三方的开发工具 代表产品: 代表产品: VRTX32 ( Ready System) VRTX32 ( Ready System) PSOS(ISI) PSOS(ISI) MTOS(IPI) MTOS(IPI)
嵌人式 RTOS 发展历史( 2 ) 90 年初 90 年初 微内核,模块化的嵌人 RTOS 微内核,模块化的嵌人 RTOS 自主开发或完全集成的开发工具 自主开发或完全集成的开发工具 代表产品: 代表产品: VxWORK (开发环境 Tornado ) VxWORK (开发环境 Tornado ) Psos+ (开发环境 Prism+ ) Psos+ (开发环境 Prism+ ) VRTsa (开发环境 Spectra ) VRTsa (开发环境 Spectra )
嵌人式 RTOS 发展历史 (3 ) 90 年代中 90 年代中 标准 API (如 POSIX , WIN32 等) 标准 API (如 POSIX , WIN32 等) 包含网络,图形等完整的操作系统 包含网络,图形等完整的操作系统 代表产品: 代表产品: WinCE ( Microsoft) WinCE ( Microsoft) Vxworks ( Wind River System) Vxworks ( Wind River System) QNX,Lynx,OSE,Chrous(Sun) 等 QNX,Lynx,OSE,Chrous(Sun) 等
RTOS 市场和技术发展的变化 (1) 易于移植的 RTOS 结构支持更多种的处理器 易于移植的 RTOS 结构支持更多种的处理器 支持 Unix/POSIX 兼容的趋势明显 支持 Unix/POSIX 兼容的趋势明显 内核可以裁剪以支持 RTOS 适应小系统和大系统 的各种应用 内核可以裁剪以支持 RTOS 适应小系统和大系统 的各种应用 RTOS 与工具的 IDE 紧密结合 RTOS 与工具的 IDE 紧密结合 出现越来越多的销售源代码和一次性版税的 RTOS 厂家 出现越来越多的销售源代码和一次性版税的 RTOS 厂家 RTOS 厂家除提供的文件,图形和 TCP/IP 外,与 特定应用的结合更多,如互连网络,通信 RTOS 厂家除提供的文件,图形和 TCP/IP 外,与 特定应用的结合更多,如互连网络,通信
RTOS 市场和技术发展的变化 (2) Wind River-ISI 的结合形成 RTOS 市场的 ‘ 航母 ’ , 但他的竞争对手纷纷声称他们有了更多的机会 (因为 Wind River 放弃 PSOS ) Wind River-ISI 的结合形成 RTOS 市场的 ‘ 航母 ’ , 但他的竞争对手纷纷声称他们有了更多的机会 (因为 Wind River 放弃 PSOS ) 50% (北美)的用户依然在使用自己编写的 RTOS , 他们将走到那里? 50% (北美)的用户依然在使用自己编写的 RTOS , 他们将走到那里? 后 PC 时代更多的数字化产品将使用 RTOS 或嵌人 OS ,这里就产生了 WinCE, Palm OS, Java OS,Epoc 等 ‘ 软 ’ 实时的嵌人 OS 后 PC 时代更多的数字化产品将使用 RTOS 或嵌人 OS ,这里就产生了 WinCE, Palm OS, Java OS,Epoc 等 ‘ 软 ’ 实时的嵌人 OS
RTOS 市场和技术发展的变化 (3) 电讯和控制系统核心设备要求 RTOS 的高可靠 性 ( 5 个 9 ), HA/Hot Swap 电讯和控制系统核心设备要求 RTOS 的高可靠 性 ( 5 个 9 ), HA/Hot Swap 半导体厂商对 RTOS 和工具的需求强烈,商业 性的合作方式以由外包,到今天收购工具公司 和 软件协议公司如 Motorola 收购 Metrowerks 并投资 Lineo,ARC 收购 Metaware, ARM 收购 Allant, Intel 投资 Montvista 半导体厂商对 RTOS 和工具的需求强烈,商业 性的合作方式以由外包,到今天收购工具公司 和 软件协议公司如 Motorola 收购 Metrowerks 并投资 Lineo,ARC 收购 Metaware, ARM 收购 Allant, Intel 投资 Montvista 嵌人式 Linux 已经在消费电子等非强实时领域 进入 RTOS 的市场并得到了相当广泛的半导体 厂商如 Intel 嵌人式 Linux 已经在消费电子等非强实时领域 进入 RTOS 的市场并得到了相当广泛的半导体 厂商如 Intel
RTOS- 未来?( 1 ) RTOS 市场将可能划分为三段 RTOS 市场将可能划分为三段 系统级 , 板极, SOC 级 系统级 , 板极, SOC 级 嵌人式 Linux 依靠 POSIX 兼容,高可靠源码开 放资源丰富的优势将进入传统 Unix 和 NT 占据 的系统级市场 嵌人式 Linux 依靠 POSIX 兼容,高可靠源码开 放资源丰富的优势将进入传统 Unix 和 NT 占据 的系统级市场 板级依然是传统 RTOS 的天下主要将集中在航 空航天, 军事应用和传统电讯市场 板级依然是传统 RTOS 的天下主要将集中在航 空航天, 军事应用和传统电讯市场 SOC 级是新生代较逐的领域,嵌人处理器,消 费电子产品,互连网络通信设备都将是市场变 化最快之处 SOC 级是新生代较逐的领域,嵌人处理器,消 费电子产品,互连网络通信设备都将是市场变 化最快之处
RTOS- 未来?( 2 ) 是否会出现标准 RTOS ? 是否会出现标准 RTOS ? 是否会出现某种行业标准 RTOS ? 在某段时间 内可能 ,如目前 Vxwork 在数据通信和 WinCE 在掌上电脑和高档 PDA (亚洲),手机 RTOS 的 EPOC 是否会出现某种行业标准 RTOS ? 在某段时间 内可能 ,如目前 Vxwork 在数据通信和 WinCE 在掌上电脑和高档 PDA (亚洲),手机 RTOS 的 EPOC 是否所有的 RTOS 将都可以出售源码? 是否所有的 RTOS 将都可以出售源码? 是否 RTOS 将向 Linux 一样 ‘ 免费 ’ 但服务收费? OS 市场的总体趋势是这样的,但依然需要一 个过程 是否 RTOS 将向 Linux 一样 ‘ 免费 ’ 但服务收费? OS 市场的总体趋势是这样的,但依然需要一 个过程
中国的 RTOS 市场 目前绝大多数是国外产品如 Vxwork, PSOS, VRTX, Nucleus, WinCE, QNX, CMX.. 目前绝大多数是国外产品如 Vxwork, PSOS, VRTX, Nucleus, WinCE, QNX, CMX.. 其中前 5 位占据的国内绝大多数的市场 其中前 5 位占据的国内绝大多数的市场 以业界传统的推测(中国占全球 1-2% 分额) 中国 RTOS 市场规模还很小 以业界传统的推测(中国占全球 1-2% 分额) 中国 RTOS 市场规模还很小 很少有人愿意冒风险尝试一种新的 RTOS 很少有人愿意冒风险尝试一种新的 RTOS 国内目前 RTOS 的版税意识较低限制了 RTOS 的发展(国外某 RTOS 厂家收入的 30% 来自版 税 ) 国内目前 RTOS 的版税意识较低限制了 RTOS 的发展(国外某 RTOS 厂家收入的 30% 来自版 税 )
中国人自己的 RTOS 分两类 : 由 Linux 演变,完全自主开发 分两类 : 由 Linux 演变,完全自主开发 市场: 主要集中在消费电子 如 ‘ 女娲 ’ ,蓝点 Linux (机顶盒) 市场: 主要集中在消费电子 如 ‘ 女娲 ’ ,蓝点 Linux (机顶盒) 缺乏正确的市场回报机制: 缺乏正确的市场回报机制: 即靠销售 RTOS 的收入很难维持开发的巨大的投 入,靠服务就很容易走入用户的行列而变成其他 用户的竞争者 即靠销售 RTOS 的收入很难维持开发的巨大的投 入,靠服务就很容易走入用户的行列而变成其他 用户的竞争者 风险投资和上市似乎是唯一的出路? 风险投资和上市似乎是唯一的出路?
Embedded systems survey: Operating systems up for grabs 大纲要求:当前关键词:难重点: Figure 1: Who influenced the choice of OS?
Embedded systems survey: Operating systems up for grabs 大 纲要求:当前关键词:难重点: Figure 2: What type of OS?
Embedded systems survey: Operating systems up for grabs 大纲要求:当前关键词:难重点: Figure 3: Reasons for not choosing a commercial OS
Embedded systems survey: Operating systems up for grabs 大纲要求:当前关键词:难重点: Figure 4: Commercial OS factors
Embedded systems survey: Operating systems up for grabs 大纲要求:当前关键词:难重点: Figure 5: OS for next project
Embedded systems survey: Operating systems up for grabs 大纲要求:当前关键词:难重点: Figure 6: Interest in Linux
Embedded systems survey: Operating systems up for grabs 大纲要求:当前关键词:难重点: Figure 7: Reasons for considering Linux
Embedded systems survey: Operating systems up for grabs 大纲要求:当前关键词:难重点: Figure 8: Reasons for not considering Linux
Embedded systems survey: Operating systems up for grabs 大纲要求:当前关键词:难重点: Figure 10: Commercial OS respondents would consider
Embedded systems survey: Operating systems up for grabs 大纲要求:当前关键词:难重点: Figure 9: Current commercial OS
第一讲 大纲要求:当前关键词:难重点: eCos 的框架图 eCos 的框架图 设备驱动 任务管理 同步原语 I/O 管理 文件系统 中断管理 内存管理 C 库 POSIX 接口 硬件抽象层 BSD TCP/IP
嵌入式操作系统重要概念 大纲要求:当前关键词:难重点: 1 .上下文切换( Context Switching ) 多任务系统中,上下文切换是指 CPU 的控 制权由运行任务转移到另外一个 就绪任务时所发生的事件,当前运行任务 转为就绪(或者挂起、删除)状态, 另一个被选定的就绪任务成为当前任务。 上下文切换包括保存当前任务的运行 环境,恢复将要运行任务的运行环境。上 下文的内容依赖于具体的 CPU 。 1 .上下文切换( Context Switching ) 多任务系统中,上下文切换是指 CPU 的控 制权由运行任务转移到另外一个 就绪任务时所发生的事件,当前运行任务 转为就绪(或者挂起、删除)状态, 另一个被选定的就绪任务成为当前任务。 上下文切换包括保存当前任务的运行 环境,恢复将要运行任务的运行环境。上 下文的内容依赖于具体的 CPU 。
嵌入式操作系统重要概念 大纲要求:当前关键词:难重点: 2 .确定性( Deterministic ) 实时操作系统中,在一定的条件下,系统 调用的运行时间可以预测。这并不 是指所有系统调用都总是执行一个固定长 度的时间,而是指不论系统负载如 何,系统调用的最大执行时间可以确定。 2 .确定性( Deterministic ) 实时操作系统中,在一定的条件下,系统 调用的运行时间可以预测。这并不 是指所有系统调用都总是执行一个固定长 度的时间,而是指不论系统负载如 何,系统调用的最大执行时间可以确定。
嵌入式操作系统重要概念 大纲要求:当前关键词:难重点: 3 .硬实时 (Hard Real-Time) 系统 硬实时系统对系统响应时间有严格要求, 一旦系统响应时间不能满足,就 会引起系统崩溃或致命的错误。 3 .硬实时 (Hard Real-Time) 系统 硬实时系统对系统响应时间有严格要求, 一旦系统响应时间不能满足,就 会引起系统崩溃或致命的错误。
嵌入式操作系统重要概念 大纲要求:当前关键词:难重点: 4 .中断延迟 (Interrupt Latency) 中断延迟是指从硬件中断发生到开始执行 中断处理程序第一条指令之间的这段时间。 4 .中断延迟 (Interrupt Latency) 中断延迟是指从硬件中断发生到开始执行 中断处理程序第一条指令之间的这段时间。
嵌入式操作系统重要概念 大纲要求:当前关键词:难重点: 5 .互斥 (Mutual Exclusion) 互斥是用来控制多任务对共享数据进行串 行访问的同步机制。在多任务应用 中,当两个或多个任务同时访问共享数据 时,可能会造成数据破坏。互斥使 它们串行地访问数据,从而达到保护数据 的目的。 5 .互斥 (Mutual Exclusion) 互斥是用来控制多任务对共享数据进行串 行访问的同步机制。在多任务应用 中,当两个或多个任务同时访问共享数据 时,可能会造成数据破坏。互斥使 它们串行地访问数据,从而达到保护数据 的目的。
嵌入式操作系统重要概念 大纲要求:当前关键词:难重点: 6 .抢占 (Preemptive) 抢占是指当系统处于核心态运行时, 允许 任务的重新调度。换句话说就是指 正在执行的任务可以被打断,让另一个任 务运行。抢占提高了应用对异步事 件的响应性能力。操作系统内核可抢占, 并不是说任务调度在任何时候都可 以发生。例如当一个任务正在通过一个系 统调用访问共享数据时,重新调度 和中断都被禁止。 6 .抢占 (Preemptive) 抢占是指当系统处于核心态运行时, 允许 任务的重新调度。换句话说就是指 正在执行的任务可以被打断,让另一个任 务运行。抢占提高了应用对异步事 件的响应性能力。操作系统内核可抢占, 并不是说任务调度在任何时候都可 以发生。例如当一个任务正在通过一个系 统调用访问共享数据时,重新调度 和中断都被禁止。
嵌入式操作系统重要概念 大纲要求:当前关键词:难重点: 7 .优先级驱动 (Priority-Driven) 优先级驱动是指多任务系统中,当前运行 任务总是具有最高优先级的就绪任务。 7 .优先级驱动 (Priority-Driven) 优先级驱动是指多任务系统中,当前运行 任务总是具有最高优先级的就绪任务。
嵌入式操作系统重要概念 大纲要求:当前关键词:难重点: 8 .优先级反转 (Priority Inversion) 优先级反转是指一个任务等待比它优先级 低的任务释放资源而被阻塞,如果这时 有中等优先级的就绪任务,阻塞会进一步 恶化。优先级继承技术可用来解决优 先级反转问题。 8 .优先级反转 (Priority Inversion) 优先级反转是指一个任务等待比它优先级 低的任务释放资源而被阻塞,如果这时 有中等优先级的就绪任务,阻塞会进一步 恶化。优先级继承技术可用来解决优 先级反转问题。
嵌入式操作系统重要概念 大纲要求:当前关键词:难重点: 9 .优先级继承 (Priority Inheritance) 优先级继承可用来解决优先级反转问题。 当优先级反转发生时,优先级较低的 任务被暂时地提高它的优先级,使得该任 务能尽快执行,释放出优先级较高的 任务所需要的资源。 9 .优先级继承 (Priority Inheritance) 优先级继承可用来解决优先级反转问题。 当优先级反转发生时,优先级较低的 任务被暂时地提高它的优先级,使得该任 务能尽快执行,释放出优先级较高的 任务所需要的资源。
嵌入式操作系统重要概念 大纲要求:当前关键词:难重点: 10 .实时执行体 (Real-Time Executive) 实时执行程序包括一套支持实时系统所必需的 机制。如多任务支持, CPU 调度,通信 和存储分配。在嵌入式应用中,这一套机制被 称为实时执行体或实时操作系统内核。 OS 就是一个实时执行体。编程者以实时执行体 为基础来构造自己应用。 10 .实时执行体 (Real-Time Executive) 实时执行程序包括一套支持实时系统所必需的 机制。如多任务支持, CPU 调度,通信 和存储分配。在嵌入式应用中,这一套机制被 称为实时执行体或实时操作系统内核。 OS 就是一个实时执行体。编程者以实时执行体 为基础来构造自己应用。
嵌入式操作系统重要概念 大纲要求:当前关键词:难重点: 11 .重调度过程 (Rescheduling Procedure) 重调度过程是判定任务优先级和执行状态 的过程。 OS 的系统 调用引起任务状态变化时,就会执行这个 过程。如果当前运行任务不是最高优 先级的就绪任务,重调度过程就会发生。 11 .重调度过程 (Rescheduling Procedure) 重调度过程是判定任务优先级和执行状态 的过程。 OS 的系统 调用引起任务状态变化时,就会执行这个 过程。如果当前运行任务不是最高优 先级的就绪任务,重调度过程就会发生。
嵌入式操作系统重要概念 大纲要求:当前关键词:难重点: 12 .调度延迟 (Scheduling Latency) 调度延迟是指当一个事件引起更高优先级 的任务就绪到这个任务开始运行之间的时 间。即一个任务被触发后,由就绪到运行 的时间。 12 .调度延迟 (Scheduling Latency) 调度延迟是指当一个事件引起更高优先级 的任务就绪到这个任务开始运行之间的时 间。即一个任务被触发后,由就绪到运行 的时间。
嵌入式操作系统重要概念 大纲要求:当前关键词:难重点: 13 .可剪裁的体系结构 (Scalable Architecture) 13 .可剪裁的体系结构 (Scalable Architecture) 可剪裁的体系结构是指一个软件系统能够支持 多种应用而无需在接口上做很大的变 动。因此, 开发出成本低、品种多的产品。 调用引起任务状态变化时,就会执行这个过程。 如果当前运行任务不是最高优 可剪裁的体系结构是指一个软件系统能够支持 多种应用而无需在接口上做很大的变 动。因此, 开发出成本低、品种多的产品。 调用引起任务状态变化时,就会执行这个过程。 如果当前运行任务不是最高优
嵌入式操作系统重要概念 大纲要求:当前关键词:难重点: 14 .任务 (Tasks) 任务是 OS 中独立运行的单元。 14 .任务 (Tasks) 任务是 OS 中独立运行的单元。
嵌入式操作系统重要概念 大纲要求:当前关键词:难重点: 15 .任务上下文 (Task Context) 任务上下文是指任务运行的环境。例如, 针对 x86 的 CPU ,任务上下文可包括程序 计 数器、堆栈指针、通用寄存器的内容。 15 .任务上下文 (Task Context) 任务上下文是指任务运行的环境。例如, 针对 x86 的 CPU ,任务上下文可包括程序 计 数器、堆栈指针、通用寄存器的内容。
第讲 大纲要求:当前关键词:难重点:
本课小结 本课小结
讨论及课后习题 讨论及课后习题