1、嵌入式操作系统全册配套嵌入式操作系统全册配套 完整教学课件完整教学课件 嵌入式操作系统嵌入式操作系统 主要内容主要内容 嵌入式操作系统概述嵌入式操作系统概述 嵌入式实时内核(基于嵌入式实时内核(基于C/OSC/OS- -II,II,结合应用结合应用 实例)实例) 任务管理、时间管理任务管理、时间管理 任务调度、中断任务调度、中断 互斥、同步与通信互斥、同步与通信 内存管理内存管理 C/OSC/OS- -IIII的移植的移植 共共1212学时学时 作业作业 习题习题 1 1、基于、基于C/OSC/OS- -IIII实现流水灯系统实现流水灯系统 2 2、基于、基于C/OSC/OS- -IIII和生
2、产者消费者模型,实和生产者消费者模型,实 现串口数据的输入输出。现串口数据的输入输出。 思考题思考题 嵌入式操作系统概述嵌入式操作系统概述 1、嵌入式软件系统的体系结构和软件运行流程、嵌入式软件系统的体系结构和软件运行流程 2、嵌入式操作系统的概述和作用、嵌入式操作系统的概述和作用 3、嵌入式操作系统的分类与实时操作系统、嵌入式操作系统的分类与实时操作系统 4、嵌入式操作系统的体系结构和组成、嵌入式操作系统的体系结构和组成 5、 C/OS-II简介简介 1 1、嵌入式软件系统的体系结构嵌入式软件系统的体系结构 和软件运行流程和软件运行流程 嵌入式系统的软/硬件框架 嵌入式嵌入式 微处理器微处理
3、器 SDRAMSDRAM ROMROM I/OI/O A/DA/D D/AD/A 人机交互接口人机交互接口 通用接口通用接口 实时操作系统(实时操作系统(RTOS)RTOS) 图形用户图形用户 接口接口 BSP/HAL 硬件抽象层/板极支持包BSP/HAL 硬件抽象层/板极支持包 任务管理任务管理文件系统文件系统 应用程序应用程序 嵌入式计算机系统嵌入式计算机系统 硬件层硬件层 软件层软件层 中间层中间层 功能层功能层 嵌入式软件系统的体系结构嵌入式软件系统的体系结构 硬件硬件 应用层应用层 驱动层驱动层 操作系统层操作系统层 中间件层中间件层 板级板级 初始化初始化 FLASH 驱动驱动 R
4、TC/定定 时器驱动时器驱动 串口串口 驱动驱动 以太网以太网 驱动驱动 LCD 驱动驱动 键盘键盘 驱动驱动 其他其他 驱动驱动 内核内核 TCP/IP 网络系统网络系统 文件文件 系统系统 嵌入式嵌入式 GUI 电源电源 管理管理 嵌入式嵌入式 CORBA 嵌入式嵌入式 JAVA 嵌入式嵌入式 DCOM 面向应用领域面向应用领域 的中间件的中间件 应用应用 任务任务1 应用应用 任务任务2 应用应用 任务任务n 与应用软件相关的驱动不一定需要与操作系统连接,这些驱动的设计和开发由应用决定。与应用软件相关的驱动不一定需要与操作系统连接,这些驱动的设计和开发由应用决定。 嵌入式软件运行流程嵌入
5、式软件运行流程 上电复位上电复位 系统升级系统升级 引导引导/ /升级系统升级系统 系统初始化系统初始化 应用初始化应用初始化 多任务应用多任务应用 板级初始化板级初始化 远程升级远程升级 本地升级本地升级 基于多任务操作系统基于多任务操作系统的嵌入的嵌入 式软件的主要运行流程式软件的主要运行流程 该运行流程主要分为该运行流程主要分为5 5个阶段个阶段 嵌入式软件运行流程嵌入式软件运行流程 上电复位、板级初始化阶段上电复位、板级初始化阶段 嵌入式系统上电复位后完成板级初始化工作。 板级初始化程序具有完全的硬件特性,一般 采用汇编语言实现。不同的嵌入式系统,板 级初始化时要完成的工作具有一定的特
6、殊性, 但以下工作一般是必须完成的: CPU中堆栈指针寄存器的初始化。 BSS段(Block Storage Space表示未被初 始化的数据)的初始化。 CPU芯片级的初始化:中断控制器、内存 等的初始化。 返回返回 BootBoot程序工作流程程序工作流程LPC2114/2124LPC2114/2124 复位 运行ISP服务程序 看门狗复位 根据硬件 (P1.20、P1.26) 配臵 进入ISP状态吗? (P0.14为低) 初始化 用户代码 是否有效 执行用户代码 (片内Flash: 0 x00000000) N Y Y Y N N 在此检测特定引脚 检测用户代码是否有效 嵌入式软件运行流
7、程嵌入式软件运行流程 系统引导系统引导/ /升级阶段升级阶段 根据需要分别进入系统软件引导阶段或 系统升级阶段。 软件可通过测试通信端口数据或判断特 定开关的方式分别进入不同阶段。 嵌入式软件运行流程嵌入式软件运行流程 系统引导阶段系统引导阶段 系统引导有几种情况: 将系统软件从NOR Flash中读取出来加载到 RAM中运行:这种方式可以解决成本及Flash 速度比RAM慢的问题。软件可压缩存储在 Flash中。 不需将软件引导到RAM中而是让其直接在 NorFlash上运行,进入系统初始化阶段。 将软件从外存(如NandFlash、CF卡、MMC 等)中读取出来加载到RAM中运行:这种方
8、式的成本更低。 嵌入式软件运行流程嵌入式软件运行流程 系统升级阶段系统升级阶段 进入系统升级阶段后系统可通过网络进行远程网络进行远程 升级升级或通过串口进行本地升级串口进行本地升级。 远程升级远程升级一般支持TFTP、FTP、HTTP等方式。 本地升级本地升级可通过Console口使用超级终端或特 定的升级软件进行。 返回返回 嵌入式软件运行流程嵌入式软件运行流程 系统初始化阶段系统初始化阶段 在该阶段进行操作系统等系统软件各功能部分 必需的初始化工作,如根据系统配置初始化数 据空间、初始化系统所需的接口和外设等。 系统初始化阶段需要按特定顺序进行,如首先 完成内核的初始化,然后完成网络、文件
9、系统 等的初始化,最后完成中间件等的初始化工作。 返回返回 嵌入式软件运行流程嵌入式软件运行流程 应用初始化阶段应用初始化阶段 在该阶段进行应用任务的创建,信号量、在该阶段进行应用任务的创建,信号量、 消息队列的创建和与应用相关的其它初始消息队列的创建和与应用相关的其它初始 化工作。化工作。 多任务应用运行阶段多任务应用运行阶段 各种初始化工作完成后,系统进入多任务各种初始化工作完成后,系统进入多任务 状态,操作系统按照已确定的算法进行任状态,操作系统按照已确定的算法进行任 务的调度,各应用任务分别完成特定的功务的调度,各应用任务分别完成特定的功 能。能。 2 2、嵌入式操作系统的概述和作用嵌
10、入式操作系统的概述和作用 嵌入式操作系统概述嵌入式操作系统概述 嵌入式操作系统可以统称为应用在嵌入式系统的嵌入式操作系统可以统称为应用在嵌入式系统的 操作系统操作系统,它具有一般操作系统的功能它具有一般操作系统的功能,同时同时具具 有嵌入式软件的特点有嵌入式软件的特点,主要有:主要有: 可固化可固化 可配置、可剪裁可配置、可剪裁 独立的板级支持包,可修改独立的板级支持包,可修改 不同的不同的CPU有不同的版本有不同的版本 应用的开发需要有集成的交叉开发工具应用的开发需要有集成的交叉开发工具 添加系统组件添加系统组件 举例举例: 添加添加USB主设备功能支持主设备功能支持 支持支持USB鼠标、鼠
11、标、U盘功能盘功能 展开目录“展开目录“Core OS” - “CEBASE” -“Core OSServices” -“USB Host Support” 选择系统特性“选择系统特性“USB Function Driver”、“、“USB Host Spport”、 “USB Human Input Device (HID) Driver”、“、“USB Storage Class Driver”: “Device Drivers”-“USB Host” - “USB Host Controllers”,勾中,勾中 “OHCI” Windows CE Visual Studio 2005 桌
12、面桌面 WindowsWindows Windows 3.x : 2Windows 3.x : 2- -5MB5MB Windows 98 : 400MBWindows 98 : 400MB Windows XP : 1.5GBWindows XP : 1.5GB 越来越大越来越大 不能定制不能定制 Windows CEWindows CE 最小最小 : 200KB: 200KB 网络部分大约网络部分大约 800800KBKB GWES, Shell and GWES, Shell and Apps Apps 大约大约 4MB4MB Internet Explorer Internet Exp
13、lorer 大约大约 3 3MBMB 与桌面版本比较与桌面版本比较: 镜像大小镜像大小 CECE:Compact EditionCompact Edition(精简版);(精简版); Consumer ElectronicsConsumer Electronics(消费性电子产品)(消费性电子产品) 桌面版桌面版 WindowsWindows Only runs on x86 Only runs on x86 architecturearchitecture Windows CEWindows CE ARM / XscaleARM / Xscale MIPS MIPS PowerPC Powe
14、rPC SH SH x86 x86 与桌面版本比较与桌面版本比较: 硬件平台硬件平台 桌面桌面WindowsWindows ASCII / UNICODEASCII / UNICODE 丰富的丰富的 APIAPI 强有力的硬件平台强有力的硬件平台 Windows CEWindows CE 只支持只支持UNICODEUNICODE 部分部分Win32 API, MFCWin32 API, MFC等等 有限的硬件资源有限的硬件资源 与桌面版比较与桌面版比较: 编程接口编程接口 桌面桌面 WindowsWindows 商业软件,源代码是商业软件,源代码是 微软的一级机密微软的一级机密 分时系统分时系
15、统 Windows CEWindows CE Windows CEWindows CE公开了部分公开了部分 的源代码;(的源代码;(6.06.0) 用户可以对它进行修改用户可以对它进行修改 用户可以在用户可以在 “%_WINCEROOT%_WINCEROOT% private” private” 文件夹中找到公开的源代文件夹中找到公开的源代 码码 与桌面版比较与桌面版比较: 共享源代码共享源代码 Windows CEWindows CE(6.06.0)实时系统)实时系统 概述概述 近十年来,嵌入式操作系统得到飞速的发展近十年来,嵌入式操作系统得到飞速的发展 从支持8位微处理器到16位、32位甚
16、至64位微处理器; 从支持单一品种的微处理器芯片到支持多品种微处理 器芯片; 从只有内核到除了内核外还提供其他功能模块,如文 件系统,TCP/IP网络系统,窗口图形系统等。 随着嵌入式系统应用领域的扩展,目前嵌入式操随着嵌入式系统应用领域的扩展,目前嵌入式操 作系统的市场在不断细分,出现了针对不同领域作系统的市场在不断细分,出现了针对不同领域 的产品,这些产品按领域的要求和标准提供特定的产品,这些产品按领域的要求和标准提供特定 的功能。的功能。 VxWorksVxWorks、Windows CEWindows CE、uCLinuxuCLinux、RTLinuxRTLinux、 QURTLinu
17、xQURTLinux、DeltaOSDeltaOS、Palm OSPalm OS、pSOSpSOS、uCOSuCOS、 QNXQNX 概述概述 计算机系统包括硬件系统硬件系统和软件系统软件系统。 操作系统属于系统软件部分,也是系统软 件的核心部分。 操作系统将计算机系统中所有软硬件资源 有机地管理起来为用户服务。 应用软件 系统软件 计算机硬件 图4-1 计算机系统层次结构 软件软件: :指令指令 硬件硬件: :芯片等芯片等 操作系统的作用操作系统的作用 用户和硬件系统之间的接口用户和硬件系统之间的接口 系统资源的管理者系统资源的管理者 ( (多用户共享资源多用户共享资源) ) 实现对计算机资
18、源的抽象实现对计算机资源的抽象 操作系统是指能合理而且有效地管理计算机所有硬操作系统是指能合理而且有效地管理计算机所有硬 件资源和软件资源的系统软件。件资源和软件资源的系统软件。 3 3、嵌入式操作系统的分类和实时嵌入式操作系统的分类和实时 操作系统操作系统 操作系统的分类与发展操作系统的分类与发展 操作系统发展过程中出现多种类别,以下主要了解批处理操操作系统发展过程中出现多种类别,以下主要了解批处理操 作系统、分时操作系统、实时操作系统等作系统、分时操作系统、实时操作系统等 1 1单道批处理系统单道批处理系统 用户一次可以提交多个作业,但负责调度作业的监督程序每 次只向内存调入一个作业,系统
19、一次也只处理一个作业,处 理完一个作业后,再调入下一个作业进行处理,直到这批作 业全部完成。如DOS操作系统(AUTOEXEC.BAT) 2 2多道批处理系统多道批处理系统 在内存同时保存多个作业,CPU以交替的方式处理各个作业。 CPU保持忙碌状态,提高了CPU的利用率。 内存中可以同时保持多个程序并发执行。 CPU运行某个程序的同时,I/O设备可以处理其它程序的输 入输出任务,提高了I/O设备的利用率。 多道批处理:无交互能力; 作业排队,依次处理,周期较长,无法确定执行时间; 3 3分时系统分时系统 内存中保持多个用户的多个作业,系统内部的操作系统负责 协调多个用户分享CPU。 采用“时
20、间片轮转”方式分配CPU,所有用户轮流独立使 用一个时间片(Time Slice,一般取100毫秒或更小)时间 的CPU。 协调多路终端用户同时使用计算机系统,各个用户共享系 统的资源。 用户与计算机以交互方式工作并在可以接受的时间内将得 到响应。 分时系统具有多路性、独立性、交互性交互性和及时性特点。 Windows,unix,既可以打印,有可以做其他事情。 4 4实时操作系统实时操作系统 与其它系统的本质区别在于必须“实时实时”响应请求,并在确确 定定的时间内完成处理。 分时操作系统:系统内同时可以有多个程序运行,把分时操作系统:系统内同时可以有多个程序运行,把CPUCPU的时的时 间分按
21、顺序分成若干片,每个时间片内执行不同的程序,如间分按顺序分成若干片,每个时间片内执行不同的程序,如 UNIXUNIX; 实时操作系统:系统内有多个程序运行,每个程序有不同的优实时操作系统:系统内有多个程序运行,每个程序有不同的优 先级,只有最高优先级的任务才能占有先级,只有最高优先级的任务才能占有CPUCPU的控制权。的控制权。 实时系统与分时系统比较:实时系统与分时系统比较: 1)实时控制系统的控制对象所要求的开始截止时间或完成 截止时间为毫秒、甚至低于100微秒,而分时系统的响应时 间只需在用户的接受范围之内。 2)实时系统的交互能力要求不高,只限于一些特定专用服 务,而分时系统的用户可以
22、向系统提交数据处理、共享资源 等多种服务请求。 3)实时系统一般应用在一些特殊的、专用的方面,较之分 时系统要求更高的安全性和可靠性。 实时操作系统实时操作系统 强实时系统, 其系统响应时间在毫秒或微秒级。 一般实时系统, 其系统响应时间在几秒的数量 级上,其实时性的要求比强实时系统要差一些。 弱实时系统, 其系统响应时间约为数十秒或更 长。这种系统的响应时间可能随系统负载的 轻重而变化。 实时操作系统实时操作系统 根据确定性的强弱,可将嵌入式系统分为硬实时、 软实时系统: 硬实时:系统对系统响应时间有严格的要求,如 果系统响应时间不能满足,就要引起系统崩溃或 致命的错误。 软实时:系统对系统
23、响应时间有要求,但是如果 系统响应时间不能满足,不会导致系统出现致命 的错误或崩溃。 嵌入式操作系统的演变嵌入式操作系统的演变 在嵌入式系统的发展过程中,从操作系统在嵌入式系统的发展过程中,从操作系统 的角度来看,大致经历了以下几个阶段:的角度来看,大致经历了以下几个阶段: 无操作系统阶段无操作系统阶段 简单操作系统阶段简单操作系统阶段 实时操作系统阶段实时操作系统阶段 嵌入式操作系统的演变嵌入式操作系统的演变 无操作系统阶段无操作系统阶段 嵌入式系统最初的应用是基于单片机的嵌入式系统最初的应用是基于单片机的,大多以可编程控制器 的形式出现,具有监测、伺服、设备指示等功能,通常应用于 各类工业
24、控制和飞机、导弹等武器装备中,一般没有操作系统 的支持,只能通过汇编语言对系统进行直接控制,运行结束后 再清除内存。 这些装置虽然已经初步具备了嵌入式的应用特点,但仅仅只是 使用8位的CPU芯片来执行一些单线程的程序,因此严格地说 还谈不上系统的概念。 这一阶段嵌入式系统的主要特点是:系统结构和功能相对单一, 处理效率较低,存储容量较小,几乎没有用户接口。由于这种 嵌入式系统使用简便、价格低廉,因而曾经在工业控制领域中 得到了非常广泛的应用,但却无法满足现今对执行效率、存储 容量都有较高要求的信息家电等场合的需要。 嵌入式操作系统的演变嵌入式操作系统的演变 简单操作系统阶段简单操作系统阶段 2
25、0世纪80年代,随着微电子工艺水平的提高,IC制造商开始 把嵌入式应用中所需要的微处理器、I/O接口、串行接口以及 RAM、ROM等部件统统集成到一片VLSI中,制造出面向I/O 设计的微控制器微控制器,并一举成为嵌入式系统领域中异军突起的 新秀。与此同时,嵌入式系统的程序员也开始基于一些简单 的操作系统开发嵌入式应用软件,大大缩短了开发周期、提 高了开发效率。 这一阶段嵌入式系统的主要特点是:出现了大量高可靠、低 功耗的嵌入式CPU(如Power PC等),各种简单的嵌入式操 作系统开始出现并得到迅速发展。此时的嵌入式操作系统虽 然还比较简单,但已经初步具有了一定的兼容性和扩展性, 内核精巧
26、且效率高,主要用来控制系统负载以及监控应用程 序的运行。 嵌入式操作系统的演变嵌入式操作系统的演变 实时操作系统阶段实时操作系统阶段 20世纪90年代,在分布控制、柔性制造、数字化通信和信息 家电等巨大需求的牵引下,嵌入式系统进一步飞速发展,而 面向实时信号处理算法的DSP产品则向着高速度、高精度、 低功耗的方向发展。随着硬件实时性要求的提高,嵌入式系 统的软件规模也不断扩大,逐渐形成了实时多任务操作系统 (RTOS),并开始成为嵌入式系统的主流。 这一阶段嵌入式系统的主要特点是:操作系统的实时性得到 了很大改善,已经能够运行在各种不同类型的微处理器上, 具有高度的模块化和扩展性。此时的嵌入式
27、操作系统已经具 备了文件和目录管理、设备管理、多任务、网络、图形用户 界面(GUI)等功能,并提供了大量的应用程序接口(API), 从而使得应用软件的开发变得更加简单。 实时操作系统实时操作系统 早期嵌入式系统几乎用于控制,或多或少都早期嵌入式系统几乎用于控制,或多或少都 有实时的要求。有实时的要求。 嵌入式操作系统嵌入式操作系统= =实时操作系统实时操作系统 近年近年 1 1、手持式计算机和掌上电脑,非实时系统。、手持式计算机和掌上电脑,非实时系统。 2 2、CPUCPU速度提高,一些原先认为是“实时”的,速度提高,一些原先认为是“实时”的, 现在比较普遍,以前需要在“实时操作系统”上现在比
28、较普遍,以前需要在“实时操作系统”上 实现的,现在常规的操作系统上也能实现。实现的,现在常规的操作系统上也能实现。 嵌入式操作系统嵌入式操作系统 实时操作系统实时操作系统 嵌入式操作系统的演变嵌入式操作系统的演变 *Percent of total software supplied by RTOS vendor in a typical embedded device 10%* Kernel 30%* Kernel Networking File System 75%* Kernel Networking File System Multiprocessing Memory Manageme
29、nt Networking Utility Windows API Application Application Application Application 90%* Kernel Networking File System Multiprocessing Fault Tolerance Distributed Objects Advanced Networking Advanced Interconnect Java Browser / GUI 4 4、嵌入式操作系统的体系结构嵌入式操作系统的体系结构 和组成和组成 嵌入式操作系统分类嵌入式操作系统分类 从应用领域来分从应用领域来分
30、面向信息家电的嵌入式操作系统 面向智能手机的嵌入式操作系统,如 SymbianOS、MS Mobile OS、PalmOS、 Embedded Linux等 面向汽车电子的嵌入式操作系统 面向工业控制的嵌入式操作系统 . 从实时性的角度来分从实时性的角度来分 嵌入式实时操作系统:具有强实时特点,如 VxWorks、QNX、Nuclear、OSE、DeltaOS、 各种ITRON OS等。 非实时嵌入式操作系统:一般只具有弱实时特 点,如WinCE、版本众多的嵌入式Linux、 PalmOS等。 从嵌入式系统的商业模式来分类从嵌入式系统的商业模式来分类 商用型:功能稳定、可靠,有完善的技 术支持
31、和售后服务,开发费用开发费用+ +版税版税。 开源型:开放源码,只收服务费,没有 版税。 如Embedded linux,RTEMS, eCOS。 嵌入式操作系统体系结构嵌入式操作系统体系结构 体系结构是操作系统的基础,它定义了体系结构是操作系统的基础,它定义了 硬件与软件的界限、内核与操作系统其硬件与软件的界限、内核与操作系统其 它组件(文件、网络、它组件(文件、网络、GUIGUI等)的组织关等)的组织关 系、系统与应用的接口。系、系统与应用的接口。 体系结构是确保系统的性能、可靠性、体系结构是确保系统的性能、可靠性、 灵活性、可移植性、可扩展性的关键,灵活性、可移植性、可扩展性的关键, 就
32、好比房子的梁架,只有梁架搭牢固了就好比房子的梁架,只有梁架搭牢固了 才提得上房子的质量,再做一些锦上添才提得上房子的质量,再做一些锦上添 花的工作才有意义。花的工作才有意义。 嵌入式操作系统体系结构嵌入式操作系统体系结构 目前嵌入式操作系统主要采用分层和模块目前嵌入式操作系统主要采用分层和模块 化相结合的结构或微内核结构化相结合的结构或微内核结构。 分层和模块化结合的结构将操作系统分为硬件分层和模块化结合的结构将操作系统分为硬件 无关层无关层、硬件抽象层和硬件相关层硬件抽象层和硬件相关层,每层再划每层再划 分功能模块分功能模块。 这样这样移植工作移植工作便集中在便集中在硬件相关层硬件相关层,与
33、其余两与其余两 层无关层无关,功能的伸缩则集中在模块上功能的伸缩则集中在模块上,从而确从而确 保其具有良好的可移植性和可伸缩性保其具有良好的可移植性和可伸缩性。 而采用微内核结构而采用微内核结构,则可利用其可伸缩的特点则可利用其可伸缩的特点 适应硬件的发展适应硬件的发展,便于扩展便于扩展。 嵌入式操作系统体系结构嵌入式操作系统体系结构 应用程序应用程序 任务管理任务管理 硬硬 件件 用户扩展处理用户扩展处理 调度管理调度管理 硬件抽象层硬件抽象层 应用编程接口应用编程接口 内存管理内存管理 中断管理中断管理 时钟时钟/ /定时器管理定时器管理 I/OI/O管理管理 出错处理出错处理 同步、通信
34、管理(消息队列,信号量,事件同步、通信管理(消息队列,信号量,事件 ,异步信号,异步信号) )) DeltaCORE的体系结构:层次模块结构的体系结构:层次模块结构 分分 层层 次次 模模 块块 化化 嵌入式操作系统体系结构嵌入式操作系统体系结构 硬硬 件件 进程服务进程服务 用户态用户态 核心态核心态 应用程序客户应用程序客户 内存服务内存服务 微内核微内核 文件服务文件服务 网络服务网络服务 显示服务显示服务 发送发送 应答应答 客户客户/服务器结构(微内核结构)服务器结构(微内核结构) 嵌入式操作系统体系结构嵌入式操作系统体系结构 微内核结构的优点微内核结构的优点(强内核强内核) 提供一
35、致的接口提供一致的接口 可扩展性:扩展对新的软件可扩展性:扩展对新的软件/硬件支持硬件支持 灵活性:可伸缩灵活性:可伸缩 可移植性可移植性 分布式系统支持分布式系统支持 适用于面向对象操作系统环境适用于面向对象操作系统环境 性能问题:性能问题: 通过微内核构造和发送信息通过微内核构造和发送信息、接受应答并解码接受应答并解码 所花费的时间比进行一次系统调用的时间多所花费的时间比进行一次系统调用的时间多 很大程度取决于微内核的大小和功能很大程度取决于微内核的大小和功能 嵌入式操作系统嵌入式操作系统 嵌入式内核嵌入式内核 嵌入式嵌入式TCP/IP 网络系统网络系统 嵌入式文件系统嵌入式文件系统 嵌入
36、式操作系统的组成嵌入式操作系统的组成 嵌入式内核嵌入式内核 内核是嵌入式操作系统的基础内核是嵌入式操作系统的基础,也是必备的也是必备的 部分部分。 内核还提供特定的应用编程接口内核还提供特定的应用编程接口,但目前没但目前没 有统一的标准有统一的标准。 任任 务务 管管 理理 内内 存存 管管 理理 通通 信信 同同 步步 与与 互互 斥斥 机机 制制 中中 断断 管管 理理 时时 间间 管管 理理 任任 务务 扩扩 展展 嵌入式内核嵌入式内核 任务管理任务管理 内核的核心部分内核的核心部分,具有任务调度具有任务调度、创建任务创建任务、 删除任务删除任务、挂起任务挂起任务、解挂任务解挂任务、设置
37、任务设置任务 优先级等功能优先级等功能。 通用计算机的操作系统追求的是最大的吞吐通用计算机的操作系统追求的是最大的吞吐 率率,为了达到最佳整体性能为了达到最佳整体性能,其调度原则是其调度原则是 公平公平,采用采用RoundRound- -RobinRobin或可变优先级调度或可变优先级调度 算法算法,调度时机主要以时间片为主驱动调度时机主要以时间片为主驱动。 而嵌入式操作系统多采用基于静态优先级的而嵌入式操作系统多采用基于静态优先级的 可抢占的调度可抢占的调度,任务优先级是在运行前通过任务优先级是在运行前通过 某种策略静态分配好的某种策略静态分配好的,一旦有优先级更高一旦有优先级更高 的任务就
38、绪就马上进行调度的任务就绪就马上进行调度。 嵌入式内核嵌入式内核 内存管理内存管理 嵌入式操作系统的内存管理比较简单嵌入式操作系统的内存管理比较简单。 通常不采用虚拟存储管理通常不采用虚拟存储管理,而采用静态内存分而采用静态内存分 配和动态内存分配配和动态内存分配(固定大小内存分配和可变固定大小内存分配和可变 大小内存分配大小内存分配)相结合的管理方式相结合的管理方式。(所有程所有程 序中访问的地址都是实际的物理地址序中访问的地址都是实际的物理地址) 有些内核利用有些内核利用MMUMMU机制提供内存保护功能机制提供内存保护功能。允允 许多个进程安全地共享主内存区域许多个进程安全地共享主内存区域
39、。 通用操作系统广泛使用了虚拟内存的技术通用操作系统广泛使用了虚拟内存的技术,为为 用户提供一个功能强大的虚存管理机制用户提供一个功能强大的虚存管理机制。 ARM720T: MMUARM720T: MMU、WinceWince、Palm OsPalm Os、Symbian OsSymbian Os、 LinuxLinux ARM9TDMI:ARM9TDMI:基本内核;基本内核;ARM920T, ARM922T:MMUARM920T, ARM922T:MMU,CacheCache 嵌入式内核嵌入式内核 通信通信、同步和互斥机制同步和互斥机制 这些机制提供任务间这些机制提供任务间、任务与中断处理程
40、序间任务与中断处理程序间 的通信的通信、同步和互斥功能同步和互斥功能。 一般包括信号量一般包括信号量、消息消息、事件事件、管道管道、异步信异步信 号和共享内存等功能号和共享内存等功能。 与通用操作系统不同的是与通用操作系统不同的是,嵌入式操作系统需嵌入式操作系统需 要解决在这些机制的使用中出现的优先级反转要解决在这些机制的使用中出现的优先级反转 问题问题。 优先级反转优先级反转 Task 1 (H) Task 2 (M) Task 3 (L) Priority Inversion Task 3 Get Semaphore Task 1 Preempts Task 3 Task 1 Tries
41、to get Semaphore Task 2 Preempts Task 3 Task 3 Resumes Task 3 Releases the Semaphore (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) 嵌入式内核嵌入式内核 中断管理中断管理,一般具有以下功能:一般具有以下功能: 安装中断服务程序安装中断服务程序 中断发生时中断发生时,对中断现场进行保存对中断现场进行保存,并且转到并且转到 相应的服务程序上执行相应的服务程序上执行 中断退出前中断退出前,对中断现场进行恢复对中断现场进行恢复 中断栈切换中断栈切换 中断退出时的任
42、务调度中断退出时的任务调度 嵌入式内核嵌入式内核 时间管理一般具有以下功能:时间管理一般具有以下功能: 维持日历时间; 任务有限等待的计时; 软定时器的定时管理; 维持系统时间片轮转调度。 大多数嵌入式系统有两种时钟源:大多数嵌入式系统有两种时钟源: 实时时钟(real time clock,RTC) 定时器/计数器 实时时钟:实时时钟: 一般靠电池供电,即使系统断电,也可以维持日期和时间。 实时时钟独立于操作系统,所以也被称为硬件时钟硬件时钟,为整个系统提供一 个计时标准。 定时器定时器/ /计数器:计数器: 实时内核需要一个定时器作为系统时钟系统时钟(或称OS时钟),并由实时内核 控制系统
43、时钟工作。 一般来说,实时时钟是系统时钟的时间基准时间基准,实时内核通过读取实时时 钟来初始化系统时钟,此后二者保持同步运行,共同维系系统时间系统时间。 嵌入式内核嵌入式内核 任务扩展功能任务扩展功能 任务扩展功能就是在内核中设置一些任务扩展功能就是在内核中设置一些HookHook的调的调 用点用点,在这些调用点上内核调用应用设置的在这些调用点上内核调用应用设置的、 应用自己编写的扩展处理程序应用自己编写的扩展处理程序,以扩展内核的以扩展内核的 有关功能有关功能。 HookHook调用点有任务创建调用点有任务创建、任务切换任务切换、任务删除任务删除、 出错处理等出错处理等。 返回返回 5 5、
44、C/OSC/OS- -IIII简介简介 嵌入式实时操作系统嵌入式实时操作系统C/OS-II简介简介 C/OS-II是一个抢占式实时多任务内核。是一个抢占式实时多任务内核。 它是用它是用ANSI的的C语言编写的,包含一小部语言编写的,包含一小部 分汇编语言代码,使之可以提供给不同架分汇编语言代码,使之可以提供给不同架 构的微处理器使用。构的微处理器使用。 至今,从至今,从8位到位到64位,位, C/OS-II已经在已经在40多多 种不同架构的微处理器上使用。种不同架构的微处理器上使用。 使用使用 C/OS的领域包括:照相机行业、航的领域包括:照相机行业、航 空业、医疗器械、网络设备、自动提款机空
45、业、医疗器械、网络设备、自动提款机 以及工业机器人等。以及工业机器人等。 嵌入式实时操作系统嵌入式实时操作系统C/OS-II简介简介 C/OS-II全部以源代码的方式提供,大约全部以源代码的方式提供,大约 有有5500行。行。 CPU相关的部分使用的是针对相关的部分使用的是针对Intel80 x86微微 处理器的代码。处理器的代码。 C/OS-II可以很容易地移植到不同架构的可以很容易地移植到不同架构的 嵌入式微处理器上。嵌入式微处理器上。 公开源代码公开源代码 可移植性(可移植性(PortablePortable) 绝大部分绝大部分 C/OSC/OS- -IIII的源码是用移植性很强的的源码
46、是用移植性很强的ANSI CANSI C写写 的。和微处理器硬件相关的那部分是用汇编语言写的。汇的。和微处理器硬件相关的那部分是用汇编语言写的。汇 编语言写的部分已经压到最低限度,使得编语言写的部分已经压到最低限度,使得 C/OSC/OS- -IIII便于移便于移 植到其他微处理器上。植到其他微处理器上。 C/OSC/OS- -IIII可以在绝大多数可以在绝大多数8 8位、位、1616 位、位、3232位以至位以至6464位微处理器、微控制器位微处理器、微控制器 、数字信号处理器、数字信号处理器 (DSPDSP)上运行。)上运行。 可固化(可固化(ROMableROMable) C/OSC/O
47、S- -IIII是为嵌入式应用而设计的,这就意味着,只是为嵌入式应用而设计的,这就意味着,只 要读者有固化手段(要读者有固化手段(C C编译、连接、下载和固化),编译、连接、下载和固化), C/OSC/OS- -IIII可以嵌入到读者的产品中成为产品的一部分。可以嵌入到读者的产品中成为产品的一部分。 可裁剪(可裁剪(ScalableScalable) 可以只使用可以只使用 C/OSC/OS- -IIII中应用程序需要的那些系统服务。中应用程序需要的那些系统服务。 也就是说某产品可以只使用很少几个也就是说某产品可以只使用很少几个 C/OSC/OS- -IIII调用,而另调用,而另 一个产品则使用了几乎所有一个产品则使用了几乎所有 C/OSC/OS- -IIII的功能,这样可以减的功能,这样可以减 少产品中的少产品中的 C/OSC/OS- -IIII所需的存储器空间(所需的存储器空间(RAMRAM和和ROMROM)。这)。这 种可剪裁性是靠条件编译实现