Download presentation
Presentation is loading. Please wait.
Published byNathan Lacerda Castelhano Modified 6年之前
1
陈香兰 xlanchen@ustc.edu.cn 助教:陈博、李春华 Spring 2009
嵌入式操作系统 陈香兰 助教:陈博、李春华 Spring 2009
2
嵌入式系统 及其软件开发概述
3
Embedded Operating Systems
主要内容 一、嵌入式系统基本概念 二、嵌入式硬件的发展 三、嵌入式软件及其开发 四、嵌入式操作系统及系统开发 五、典型嵌入式操作系统介绍 六、嵌入式操作系统选型 2018/12/30 Embedded Operating Systems
4
Embedded Operating Systems
主要内容 一、嵌入式系统基本概念 二、嵌入式硬件的发展 三、嵌入式软件及其开发 四、嵌入式操作系统及系统开发 五、典型嵌入式操作系统介绍 六、嵌入式操作系统选型 2018/12/30 Embedded Operating Systems
5
Embedded Operating Systems
嵌入式系统无处不在 2018/12/30 Embedded Operating Systems
6
Embedded Operating Systems
嵌入式系统开发技术 嵌入式系统开发技术 是微处理器、单片机、微处理器等的应用技术,包含硬件系统和操作系统两大部分。 嵌入式系统的开发具有系统级应用开发技术的基本特征。 2018/12/30 Embedded Operating Systems
7
Embedded Operating Systems
什么是嵌入式系统: 来自IEEE的定义 “Embedded system is devices used to control, monitor, or assist the operation of equipment, machinery or plants”. ——IEEE 上述定义主要从应用上加以定义。 可以看出:嵌入式系统是软硬件的综合体,还可以涵盖机械等附属装置。 2018/12/30 Embedded Operating Systems
8
Embedded Operating Systems
什么是嵌入式系统: 广义上 嵌入式系统是一种应用系统,它至少包含一个可编程的计算机(通常是某种形式的微控制器、微处理器或数字信号处理芯片(DSP))且使用该系统的人一般并未意识到该系统是基于计算机的。 2018/12/30 Embedded Operating Systems
9
Embedded Operating Systems
什么是嵌入式系统: 国内的经典定义 嵌入式系统是 “以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统” 一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等部分组成,用于实现对其他设备的控制、监视或管理等功能。 2018/12/30 Embedded Operating Systems
10
Embedded Operating Systems
可以从以下几个方面来理解国内对嵌入式系统的定义: 嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用相结合才会具有生命力、才更具有优势。 即嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的裁减利用。 2018/12/30 Embedded Operating Systems
11
Embedded Operating Systems
嵌入式系统是将先进的计算机技术、半导体技术和电子技术以及各个行业的具体应用相结合后的产物。 这就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。所以,介入嵌入式系统行业,必须有一个正确的定位。例如 Palm OS之所以在PDA领域占有70%以上的市场,就是因为其立足于个人电子消费品,着重发展图形界面和多任务管理; 而风河的vxWorks之所以在火星车上得以应用,则是因为其高实时性和高可靠性。 2018/12/30 Embedded Operating Systems
12
Embedded Operating Systems
嵌入式系统必须根据应用需求可对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求。所以,如果能建立相对通用的软硬件基础,然后在其上开发出适应各种需要的系统,是一个比较好的发展模式。目前的嵌入式系统的核心往往是一个只有几KB到几十KB的微内核,需要根据实际的使用进行功能扩展或者裁减,但是由于微内核的存在,使得这种扩展能够非常顺利地进行。 2018/12/30 Embedded Operating Systems
13
Embedded Operating Systems
同时还应该看到,嵌入式系统本身还是一个外延极广的名词。凡是与产品结合在一起的具有嵌入式特点的控制系统都可以叫嵌入式系统,而且有时很难给它下一个准确的定义。 2018/12/30 Embedded Operating Systems
14
Embedded Operating Systems
嵌入式系统的体系结构 一般而言,嵌入式系统的构架可以分成四个部分: 处理器、存储器、 输入/输出(I/O)、 软件 多数嵌入式设备的应 用软件和操作系统都 紧密结合,这也是 嵌入式系统和Windows 系统的最大区别 。 软件 输出 输入 处理器 存储器 2018/12/30 Embedded Operating Systems
15
Embedded Operating Systems
嵌入式系统特点 嵌入式计算机系统同通用型计算机系统相比具有以下特点: 1、嵌入式系统通常是面向特定应用的。 嵌入式CPU与通用型的最大不同就是嵌入式CPU大多工作在为特定用户群设计的系统中,它通常都具有低功耗、体积小、集成度高等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化,移动能力大大增强,跟网络的耦合也越来越紧密。 2018/12/30 Embedded Operating Systems
16
Embedded Operating Systems
2、嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争力 3、嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。 2018/12/30 Embedded Operating Systems
17
Embedded Operating Systems
4、为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中 5、嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。 2018/12/30 Embedded Operating Systems
18
Embedded Operating Systems
主要内容 一、嵌入式系统基本概念:定义;体系结构;特点 二、嵌入式硬件的发展 三、嵌入式软件及其开发 四、嵌入式操作系统及系统开发 五、典型嵌入式操作系统介绍 六、嵌入式操作系统选型 2018/12/30 Embedded Operating Systems
19
Embedded Operating Systems
嵌入式系统硬件 从硬件方面来讲,各式各样的嵌入式处理器是嵌入式系统硬件中的最核心的部分。 目前,世界上具有嵌入式功能特点的处理器已超过1000种,流行体系结构包括MCU、MPU等30多个系列。 目前嵌入式处理器的 寻址空间:可以从64KB到16MB, 处理速度:最快可以达到2000MIPS, 封装:从几个引脚到几百个引脚不等。 2018/12/30 Embedded Operating Systems
20
Embedded Operating Systems
嵌入式系统硬件分类 目前来讲,嵌入式处理器可以分成这样一些类型 1、嵌入式微处理器( Microprocessor Unit,MPU) 2、嵌入式微控制器( Microcontroller Unit,MCU) 3、嵌入式DSP( Digital Signal Processor )处理器 4、嵌入式片上系统( System on Chip,SoC) 2018/12/30 Embedded Operating Systems
21
Embedded Operating Systems
嵌入式系统硬件分类 目前来讲,嵌入式处理器可以分成这样一些类型 1、嵌入式微处理器( Microprocessor Unit,MPU) 2、嵌入式微控制器( Microcontroller Unit,MCU) 3、嵌入式DSP( Digital Signal Processor )处理器 4、嵌入式片上系统( System on Chip,SoC) 2018/12/30 Embedded Operating Systems
22
Embedded Operating Systems
嵌入式微处理MPU MPU(Microprocessor Unit)≈CPU MPU是由通用计算机中的CPU演变而来的,在本质上与通用计算机的CPU是一样的,只是在具体的实现细节和功能上有所不同。 装配在专门设计的电路板上,只保留跟嵌入式应用紧密相关的功能部件,去除其他冗余功能部件,从而大幅减小系统的体积和功耗。 为了满足嵌入式应用的特殊需求,MPU在工作温度、抗电磁干扰、可靠性方面一般都做了各种增强 ,在功能上会失去一些在嵌入式领域不常用的功能单元 2018/12/30 Embedded Operating Systems
23
Embedded Operating Systems
和工业控制计算机相比, MPU具有体积小、质量轻、成本低、可靠性高的优点,但是在电路板上必须包括ROM、RAM、总线接口、各种外设等器件,从而降低了系统的可靠性,技术保密性也比较差。 由于MPU及其存储器、总线、外设等安装在一块电路板上,称为单板计算机,如STD-BUS、PC104等。 MPU目前主要有: intel x86、IBM PowerPC、motorola 68K/coldfire、MIPS、ARM、Hitachi SuperH等系列 2018/12/30 Embedded Operating Systems
24
Embedded Operating Systems
典型嵌入式微处理器: ARM系列 ARM(Advanced RISC Machines) 是ARM公司的高性能、廉价、低功耗的RISC处理器,适用于多种领域 如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。 ARM公司将其硬件技术授权给世界上许多著名的半导体厂商,包括Intel,IBM,LG,NEC,SONY,Philps这样的大公司。 关于软件系统的合伙人,则包括Microsoft、SUN等一系列著名公司 2018/12/30 Embedded Operating Systems
25
Embedded Operating Systems
ARM公司提供一系列CPU内核、体系扩展、微处理器和系统芯片方案。 由于所有产品均采用一个通用的基本体系结构,所以相同的软件理论上可在所有产品中运行 目前,ARM公司常见的处理器系列有: ARM7、ARM9、ARM10、ARM11等 2018/12/30 Embedded Operating Systems
26
Embedded Operating Systems
典型嵌入式微处理器: MIPS MIPS Microprocessor without Interlocked Piped Stages “无内部互锁流水线微处理器” 也是现在比较流行的一种RISC处理器,其机制是尽量利用软件办法避免流水线中的数据相关问题 最早是在20世纪80年代初由美国斯坦福大学Hennessy教授领导的研究小组研制出来的 在嵌入式方面,仅次于ARM 应用领域覆盖游戏机,移动电话,数码相机,ATM,路由器,打印机,掌上电脑等等各个方面,非常广泛 2018/12/30 Embedded Operating Systems
27
Embedded Operating Systems
国内的嵌入式微处理器: 龙芯 中国科学院计算所研制 具有自主知识产权 龙芯1号:32位MIPS处理器 龙芯2号 龙芯3号 龙芯+Linux/?? 2018/12/30 Embedded Operating Systems
28
Embedded Operating Systems
手机的大概组成 2018/12/30 Embedded Operating Systems
29
Embedded Operating Systems
嵌入式系统硬件分类 目前来讲,嵌入式处理器可以分成这样一些类型 1、嵌入式微处理器( Microprocessor Unit,MPU) 2、嵌入式微控制器( Microcontroller Unit,MCU) 3、嵌入式DSP( Digital Signal Processor )处理器 4、嵌入式片上系统( System on Chip,SoC) 2018/12/30 Embedded Operating Systems
30
Embedded Operating Systems
嵌入式微控制器MCU(1) MCU = Microcontroller Unit 一般又称为单片机,即将整个计算机系统集成到一块芯片中 MCU一般以某种微处理器内核为核心,芯片内部集成ROM/EPROM,总线,总线逻辑,定时器,I/O单元,串口,A/D,D/A,flash等各种必要功能和外设 为适应不同的应用需求,一般一个系列的单片机具有多种衍生产品,每种衍生产品的处理器内核基本都是一样的,不同的是存储器和外设的配置及封装 2018/12/30 Embedded Operating Systems
31
Embedded Operating Systems
嵌入式微控制器MCU(2) 与MPU相比,MCU的特点是 单片化,体积大大减小,成本和功耗下降,可靠性提高 微控制器的片上资源一般比较丰富,适合于比较简单的控制过程(得名的来由) 2018/12/30 Embedded Operating Systems
32
Embedded Operating Systems
嵌入式微控制器MCU(3) 代表性的通用系列 intel 8051,P51XA,MCS系列,motorola 68300等等 半通用系列 支持USB接口的MCU 8XC930/932、C540、C541 支持I2C、CAN-bus、LCD的MCU 等等 2018/12/30 Embedded Operating Systems
33
Embedded Operating Systems
嵌入式系统硬件分类 目前来讲,嵌入式处理器可以分成这样一些类型 1、嵌入式微处理器( Microprocessor Unit,MPU) 2、嵌入式微控制器( Microcontroller Unit,MCU) 3、嵌入式DSP( Digital Signal Processor )处理器 4、嵌入式片上系统( System on Chip,SoC) 2018/12/30 Embedded Operating Systems
34
Embedded Operating Systems
嵌入式DSP处理器EDSP EDSP = Embedded Digital Signal Processor DSP在运算量较大(特别是向量运算、指针线性寻址很多)的场合发挥重要作用 对系统结构和指令进行了特殊设计,使其适合与执行DSP算法,编译效率较高,指令执行速度也较高 除了数字滤波,FFT等之外,DSP处理器在各种带有智能逻辑的产品,生物信息识别终端,实时语音编码解码系统中都得到了广泛的应用 代表性的产品是Texas Instruments公司的TMS320系列和Motorola的DSP56000系列 2018/12/30 Embedded Operating Systems
35
Embedded Operating Systems
嵌入式系统硬件分类 目前来讲,嵌入式处理器可以分成这样一些类型 1、嵌入式微处理器( Microprocessor Unit,MPU) 2、嵌入式微控制器( Microcontroller Unit,MCU) 3、嵌入式DSP( Digital Signal Processor )处理器 4、嵌入式片上系统( System on Chip,SoC) 2018/12/30 Embedded Operating Systems
36
Embedded Operating Systems
嵌入式片上系统SOC(1) SOC = System on Chip 随着VLSI技术的发展,在一个硅片上可以包括CPU、各种外设控制器(如网络控制器、LCD控制器等)等多个功能单元,构成一个完整的复杂硬件系统,这就是嵌入式片上系统 嵌入式处理器内核可以作为SoC的一种标准库,与其他嵌入式系统外设一样,成为VLSI设计中的一种标准器件,用VHDL等语言描述,存储在器件库中 用户只需定义出其整个应用系统,仿真通过后,就可以将设计图交给半导体工厂制作 Very Large Scaled Integration 超大规模集成 VLSI:Very Large Scaled Integration,超大规模集成 VHSIC Hardware Description Language 硬件描述语言 Very High Speed Integrated Circuit 超高速集成电路 2018/12/30 Embedded Operating Systems
37
Embedded Operating Systems
嵌入式片上系统SOC(2) 这样,整个嵌入式系统大部分都可以集成到一块或几块芯片中去,系统电路板将变得很简洁,对减小体积和功耗,提高可靠性非常有利 SoC可以分为通用和专用两类,市场份额比较小 2018/12/30 Embedded Operating Systems
38
Embedded Operating Systems
主要内容 一、嵌入式系统基本概念 二、嵌入式硬件的发展 三、嵌入式软件及其开发 四、嵌入式操作系统及系统开发 五、典型嵌入式操作系统介绍 六、嵌入式操作系统选型 2018/12/30 Embedded Operating Systems
39
Embedded Operating Systems
嵌入式系统的软件 简单的嵌入式应用 若嵌入式系统的功能需求比较简单,如电动玩具、空调、冰箱等,则嵌入式系统软件只需完成较简单的功能,就不需要嵌入式操作系统的支持。 如:基于8051的应用 儿童玩具、汽车系统等等 复杂的嵌入式应用 若功能比较复杂,需要网络功能、存储器管理、进程/线程管理等,则通过嵌入式操作系统的帮助,可以加快嵌入式系统软件的开发进度和可靠性。 2018/12/30 Embedded Operating Systems
40
Embedded Operating Systems
简单的嵌入式应用 简单的嵌入式应用不需要使用操作系统 当系统上电后,main函数将被调用,首先初始化,然后进入循环直到系统停电或者出现重大错误。 超级循环 void main(void) { //prepare for function X X_init(); While(1) X(); } 2018/12/30 Embedded Operating Systems
41
Embedded Operating Systems
简单的嵌入式应用的开发过程 简单的嵌入式应用的开发过程 在个人电脑上配置交叉开发环境、安装仿真器,编写程序,交叉编译,在仿真器上运行测试并修改直到软件满足需求; 利用面包板开发和调试软、硬件 利用编程器将软件烧到开发好的系统中进行现场运行测试 2018/12/30 Embedded Operating Systems
42
Embedded Operating Systems
主要内容 一、嵌入式系统基本概念 二、嵌入式硬件的发展 三、嵌入式软件及其开发 四、嵌入式操作系统及系统开发 五、典型嵌入式操作系统介绍 六、嵌入式操作系统选型 2018/12/30 Embedded Operating Systems
43
Embedded Operating Systems
嵌入式操作系统 简单的说,嵌入式操作系统就是支持嵌入式系统工作的操作系统。在本质上与通用的操作系统没有太大的区别,一般用于比较复杂的嵌入式系统中,例如 手机、PDA等电子类消费产品 机顶盒、路由器等 对嵌入式系统的硬件有较高的要求 2018/12/30 Embedded Operating Systems
44
Embedded Operating Systems
基于嵌入式操作系统的嵌入式应用开发 确定需求 根据需求选择合适的硬件 硬实时/软实时系统? 什么处理器?哪些辅助硬件? 选择嵌入式操作系统 选择开发平台 编程语言、软件开发工具 实际的开发平台包括硬件开发平台、操作系统、编程语言以及软件开发工具 2018/12/30 Embedded Operating Systems
45
Embedded Operating Systems
编写并优化代码 一般在主机系统上进行开发和优化工作。 代码优化主要在软件执行速度和软件尺寸之间取得平衡,满足嵌入式系统对速度和存储空间的限制。在嵌入式开发中,一般需要避免使用大型的软件库,避免使用递归编程,减少堆栈的消耗。 在模拟器或者开发板上调试 2018/12/30 Embedded Operating Systems
46
Embedded Operating Systems
嵌入式软件系统的指标 尺寸 满足硬件限制 实时性 硬实时,软实时和非实时系统 网络能力 人机交互能力 2018/12/30 Embedded Operating Systems
47
Embedded Operating Systems
嵌入式系统的实时性 嵌入式系统一般具有实时的特点。 所谓实时系统是指在这种系统中, 一个优先级高的任务能够得到立即的、没有延迟的服务,不需要等待任何其他优先级低的任务,一旦它得到CPU的使用权,将一直执行直到工作结束或者出现更高级别的进程。 为了满足这样的需求,嵌入式操作系统必须具有高效的中断处理能力和高效的IO能力 2018/12/30 Embedded Operating Systems
48
Embedded Operating Systems
嵌入式操作系统分类 硬实时系统 确保系统中的关键任务在确定的时间得到响应,不能有失败的情况,否则会出现严重后果 软实时系统 设计的时候是有响应时间要求的,但是偶尔某些任务的响应时间超过这个限制也不会有严重的后果 非实时系统 无响应时间的要求 2018/12/30 Embedded Operating Systems
49
Embedded Operating Systems
实时系统的几个指标 预测反应时间 可调度性 强负载下的稳定性 2018/12/30 Embedded Operating Systems
50
Embedded Operating Systems
1、预测反应时间 在工业控制系统中,实时可定义为系统对某事件响应时间的可预测性。 一个事件发生后,系统须在一个可准确预见的时间范围内作出反应。 2018/12/30 Embedded Operating Systems
51
Embedded Operating Systems
2、可调度性 实时任务具有时限要求,调度实时任务时,需要判断是否每个任务的执行都能够在其截止期限内完成。 如果每个任务的执行都能够在其截止期限内完成,则称该调度是可行的 可调度性判定(或称调度可行性判定)就是判定给定的n个实时任务在应用某种调度算法的前提下能否产生一个可行的调度。 调度算法的设计要尽可能满足任务可调度性的要求 2018/12/30 Embedded Operating Systems
52
Embedded Operating Systems
3、强负载下的稳定性 实时稳定性随着系统的负载有所不同 当系统的负载变得很大时,如果系统不能保证所有任务的时间要求,应当能使其中一部分关键任务始终满足时限要求 2018/12/30 Embedded Operating Systems
53
Embedded Operating Systems
主要内容 一、嵌入式系统基本概念 二、嵌入式硬件的发展 三、嵌入式软件及其开发 四、嵌入式操作系统及系统开发 五、典型嵌入式操作系统介绍 六、嵌入式操作系统选型 2018/12/30 Embedded Operating Systems
54
Embedded Operating Systems
嵌入式操作系统一览 2018/12/30 Embedded Operating Systems
55
Embedded Operating Systems
常见嵌入式实时操作系统 RTlinux及其他嵌入式实时Linux uC/OS II wind river systems公司的Vxworks QNX software systems公司的QNX。 pSOS OS/9 VRTX eCOS 2018/12/30 Embedded Operating Systems
56
Embedded Operating Systems
常见嵌入式非实时操作系统 Microsoft公司的windows CE、Embedded windows xp Palm公司的Palm OS symbian公司的EPOC 一些嵌入式linux系统 2018/12/30 Embedded Operating Systems
57
Embedded Operating Systems
介绍几款典型的嵌入式操作系统 uC/OS II ThreadX Windows系列的嵌入式操作系统 VxWorks RTEMS 嵌入式Linux 2018/12/30 Embedded Operating Systems
58
Embedded Operating Systems
1、uC/OS II 免费的公开源码实时操作系统 内核提供任务调度和管理、时钟管理、任务间同步与通信、内存管理和中断服务等功能 最多支持64个任务,分别对应优先级0~63,其中0为最高优先级 可剥夺实时多任务内核 调度工作的内容分为两部分:最高优先级任务的寻找和任务切换 2018/12/30 Embedded Operating Systems
59
Embedded Operating Systems
内核是针对实时系统的要求来设计实现的,相对比较简单,可以满足较高的实时性要求 但是没有网络功能和文件系统,对于像媒体播放、需要网络和图形界面支持的应用就比较差 2018/12/30 Embedded Operating Systems
60
Embedded Operating Systems
uC/OS II 目录的含义 2018/12/30 Embedded Operating Systems
61
Embedded Operating Systems
2018/12/30 Embedded Operating Systems
62
Embedded Operating Systems
2、ThreadX操作系统 只需要很小的存储器容量(最低5k) 硬实时的处理能力 有功能强大的专门的开发调试支持工具 支持了市场上绝大部分的CPU 同样也是商业化的操作系统 2018/12/30 Embedded Operating Systems
63
Embedded Operating Systems
3、微软的移动平台 Windows Mobile Smartphone 信息消费 基本数据浏览 把PDA融入电话 可以与Exchange交互 .NET Compact Framework ASP.NET 移动控件 Pocket PC 浏览和输入数据 把电话融入PDA 可以与Office, Exchange和SQL Server交互 笔记本PC 复杂的文档编辑和读写 桌面键盘输入 键盘和鼠标输入法 完整的.NET framework 支持 Windows XP/XPE 平板电脑 支持数字墨水 可以支持键盘,也可以把键盘拿走 键盘、鼠标、数字墨水和语音输入 完整的 .NET framework支持 提供笔,数字墨水,手写和语音识别API Windows CE 小型个人产品 单向网络 信息消费 2018/12/30 Embedded Operating Systems 更强的功能
64
Embedded Operating Systems
Windows Embedded 家族 2018/12/30 Embedded Operating Systems
65
Embedded Operating Systems
Windows CE 主要用于PDA,smartphone等个人手持终端上 支持多线程 支持多种软硬件 最大的特点就是能提供与pc 机类似的图形界面和主要的应用程序 地道的商业操作系统 2018/12/30 Embedded Operating Systems
66
Embedded Operating Systems
Windows CE(2) 主要模块 内核模块:支持进程和线程处理及内存管理等基本服务 内核系统调用接口模块:运行应用程序访问操作系统提供的服务 文件系统模块:支持dos,fat等格式的文件系统 图形窗口和事件子系统模块:控制图形显示,并提供windows GUI界面 通信模块:运行同其他设备进行信息交换 2018/12/30 Embedded Operating Systems
67
Embedded Operating Systems
4、VxWorks嵌入式实时操作系统 VxWorks 是风河(WindRiver)公司开发的一款商用硬实时操作系统 支持主流的32位CPU,包括 x86、 68K、PowerPC、MIPS、ARM等 基于微内核结构,由400多个相对独立的,短小精悍的目标模块组成,可裁剪性和可配置性相当出色 2018/12/30 Embedded Operating Systems
68
Embedded Operating Systems
VxWorks 主要思想: 在嵌入式系统中最大限度地实现内核的时间可预测性,根据用户定义的任务优先级对任务实现调度。 给用户最大的控制权 2018/12/30 Embedded Operating Systems
69
Embedded Operating Systems
VxWorks Vxworks的基本构成模块包括以下部分 : 高效实时微内核wind: Vxworks实时微内核wind以灵活性和可配置性为设计目标,它主要包括 基于优先级的任务调度 任务同步和通信 中断处理 定时器 内存管理 兼容POSIX实时系统标准 2018/12/30 Embedded Operating Systems
70
Embedded Operating Systems
I/O处理系统: Vxworks提供与ANSIC兼容的I/O处理系统,主要包括 UNIX缓冲I/O处理系统,和 面向实时的异步I/O处理系统 本机文件系统 网络处理模块: Vxworks网络处理模块能与许多运行其他协议的网络进行通信,如TCP/IP、NFS、UDP、SNMP、FTP等 2018/12/30 Embedded Operating Systems
71
Embedded Operating Systems
虚拟内存模块VxVMI: VxVMI主要用于对指定内存区的保护,如内存块只读等 共享内存模块VxMP: 主要用于多处理器行运行任务之间的共享信号量、消息队列、内存块管理 板级支持包BSP: 提供各种硬件的初始化、中断的建立、定时器、内存映象 2018/12/30 Embedded Operating Systems
72
Embedded Operating Systems
VxWorks的评价 Vxworks是一款非常出色的嵌入式实时操作系统,但是它是不公开源码的商业化操作系统,价格比较高 为追求系统的实时性而设计的,并不是以通用OS为设计目标。 去掉了一些OS模块,因为这些模块在某种程度上会影响系统的实时性 (如在内存管理中没有采用页面管理模式,采用的是平板式内存)。 2018/12/30 Embedded Operating Systems
73
Embedded Operating Systems
任务调度采用的是基于优先级的抢占式任务调度模式,优先级分256级(0-255) 用户可以动态的改变优先级,但是这种做法不提倡 用户可以锁定一个任务使它不被更高的任务或中断抢占 允许使用固定优先级响应时间来检查任务调度的性能 2018/12/30 Embedded Operating Systems
74
Embedded Operating Systems
资源共享和优先级继承机制 采用最优化的上下文切换和中断返回机制. 内核从不禁止非屏蔽中断 NMI (non-maskable interrupts) 2018/12/30 Embedded Operating Systems
75
Embedded Operating Systems
VxWorks缺点 缺少某些OS特性 保证时限要求是设计者自己的任务(系统的灵活性带来的弊端) 不支持很多应用和APIs(只支持部分POSIX标准的函数集) 尽管采用了平板式内存管理,但是由于内存的动态分配,仍然存在内存段,这样仍然存在时间上的不可预测性 2018/12/30 Embedded Operating Systems
76
Embedded Operating Systems
应用领域主要局限在对实时性要求较严格的硬实时系统中 带给用户最大的控制权的同时,用户对系统的实时性调度责任也更大 2018/12/30 Embedded Operating Systems
77
Embedded Operating Systems
Tornado —— 集成开发环境 2018/12/30 Embedded Operating Systems
78
Embedded Operating Systems
GDB —— 调试工具 2018/12/30 Embedded Operating Systems
79
WindView ——多任务跟踪和观察工具
2018/12/30 Embedded Operating Systems
80
Embedded Operating Systems
5、RTEMS 名称:实时多处理器系统 Real Time Executive for Multiprocessor Systems RTEMS是一个开源的无版税实时嵌入操作系统。最早用于美国国防系统,早期称为实时导弹系统(Real Time Executive for Missile Systems),后改名为实时军用系统(Real Time Executive for Military Systems),现在由OAR公司负责版本的升级与维护。目前无论是航空航天、军工,还是民用领域RTEMS都有着极为广泛的应用。 2018/12/30 Embedded Operating Systems
81
Embedded Operating Systems
RTEMS体系结构 APP静态联编,包括 应用程序 C库 RTEMS 2018/12/30 Embedded Operating Systems
82
Embedded Operating Systems
Score的主要模块 2018/12/30 Embedded Operating Systems
83
Embedded Operating Systems
6、嵌入式Linux ★ Linux简介 嵌入式Linux简介 2018/12/30 Embedded Operating Systems
84
Embedded Operating Systems
将Linux嵌入到各种设备中: 2018/12/30 Embedded Operating Systems NASA 个人助理
85
Embedded Operating Systems
开发过程 Rehat,bluecat,RTLinux,Monta Vista Linux,RTAI,… Linux 操作系统选择 从系统设计 操作系统的移植与改进 测试 Driver and Application software development Tekram,HP,Intel,… 2018/12/30 Embedded Operating Systems
86
Embedded Operating Systems
Linux简介 什么是Linux Linux发展简史 Linux系统的好处 Linux系统组成 Linux版本 2018/12/30 Embedded Operating Systems
87
Embedded Operating Systems
什么是Linux? Linux是一个类Unix(Unix-like)的操作系统,在1991年发行了它的第一个版本 在不同的语境下,“Linux”具有不同的内涵,例如: Linux内核、Linux系统或Linux开发套件等术语。 严格来说,Linux指的是Linux Torvalds维护的(及通过主要和镜像网站发布的)内核。 GNU/Linux GNU/Linux的拥护者们认为,Linux仅仅是指Linux内核,而整个Linux系统的大部分都建立在GNU软件之上。 2018/12/30 Embedded Operating Systems
88
Embedded Operating Systems
Linux发展简史 1991年11月,芬兰赫尔辛基大学的学生 Linus Torvalds写了个小程序,取名为Linux,放在互联网上。他表达了一个愿望,希望借此搞出一个操作系统的“内核”来,这完全是一个偶然事件 1993,在一批高水平黑客的参与下,诞生了Linux 1.0 版 1994年,Linux 的第一个商业发行版 Slackware 问世 2018/12/30 Embedded Operating Systems
89
Embedded Operating Systems
1996年,美国国家标准技术局的计算机系统实验室确认 Linux 版本 (由 Open Linux 公司打包)符合 POSIX 标准 2001年,Linux2.4版内核发布 2003年,Linux2.6版内核发布 …… Portable Operating System Interface Standard 可移植操作系统接口标准 由IEEE制订,并由ISO接受为国际标准。 Institute for Electrical and Electronic Engineers 电气电子工程师学会[美] International Organization for Standardization 国际标准化组织 制定各行各业各种产品和服务的技术规范(国际标准) 2018/12/30 Embedded Operating Systems
90
Embedded Operating Systems
Linux操作系统的主要内容 Linux是免费的、源代码开放的、符合POSIX标准规范的操作系统 拥有现代操作系统具有的所有内容,例如 抢占式多任务处理,支持多用户 内存保护, 支持SMP,支持TCP/IP, 支持绝大多数的32位和64位CPU 等 还有一些其他操作系统没有的特色,比如 NFS,VFS,高效的EXT系列文件系统等 2018/12/30 Embedded Operating Systems
91
Embedded Operating Systems
Linux版本 Linux的内核版本 几种流行的Linux发行版本 2018/12/30 Embedded Operating Systems
92
Embedded Operating Systems
Linux的内核版本 Linux内核版本是由Linus Torvalds作为总体协调人的Linux开发小组(分布在各个国家的近百位高手)开发出的系统内核的版本号 Linux内核采用的是双树系统 一棵是稳定树,主要用于发行 另一棵是非稳定树或称为开发树,用于产品开发和改进 Linux内核版本号由3位数字组成 r.x.y 第3位数字y为修改号,表示 错误修补的次数 第1位数 字r为主 版本号 第2位数字x为说明版本类型的次版本号,如果 x为偶数,则表示为产品化版本,为奇数时表 示为实验版本 2018/12/30 Embedded Operating Systems
93
Embedded Operating Systems
几种流行的Linux发行版本 2018/12/30 Embedded Operating Systems
94
Embedded Operating Systems
Linux系统的好处 支持多种CPU X86, ARM, MIPS, SH, i960, PPC, etc. 开放源代码(Open source) 强大的网络功能 可移植性 使用GNU tools 2018/12/30 Embedded Operating Systems
95
Embedded Operating Systems
一个新潮,非常稳定,多用户,多任务的环境 标准的平台 无法超越的计算能力,可移动性和适应性 先进的图形用户界面 几十个异常出色而且免费的桌面应用程序 成千上万个免费的工具和应用小程序 几百上千个专业程序由全世界的无数研究人员编制,覆盖了天文,信息技术,化学,物理,工程,语言,生物等各个学科领域 2018/12/30 Embedded Operating Systems
96
Embedded Operating Systems
一个真正杰出的学习系统 很多顶级的系统开发平台,友好的编程语言及编程工具都免费包含在操作系统里面 病毒入侵,计算机的“后门”,软件提供商的“特别要求”,强迫性的软件升级,专有的文件格式,软件使用许可证和市场策略,产品注册登记,高得惊人的软件价格,等等 Linux都没有 Linux操作系统平台保证它的“永久性” 一个技术快速更新的平台 2018/12/30 Embedded Operating Systems
97
Embedded Operating Systems
嵌入式Linux介绍 什么是嵌入式Linux 嵌入式linux的典型应用 嵌入式linux的分类 常见的嵌入式Linux 2018/12/30 Embedded Operating Systems
98
Embedded Operating Systems
什么是嵌入式Linux 嵌入式Linux内核 为特殊的硬件配置、或为了支持特别的应用而经过特别的裁剪的修改过的Linux内核 通常具有不同于工作站与服务器的内核配置 嵌入式Linux系统 基于Linux内核的嵌入式系统 嵌入式Linux发行套件 开发嵌入式Linux系统的平台 各种为了在嵌入式系统中使用而剪裁过的应用软件 2018/12/30 Embedded Operating Systems
99
Embedded Operating Systems
嵌入式Linux的典型应用 2018/12/30 Embedded Operating Systems
100
Embedded Operating Systems
嵌入式Linux的分类 分类依据包括: 应用的市场 嵌入式系统的规模 时限(即实时)要求 网络能力 与用户交互能力 等 2018/12/30 Embedded Operating Systems
101
Embedded Operating Systems
嵌入式Linux的分类1 市场 根据应用的市场来划分 航空航天、汽车系统、消费性电子产品、电信等 无法为所指的系统提供额外的信息 2018/12/30 Embedded Operating Systems
102
Embedded Operating Systems
嵌入式Linux的分类2 规模 嵌入式系统的规模由一些不同的因素来决定,首先实际的尺寸大小 有些系统的尺寸可能相当大,例如那些用来构建集群的产品 有些却非常小,例如IBM制造的Linux手表 最重要的是,嵌入式系统的规模与系统中各个电子原件的属性有关,如CPU的运算速度、RAM容量、永久性存储器的容量 2018/12/30 Embedded Operating Systems
103
Embedded Operating Systems
嵌入式Linux的分类2 电子元件的规模 根据嵌入式系统的电子元件的规模分类,包括 小型、中型、大型 小型系统的特性是:低运算能力的CPU,并且可以使用至少2MB的ROM和4MB的RAM。 对于更小的系统,你会发现也许不用操作系统或者使用其他的操作系统更加合适,因为将Linux嵌入到这样的系统中比较费功夫 2018/12/30 Embedded Operating Systems
104
Embedded Operating Systems
嵌入式Linux的分类2 电子元件的规模 中型系统的特性是: 中等运算能力的CPU,并且可以使用大约32MB的ROM和64MB的RAM。 大多数以Linux构建的消费性产品皆属此类,包括PDA、MP3播放器,娱乐系统以及网络设备。 有些产品可能会包含如下形式的辅助存储器: 固态硬盘(以RAM芯片制成的硬盘)、快闪存储卡甚至是传统的硬盘。 2018/12/30 Embedded Operating Systems
105
Embedded Operating Systems
嵌入式Linux的分类2 电子元件的规模 大型系统的特性是: 使用运算能力强大的CPU,或是使用多个CPU并且可以使用大量的RAM和永久性存储器 通常,这类系统需要进行大量计算来完成特定的任务。 例如大型的电信交换机以及飞行仿真器。 2018/12/30 Embedded Operating Systems
106
Embedded Operating Systems
嵌入式Linux的分类3 实时要求 根据嵌入式系统的时限要求,可以分为 严格时限的要求:系统必须在预定的时间之内作出反应,否则会发生灾难事件。即硬实时系统 软实时系统 像音频、视频流系统往往是软实时系统,因为该系统一时的失误并不会造成无法弥补的灾难。但仍然应当被设计为具备严格的时间要求 宽松的时限的要求比较泛,不过他们一般会被应用在需要及时(或适时)作出响应但不必立即完成的系统上。这样的系统虽然比较慢,但是不会影响最后结果 2018/12/30 Embedded Operating Systems
107
Embedded Operating Systems
基于Linux的嵌入式操作系统 uCLinux ARMLinux RT-Linux/RTAI Embedix Blue Cat Linux Hard Hat Linux 等等 2018/12/30 Embedded Operating Systems
108
Embedded Operating Systems
1)μClinux μClinux是应用于嵌入式设备的最著名、应用最广泛一个Linux发行版本,它也是一个开放源码的项目,μClinux的源代码和开发工具可以免费从 上下载得到。 μClinux的含义: Micro-Control-Linux:专门针对微控制器领域而设计的嵌入式Linux系统 μClinux同标准Linux的最大区别就在于内存管理 1、标准Linux使用的虚拟存储器技术 2、μClinux针对NOMMU 2018/12/30 Embedded Operating Systems
109
Embedded Operating Systems
2)ARM Linux Linux标准发行内核中的一个分支 ARM Linux主要是由Russell King和其他人的共同努力,将Linux作业系统成功的移植在以ARM处理器为核心的机器上。 与uClinux不同,支持带有MMU的ARM系列CPU 如ARM610、ARM710、ARM720T、ARM920T、Intel StrongARM、Xscale等 2018/12/30 Embedded Operating Systems
110
3)支持硬实时的Linux: RT-Linux/RTAI
其基本思想是: 为了在Linux系统中提供对于硬实时的支持,它实现了一个微内核的小的实时操作系统(RT-Linux),而将普通Linux系统作为一个该操作系统中的一个低优先级的任务来运行,由RT-Linux提供的一个实时调度器对其进行调度。其他的实时任务作为一个RT-Linux的可加载内核模块,其优先级比普通Linux系统要高 2018/12/30 Embedded Operating Systems
111
Embedded Operating Systems
RT-Linux的框架 FIFO:普通Linux应用程序可以通过FIFO与实时任务进行通信 2018/12/30 Embedded Operating Systems
112
Embedded Operating Systems
意大利的RTAI Real-Time Application Interface,实时应用接口 源于RT-Linux,它在设计思想上和RT-Linux完全相同。 它当初设计目的是为了解决RT-Linux难于在不同Linux版本之间难于移植的问题 RTAI在 Linux 上定义了一个实时硬件抽象层(RTHAL,Real Time Hardware Abstraction Layer),实时任务通过这个抽象层提供的接口和Linux系统进行交互,这样在给Linux内核中增加实时支持时可以尽可能少地修改 Linux的内核源代码。 2018/12/30 Embedded Operating Systems
113
Embedded Operating Systems
4)Embedix Embedix和基于Embedix的一整套嵌入式Linux开发环境是由Lineo公司开发的 基于PowerPC和x86平台开发 使用模块化设计方案,方便剪彩 通过使用Embedix可以进行个性化内核开发 …… 2018/12/30 Embedded Operating Systems
114
Embedded Operating Systems
主要内容 一、嵌入式系统基本概念 二、嵌入式硬件的发展 三、嵌入式软件及其开发 四、嵌入式操作系统及系统开发 五、典型嵌入式操作系统介绍 六、嵌入式操作系统选型 2018/12/30 Embedded Operating Systems
115
Embedded Operating Systems
嵌入式系统选型 一般而言,在选择嵌入式操作系统时,可以遵循以下6个原则: 市场进入时间 可移植性 可利用资源 系统定制能力 成本 中文内核支持 2018/12/30 Embedded Operating Systems
116
Embedded Operating Systems
1、市场进入时间 制定产品时间表与选择操作系统有关系 例如Windows系列嵌入式操作系统WinCE, 由于具有丰富的人力资源。使用WinCE能够很快进入市场。因为WinCE+X86做产品实际上是在做减法,去掉你不要的功能,能很快出产品。 缺点:成本偏高, 核心竞争力差。 但一些高效的操作系统可能由于编程人员缺乏,或由于这方面的技术积累不够,影响开发进度。 2018/12/30 Embedded Operating Systems
117
Embedded Operating Systems
2、可移植性 主要指操作系统的相关性。 当进行嵌入式软件开发时,可移植性是要重点考虑的问题 较好的软件的移植性应该也比较好,可以在不同平台、不同系统上运行,跟操作系统无关。 但,软件的通用性和软件的性能通常是矛盾的。 通用以损失某些特定情况下的优化性能为代价。 很难设想开发一个嵌入式浏览器而仅能在某一特定环境下应用。反 过来说,当产品与平台和操作系统紧密结合时,往往你的产品的特色就蕴含其中。 2018/12/30 Embedded Operating Systems
118
Embedded Operating Systems
3、可利用资源 操作系统的可利用资源对于选型是一个重要参考条件 产品开发不同于学术课题研究,其目的是快速、低成本、高质量的推出适合用户需求的产品。 因此,要集中精力研发出产品的特色,其他功能尽量由操作系统附加或采用第三方产品。 Linux和WinCE都有大量的资源可以利用。 其它有些实时操作系统由于比较封闭,开发时可以利用的资源比较少,因此多数功能需要自己独立开发。从而影响开发进度。 近来的市场需求显示,越来越多的嵌入式系 统,均要求提供全功能的Web浏览器。而这要求有一个高性能、高可靠的GUI的支持。 2018/12/30 Embedded Operating Systems
119
Embedded Operating Systems
4、系统定制能力 信息产品不同于传统PC的Wintel结构的单纯性,用户的需求是千差万别的,硬件平台也都不一样,所以对系统的定制能力提出了要求。 要分析产品是否对系统底层有改动的需求,这种改动是否伴生着产品特色? Linux由于其源代码开放的天生魅力,在定制能力方面具有优势。 随着Wince 3.0原码的开放,以及微软在嵌入式领域力度的加强,其定制能力会有所提升。 2018/12/30 Embedded Operating Systems
120
Embedded Operating Systems
5、成本 操作系统的选择会对成本有什么影响呢? 免费? Linux免费,WinCE等商业系统需要支付许可证使用费,但这都不是问题的 答案。 成本是需要综合权衡以后进行考虑的: 选择某一系统可能会对其它一系列的因素产生影响,如对硬件设备的选型、人员投入、以及公司管理和与其它合作 伙伴的共同开发之间的沟通等许多方面的影响 2018/12/30 Embedded Operating Systems
121
Embedded Operating Systems
6、中文内核支持 国内产品需要对中文的支持。 由于操作系统多数采用西文方式,是否支持双字节编码方式,是否遵循GBK,GB18030等各种国家标准,是否支持中文输入与处理,是否提供第三方中文输入接口是针对国内用户的嵌入式产品的必需考虑的重要因素。 2018/12/30 Embedded Operating Systems
122
Embedded Operating Systems
总的来说,选择嵌入式操作系统就是选择“做加法还是做减法”的问题。 用WinCE+x86出产品是减法 这实际上就是所谓PC家电化 另外一种做法是加法: 利用家电行业的硬件解决方案(绝大部分是非x86的)加以改进,加上嵌入式操作系统,再加上应用软件。 这是所谓家电PC化的做法 2018/12/30 Embedded Operating Systems
123
Embedded Operating Systems
“做加法”的优势是成本低,特色突出;缺点是产品研发周期长,难度大(需要深入了解硬件和操作系统)。 若选择做加法,Linux是一个好选择,可以深入到系统底层。 2018/12/30 Embedded Operating Systems
124
Embedded Operating Systems
选用Linux的理由 可获得源码 没有许可证问题 可靠 有开发源码社群的支持 2018/12/30 Embedded Operating Systems
125
Embedded Operating Systems
选用Linux的其他理由 程序代码的质量与可靠度 模块化与结构化 容易修改 可扩充 可配置 可预测 错误恢复能力 长期运行能力 2018/12/30 Embedded Operating Systems
126
Embedded Operating Systems
程序代码的可用性 对硬件的支持 通信协议与软件标准 可用工具 不依赖特定的厂商 成本 2018/12/30 Embedded Operating Systems
127
Embedded Operating Systems
作业: 1)国内对于嵌入式系统的定义是什么? 2)什么是实时系统?根据实时性,嵌入式操作系统有哪些类型? 3)选择嵌入式操作系统原则有哪些? 4)列举一些常见的嵌入式操作系统。 2018/12/30 Embedded Operating Systems
128
Embedded Operating Systems
Project1 嵌入式操作系统调研 通过各种网络资源,了解目前在嵌入式各个领域中占据主要市场的嵌入式操作系统有哪些(要给出出处,参考文献等) 选择你感兴趣的某个领域,举例说明这个领域(或某项产品)对嵌入式操作系统的需求有哪些?举例说明某个嵌入式操作系统是如何满足这些需求的。 了解目前,嵌入式专业相关的工作有哪些?需要哪些技术积累? 给出调研报告 2018/12/30 Embedded Operating Systems
129
Thanks! The end.
Similar presentations