嵌入式系统原理与接口技术
Download
1 / 86

第七章 嵌入式操作系统 - PowerPoint PPT Presentation


  • 139 Views
  • Uploaded on

嵌入式系统原理与接口技术. 主编:贾智平 张瑞华. 清华大学出版社. 第七章 嵌入式操作系统. 山东大学精品课程.  内容提要. 嵌入式操作系统概述. 常见嵌入式操作系统. 实时操作系统. 嵌入式 Linux 操作系统. 操作系统的发展. 计算机系统由硬件和软件构成,在发展初期并没有操作系统这个概念,用户使用监控程序来使用计算机。随着计算机技术的发展,计算机系统的硬件、软件资源越来越丰富,监控程序已不能适应计算机应用的要求。于是在六十年代中期监控程序进一步发展形成了操作系统。到目前为止,主流的操作系统有三种:多道批处理、分时和实时操作系统。. 嵌入式操作系统结构.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' 第七章 嵌入式操作系统' - xanti


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

嵌入式系统原理与接口技术

主编:贾智平 张瑞华

清华大学出版社

第七章 嵌入式操作系统

山东大学精品课程


 内容提要

嵌入式操作系统概述

常见嵌入式操作系统

实时操作系统

嵌入式Linux操作系统


操作系统的发展

  • 计算机系统由硬件和软件构成,在发展初期并没有操作系统这个概念,用户使用监控程序来使用计算机。随着计算机技术的发展,计算机系统的硬件、软件资源越来越丰富,监控程序已不能适应计算机应用的要求。于是在六十年代中期监控程序进一步发展形成了操作系统。到目前为止,主流的操作系统有三种:多道批处理、分时和实时操作系统。


嵌入式操作系统结构

  • 操作系统分类

    • 微内核(micro-kernel)

    • 单晶内核(monolithic kernel)

    • 混合内核(hybrid kernel)

Memory

Mgmt.

File

Systems

I/O

System

Kernel

Device

Drivers

Network

Stack



各式各样的操作系统

  • 桌面机

    • Windows (9X, XP Home, XP/2000 Pro)

    • Mac

  • 服务器

    • Windows (XP/2000 Server &Advanced Server)

    • Unix Varieties

  • 嵌入式

    • Many


嵌入式操作系统概念

  • 嵌入式操作系统EOS(Embedded Operating System)是一种支持嵌入式系统应用的操作系统软件,是嵌入式系统的重要组成部分。

  • 嵌入式系统是使用特定嵌入式软件完成特定功能的计算机系统,嵌入式操作系统作为软件的组成部分,为嵌入式软件的开发和运行提供良好的环境。

  • 嵌入式系统可以是基于ROM或者是磁盘的系统,类似PC,但它并不能替代通用计算机系统。


  • 模块化

  • 可升级

  • 可配置

  • 小内存损耗

  • CPU支持

  • 设备驱动

  • 等等...


嵌入式操作系统作用

  • 具有通用操作系统的功能:

    • EOS负责嵌入系统的全部软、硬件资源的分配、调度,控制、协调并发活动;

  • 能够把硬件虚拟化:简化开发人员的工作

  • 它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。

  • 能够提供库函数、驱动程序、工具集以及应用程序


嵌入式操作系统分类

  • 基于或与Windows 兼容:

    • Window CE、嵌入式Linux、EPOC

  • 工业与通信(传统)类:

    • VxWorks、pSOS、QNX、Neculeus、VRTX

  • 单片机类:

    • iRMX、CMX、μC/OS

  • 面向Internet 类:

    • Palm OS、Visor、Hopen、PPSM


嵌入式操作系统特点

  • 可定制性

    • 一般需提供可添加或可裁剪的内核及其他功能,让用户按需配置。如调度算法、存储管理、设备驱程序。

  • 可移植性

    • 应该能够支持多种国际主流微处理器等硬件平台,给用户硬件选择的灵活性。

  • 实时性

    • 大多数嵌入式系统工作在实时性要求很高的环境中,要求嵌入式操作系统必须将实时性作为一个重要的指标来考虑。

  • 低资源占有性

    • 在保证其功能的前提下,尽可能减少系统对资源的占用。


使用嵌入式操作系统的优缺点

  • 优点

    • 使程序的设计和扩展变得容易,大大提高了开发效率。

    • 充分发挥32位CPU多任务的潜力,实现多任务设计,能够充分利用硬件资源和实现资源共享。

    • 实时性和健壮性能够得到更好的保证。

  • 缺点

    • 嵌入式操作系统增加ROM/RAM等额外开销,5~10%的CPU额外负荷。


嵌入式操作系统的发展趋势

  • 体系结构向微内核方向发展

    • 可伸缩、可移植、可剪裁、可配置

  • 行业的标准:多种操作系统平台,应用决定操作系统

  • 结构紧凑、功能强大

  • 高可用(High Available)、高可靠(High Reliable )、支持多处理器和分布式计算

  • 可动态加载和升级软件

  • 与开发工具有机的结合起来


MMU / MPU

外设

如USB、LCD

控制器等

R

Cache

Bus

Interface

R

W

W

W

W

Write Buffer

(R/W)

处理器(Processor)

芯片(SoC)

系统(System)

扩展芯片

External

Memory

CPU

Address

Data

处理器存储器子系统

SoC的片内外设

内核(core)

系统的片外设备


嵌入式操作系统的选择

  • 应用需求

  • 实时性

  • 开发工具

  • CPU种类

  • 价格和技术支持和服务


Tektronix TDS7000 Digital Oscilloscopes

Nixvue Digital Album

Digital Photo Album

eRemote

Intelligent Home Controller

goReader Internet eBook

Samsung AnyWeb

Internet Screen Phone

一些典型的应用实例


分类

嵌入式操作系统

嵌入式实时操作系统

操作系统

嵌入式非实时操作系统

嵌入式硬实时操作系统

嵌入式软实时操作系统


 内容提要

嵌入式操作系统概述

常见嵌入式操作系统

实时操作系统

嵌入式Linux操作系统


Windows embedded
Windows Embedded

  • Windows CE:一种针对小容量、移动式、智能化、32位、连接设备的模块化实时嵌入式操作系统(缩减的Win95)。

  • 针对掌上设备、无线设备的动态应用程序和服务提供了一种功能丰富的操作系统平台,属于软实时操作系统,

  • 由于其Windows背景,界面比较统一认可。可以使用大多数Windows开发工具(如VB,VC等),大多数Windows应用程序经过移植后就可以运行在WinCE平台上。

  • 操作系统的基本内核需要至少200K的ROM。


Pocket PC

  • 信息消费

  • 浏览和输入数据

  • 把电话融入PDA

  • 可以与Office, Exchange和SQL Server交互

  • .NET Compact Framework

  • ASP.NET 移动控件

Smartphone

  • 信息消费

  • 基本数据浏览

  • 把PDA融入电话

  • 可以与Exchange交互

  • .NET Compact Framework

  • ASP.NET 移动控件

平板电脑

  • 复杂的文档编辑和读写

  • 桌面键盘输入

  • 支持数字墨水

  • 可以支持键盘,也可以把键盘拿走

  • 键盘、鼠标、数字墨水和语音输入

  • 完整的 .NET framework支持

  • 提供笔,数字墨水,手写和语音识别API

小型个人产品

  • 单向网络

  • 信息消费

笔记本PC

  • 复杂的文档编辑和读写

  • 桌面键盘输入

  • 键盘和鼠标输入法

  • 完整的.NET framework 支持

Windows CE

Windows Mobile

Windows XP/XPE

微软的移动平台

更强的功能



Microsoft windows ce
Microsoft Windows CE

  • Microsoft公司的产品

  • 微内核,可剥夺

  • 采用页式存储管理,页面换入技术(可以锁定)

  • 内核映像既可以在ROM中,也可以在RAM中运行

  • 动态连接DLL

  • 中断处理分ISR与IST,不支持嵌套

  • 设备驱动也分两层

  • Winsock提供网络接口

  • GUI丰富


Vxworks
VxWorks

  • VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),具有良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域牢牢占据着一席之地。

  • VxWorks所具有的显著特点是:

    • 可靠性、实时性和可裁减性。

    • 它支持多种处理器,如x86、i960、Sun Sparc、Motorola MC68xxx、MIPS 、POWER PC等等。



Vxworks1
VxWorks 以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星探测器(–缺点

  • 缺少某些OS特性

  • 保证时限要求是设计者自己的任务(系统的灵活性带来的弊端)

  • 不支持很多应用和APIs(只支持部分POSIX标准的函数集)

  • 尽管采用了平板式内存管理,但是由于内存的动态分配,仍然存在内存段,这样仍然存在时间上的不可预测性

  • 应用领域主要局限在对实时性要求较严格的硬实时系统中


Symbian os
Symbian OS以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星探测器(

  • Symbian由诺基亚、西门子、索尼爱立信等几家大型移动通讯设备商共同出资组建的一个合资公司,专门研发手机操作系统。Symbian操作系统的前身是EPOC

  • 针对PDA及智能手机的,能够提供良好的软实时的操作系统,目前占有60%的智能手机市场

  • 与之竞争的有Windows Mobile、PalmOS以及Linux

  • 主要版本

    • Series 60/90/80/40

    • UIQ


Palm os
Palm OS以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星探测器(

  • Palm OS是著名的网络设备制造商3COM旗下的Palm Computing掌上电脑公司的产品。

  • Palm OS是一套专门为掌上电脑编写的操作系统,充分考虑到了掌上电脑内存相对较小的情况,所以Palm操作系统本身所占的内存很小,基于Palm操作系统编写的应用程序所占的空间也很小,通常只有几十KB,因此基于Palm操作系统的掌上电脑虽然只有几兆内存却可以运行众多的应用程序。

  • Palm OS在PDA市场上占有很大的市场份额, Palm OS的市场份额占到将近90%,最近下降70%,目前主要与WIN CE进行激烈竞争。

  • 代表性的产品有Palm m505、Palm m500、Palm III等。


QNX以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星探测器(

  • 加拿大QNX公司的产品。

  • QNX是在X86体系上面开发出来的,这和别的RTOS不一样,别的好多RTOS都是从嵌入式的CPU架构上面开发成熟,然后再移植到X86体系上面来的。

  • QNX是一个实时的、可扩充的操作系统,它部分遵循POSIX相关标准,由于QNX具有强大的图形界面功能,因此很适合作为机顶盒、手持设备(手掌电脑、手机)、GPS设备的实时操作系统使用。


C os c os ii
以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星探测器(C/OS及C/OS-II

  • C/OS—Micro Controller OS

  • C/OS简介

    • 美国人Jean Labrosse 1992年完成,已应用于数百种产品中。

    • 应用面覆盖了诸多领域,如照相机、医疗器械、音响设备、发动机控制、高速公路电话系统、自动提款机等

    • 1998年C/OS-II,目前的版本C/OS -II V2.72

    • 2000年,得到美国航空管理局(FAA)的认证,可以用于飞行器中

    • 是一个源码公开、可移植、可裁减、占用资源少、抢先式的实时多任务操作系统。其绝大部分源码采用ANSI C写的,移植性好。高校教学可免费使用。

    • 网站www.ucos-II.com(www.micrium.com)


OSE以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星探测器(

  • OSE主要是由瑞典的ENEA Data AB下属的ENEA OSE Systems AB 负责开发和技术服务的,一直以来都充当着实时操作系统以及分布式和容错性应用的先锋,并保持良好的发展态势。

  • OSE的客户深入到电信、数据、工控、航空邓领域,尤其在电信方面,该公司已经有了十余年的开发经验,同诸如爱立信、诺基亚、西门子等公司确立了良好的关系。

  • 目前手机市场占有率为15%左右,期望在未来3G手机市场占有率达到50%。


Linux
嵌入式以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星探测器(Linux

  • Linux是源码开放的,不存在黑箱技术。

  • Linux内核小,功能强大,运行稳定,系统健壮,易于定制裁减,价格上极具优势

  • Linux支持CPU较多

  • 开发工具 gcc gdb

  • 得到IBM、SUN等的支持,逐渐形成了可与Windows CE等抗衡的局面。

    • 目前正在开发的嵌入式系统中,49%的项目选择Linux作为嵌入式操作系统。


Android vs ios
Android VS. IOS以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星探测器(


 内容提要以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星探测器(

嵌入式操作系统概述

常见嵌入式操作系统

实时操作系统

嵌入式Linux操作系统


基本概念以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星探测器(

  • 前后台系统

对基于芯片的开发来说,应用程序一般是一个无限的循环,可称为前后台系统或超循环系统。

很多基于微处理器的产品采用前后台系统设计,例如微波炉、电话机、玩具等。在另外一些基于微处理器应用中,从省电的角度出发,平时微处理器处在停机状态,所有事都靠中断服务来完成。


后台以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星探测器(

前台

中断服务程序

ISR

ISR

ISR

ISR

  • 前后台系统

循环中调用相应的函数完成相应的操作,这部分可以看成后台行为,后台也可以叫做任务级。这种系统在处理的及时性上比实际可以做到的要差。

中断服务程序处理异步事件,这部分可以看成前台行为,前台也叫中断级。时间相关性很强的关键操作一定是靠中断服务程序来保证的。


基本概念以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星探测器(

  • 资源

程序运行时可使用的软、硬件环境统称为资源。资源可以是输入输出设备,例如打印机、键盘、显示器。资源也可以是一个变量、一个结构或一个数组等。


任务以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星探测器(A

共享资源

任务B

信号量

任务C

基本概念

  • 共享资源

可以被一个以上任务使用的资源叫做共享资源。为了防止数据被破坏,每个任务在与共享资源打交道时,必须独占该资源,这叫做互斥。

其它任务访问受阻

而不能使用共享资源

访问共享资源之前申请信号量

得到允许后,才能使用共享资源


基本概念以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星探测器(

  • 非占先式内核

非占先式内核要求每个任务自我放弃CPU 的所有权。非占先式调度法也称作合作型多任务,各个任务彼此合作共享一个CPU。异步事件还是由中断服务来处理。中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。但中断服务以后控制权还是回到原来被中断了的那个任务,直到该任务主动放弃CPU的使用权时,那个高优先级的任务才能获得CPU的使用权。


基本概念以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星探测器(

  • 占先式内核

当系统响应时间很重要时,要使用占先式内核。因此绝大多数商业上销售的实时内核都是占先式内核。最高优先级的任务一旦就绪,总能得到CPU的控制权。当一个运行着的任务使一个比它优先级高的任务进入了就绪状态,当前任务的CPU使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了CPU的控制权。如果是中断服务子程序使一个高优先级的任务进入就绪态,中断完成时,中断了的任务被挂起,优先级高的那个任务开始运行。


基本概念以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星探测器(

  • 中断

中断是一种硬件机制,用于通知CPU有个异步事件发生了。中断一旦被识别,CPU保存部分(或全部)上下文即部分或全部寄存器的值,跳转到专门的子程序,称为中断服务子程序(ISR)。中断服务子程序做事件处理,处理完成后,程序回到:

1. 在前后台系统中,程序回到后台程序;

2. 对非占先式内核而言,程序回到被中断了的任务;

3. 对占先式内核而言,让进入就绪态的优先级最高的任务开始运行。


ISR以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星探测器(

任务A

任务A

ISR

任务B

任务B

任务

ISR

任务C

任务C

非占先操作系统

前后台系统

占先操作系统

  • 中断


基本概念以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星探测器(

  • 实时操作系统(RTOS)

实时操作系统是一段在嵌入式系统启动后首先执行的背景程序,用户的应用程序是运行于RTOS之上的各个任务,RTOS根据各个任务的要求,进行资源(包括存储器、外设等)管理、消息管理、任务调度、异常处理等工作。在RTOS支持的系统中, 每个任务均有一个优先级,RTOS根据各个任务的优先级,动态地切换各个任务,保证对实时性的要求。


是否实时以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星探测器(

  • 一方面是多大程度上充分发挥硬件潜力,即综合速度快慢的问题

  • 另一方面同时也是反映的速度在多大的程度上得到保证的问题


实时性简介以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星探测器(

  • 对于什么是实时系统,POSIX 1003.b作了这样的定义:指系统能够在限定的响应时间内提供所需水平的服务

  • 实时系统根据其对于实时性要求的不同,可以分为软实时和硬实时两种类型

  • 一个计算机系统为了提供对于实时性的支持,它的操作系统必须对于CPU和其他资源进行有效的调度和管理,即实时调度


实时调度分类以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星探测器(

  • 各种实时操作系统的实时调度算法从调度策略上可以分为如下三种类别:基于优先级的调度算法(Priority-driven scheduling-PD)、基于CPU使用比例的共享式的调度算法(Share-driven scheduling-SD)、以及基于时间的进程调度算法(Time-driven scheduling-TD)

  • 从调度方式上来讲可以分为:可抢占、不可抢占;从时间片来分:固定时间片、可变时间片


实时性改造以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星探测器(

  • 对操作系统实时性的扩展可以从两方面进行:向外扩展和向上扩展

  • 向外扩展是从范围上扩展,让实时系统支持的范围更广,支持的设备更多

  • 向上扩展是扩充操作系统内核,从功能上扩充系统的实时处理


实时操作系统与以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星探测器(I/O

  • 实时操作系统还需要有效的中断处理能力来处理异步事件和高效的I/O能力来处理有严格时间限制的数据收发应用。就是:

    ●系统应该有在事先定义的时间范围内识别和处理离散的事件的能力。

    ●系统能够处理和存储控制系统所需要的大量的数据。


  • 周期性的系统以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星探测器(

  • 非周期性系统

  • 硬实时系统

    • 灾难后果

  • 软实时系统

    • 性能下降


实时操作系统的特点以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星探测器(

  • IEEE 的实时UNIX分委会认为实时操作系统应具备以下的几点:

    • 异步的事件响应

    • 切换时间和中断延迟时间确定

    • 优先级中断和调度

    • 抢占式调度

    • 内存锁定

    • 连续文件

    • 同步


  • 一般实时操作系统应用于实时处理系统的上位机和实时查询系统等实时性较弱的实时系统,并且提供了开发、调试、运用一致的环境

总的来说实时操作系统是事件驱动的,能对来自外界的作用和信号在限定的时间范围内作出响应。它强调的是实时性、可靠性和灵活性, 与实时应用软件相结合成为有机的整体起着核心作用, 由它来管理和协调各项工作,为应用软件提供良好的运行软件环境及开发环境。

从实时系统的应用特点来看实时操作系统可以分为两种:一般实时操作系统和嵌入式实时操作系统。


实时带来的问题嵌入式实时操作系统应用于实时性要求高的实时控制系统,而且应用程序的开发过程是通过交叉开发来完成的,即开发环境与运行环境是不一致。嵌入式实时操作系统具有规模小1-时间

  • 在实时系统中最基本的是系统应该能够提供对时间正确性进行指定的方法

  • 系统提供一种指定时间尺度的方法

  • 通用系统的延时不能满足


问题嵌入式实时操作系统应用于实时性要求高的实时控制系统,而且应用程序的开发过程是通过交叉开发来完成的,即开发环境与运行环境是不一致。嵌入式实时操作系统具有规模小2-实时系统的结构

  • 实时系统的体系结构必须满足:

    • 高运算速度

    • 高速的中断处理

    • 高的I/O吞吐率

    • 合理的处理器和I/O设备的拓扑连接

    • 高速可靠的和有时间约束的通信

    • 体系结构支持的出错处理

    • 体系结构支持的调度

    • 体系结构支持的操作系统

    • 体系结构支持的实时语言特性


问题嵌入式实时操作系统应用于实时性要求高的实时控制系统,而且应用程序的开发过程是通过交叉开发来完成的,即开发环境与运行环境是不一致。嵌入式实时操作系统具有规模小3-容错与分布

  • 稳定性

  • 容错

  • 分布式应用


问题嵌入式实时操作系统应用于实时性要求高的实时控制系统,而且应用程序的开发过程是通过交叉开发来完成的,即开发环境与运行环境是不一致。嵌入式实时操作系统具有规模小4-实时通讯

  • 逻辑正确

  • 要有确定的延迟时间


问题嵌入式实时操作系统应用于实时性要求高的实时控制系统,而且应用程序的开发过程是通过交叉开发来完成的,即开发环境与运行环境是不一致。嵌入式实时操作系统具有规模小5-其他问题

  • 时间特性的指定和确正,这点与实际系统设计相同。

  • 实时的调度理论。由于实时系统应用的特殊性以往通用系统中以大吞吐量为目标的调度算法必须改进以适应实时应用的需要。主要要求是满足时间的正确性,然后提供高度动态的,满足在线需求的,适应性的实时调度。

  • 实时操作系统的设计和实现。在设计上首要目标是提供保证实时性的方法,包括一系列的经典问题的针对实时系统的解决方案。实现上要求操作系统的低开销,而且必须保证内核以及其他关键的可重入性。



嵌入式实时操作系统的特点实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如

1.多任务

休眠、就绪、运行、挂起、被中断

在实际应用中,多任务的最大特点是,开发人员可以将很复杂的应用程序层次化

……

寄存器

CPU

CPU寄存器


内部事件:运算结果、设备请求等实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如

事件驱动

外部事件:开关量输入等

实时任务

绝对时间驱动

时间驱动

相对时间驱动

非实时任务

2.任务的事件驱动


3.实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如中断与中断优先级

4.同步与异步

一系列事件相关事件称为同步事件;随机发生的事件称为异步事件,如中断


5.实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如资源与临界资源

1

2

…………

N

共享内存


 内容提要实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如

嵌入式操作系统概述

常见嵌入式操作系统

实时操作系统

嵌入式Linux操作系统


Linux1
嵌入式实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如Linux的定义

嵌入式Linux (Embeded Linux)是指对Linux经过小型化裁剪后,能够固化在容量只有几十万字节或几十亿字节的存储器芯片或单片机中,应用于特定嵌入式场合的专用Linux操作系统


Linux2
嵌入式实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如Linux的优势

  • Linux系统是层次结构且内核完全开放

  • 强大的网络支持功能

  • Linux具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉运行环境,并且可以跨越嵌入式系统开发中仿真工具的障碍

  • Linux具有广泛的硬件支持特性


Linux3

需要交纳版权费实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如

免费

数十万元(RMB)

免费

由开发商提供有限的技术支持

全世界的自由软件开发商提供支持

另加数十万元(RMB)购买

免费且性能优异

难(因为是封闭系统)

易,代码开放(有许多应用软件支持)

长,因为可参考的代码有限

短,新产品迅速上市,因为有许多公开的代码可以参考和移植

需改进,可用PT_Linux等模块弥补

较好

较好,但在高性能系统中需要改进

嵌入式Linux的特点

专用嵌入式实时操作系统

嵌入式Linux操作系统

版权费

购买费用

技术支持

网络特性

软件移植

应用产品开发周期

实时性能

稳定性


Linux4

硬件实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如

嵌入式Linux的体系结构

控制CPU资源的分配,Linux实现基于优先级的抢占式多任务,有些嵌入式的Linux通过改变进程调度来实现实时调度,调度算法在所有硬件平台上实现都是相同的。进程调度的代码主要在kernel/sched.c中实现。与硬件相关的代码在arch/arm/kernel目录下。

嵌入式Linux内核可以分为六部分:进程调度,内存管理,文件系统,进程间通信,网络,设备驱动

网络

文件系统

进程间通信

Linux文件系统的结构和Unix系统类似,有一套虚拟文件系统(VFS)接口,真正的文件系统都挂接在虚拟文件系统下

主要的进程间通信方式有:管道(pipe)、文件锁、System V IPC、信号(signal),共享内存

驱动程序

内存管理

进程调度

管理系统管理计算机的内存资源,Linux在具有内存管理部件(MMU)的硬件中支持虚拟内存,使用了硬件提供的分页机制,uC-linux就是专门为没有MMU的CPU改造的Linux系统。

硬件抽象层

表示依赖关系


Linux5
嵌入式实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如Linux的发展方向

  • 系统裁剪

    • 减小内核

    • 减小动态链接库

    • 减小应用程序

  • 实时扩展

    • 修改进程调度算法

    • 使用双内核结构


Linux6
Linux实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如的实时性

  • 一般的通用Linux已经具备一定的实时性

  • 但无法满足硬实时的要求

    • 运行于Linux内核空间的进程(核心态)不能被抢先

    • 在Linux中,中断有时候会出于保护临界区操作的目的而被屏蔽

    • 通用Linux的时间滴答长度为10ms(硬件时钟频率100HZ),但是这对于时间精度要求很高(微秒级)的实时进程来说是不够的


Linux7
嵌入式实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如Linux的实时性改造

  • 可以引入一个双内核结构

  • 对Linux内核代码作一些修改Linux本身的任务以及Linux内核本身作为一个优先级最低的任务,而实时任务作为优先级最高的任务以Linux的内核模块(Loadable Kernel Module,LKM)的形式存在的

  • 资源核方法:这种方法是为解决传统实时操作系统中固定优先级抢占式调度策略的局限性而产生的


Linux 2 6
Linux 2.6实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如内核实时性分析

  • 2.6中内核自身是可抢占的,它允许自身在执行任务时被打断

  • 2.6版本的Linux内核使用了由 Ingo Molnar 开发的新的调度器算法,称为O(1)算法


Linux8
嵌入式实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如Linux面临的挑战

  • 1.扩充Linux的实时系统

    • 内核不支持事件优先级和抢占实时特性

    • 对Linux实时性的扩展可以从两方面进行:

      • 向外扩展(让实时系统支持的范围更广,支持的设备更多)

      • 向上扩展(扩充Linux内核,从功能上扩充Linux的实时处理和控制系统)


  • RT-Linux实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如的做法

    • Linux本身的任务以及Linux内核本身作为一个优先级最低的任务

    • 实时任务作为优先级最高的任务

    • 实时任务以Linux的内核模块(Loadable Kernel Module,LKM)的形式存在


  • 2.实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如改变Linux内核的体系结构

    • Monolithic内核体系

    • MicroKernel体系

    • 执行效率

    • 内核的体积

    • 升级、维护和移植

  • 3.完善Linux的集成开发环境

    • Linux在基于图形界面的特定系统定制平台的研究上,与Windows操作系统相比还存在差距


Rtlinux
RTLinux实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如简介

  • RTLinux是一硬实时操作系统

  • 实现了一个微内核的小的实时操作系统,而将普通Linux系统作为一个该操作系统中的一个低优先级的任务来运行

  • 普通Linux系统中的任务可以通过FIFO和实时任务进行通信

  • 通过软件来模拟硬件的中断控制器

  • RT-Linux通过将系统的实时时钟设置为单次触发状态,可以提供十几个微秒级的调度粒度


  • 调度算法实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如

    • 实时任务的调度方式主要有两种:周期性调度与中断唤醒。API函数rt_task_make_periodic( )可以指定任务的周期。RTLinux带一个纯优先级调度器;用户可以根据需要编写自己的调度器

  • 开发与调试环境

    • 采用RTLinux实现嵌入式设计,需要自主开发编译与调试工具;现阶段一般沿用GCC,GDB等工具,缺乏实时专用的编译与调试工具

  • RTLinux主要支持的机型是PC-based和ALPHA型机

  • RTLinux兼容POSIX1003.1b规范


  • 内核结构实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如

Linux进程

RT-kernel对硬件中的中断进行处理,并用软件模拟中断控制器。对于编程而言,Linux内核对软件中断控制器的操作就如同原来它对硬件中断一样,但它不能禁止RT-kernel响应中断。实时任务不同于Linux的进程:首先它相当于线程,使上下文切换延迟缩短;其次系统为它静态分配内存并锁定,不使用虚拟内存;第三,任务的模式高于Linux的系统模式与用户模式。RT-kernel本身是不可抢占,但是由于它非常短小精悍,造成的延迟比较短。

实时任务

Linux内核

RTLinux内核

硬件环境


操作系统比较实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如


Linux9
嵌入式实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如Linux开发

  • 最小的嵌入式 Linux 系统仅需要三个基本元素

    • 引导实用程序

    • Linux 微内核,由内存管理、进程管理和定时服务构成

    • 初始化过程

    • 硬件驱动程序

    • 一个或多个应用进程,以提供所需功能


  • 了解硬件 实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如

  • 针对所用CPU的编译器/汇编器/连接器,相应的库工具,目标文件分析/管理工具,符号查看器

  • 编程器,下载工具和查错器

  • 安排内存地址

  • 编写启动代码和机器相关代码:硬件初始化,装载内核及安装根文件系统以及开始内核执行

  • 驱动程序


  • 嵌入式实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如Linux的一般开发步骤:

精简内核

系统启动

驱动程序开发

界面开发


Linux10
嵌入式实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如Linux文件系统简介

  • 嵌入式文件系统与桌面文件系统有较大区别:嵌入式文件系统要为嵌入式系统的设计目的服务,不同用途的嵌入式操作系统下的文件系统在许多方面各不相同。

  • 嵌入式Linux常用文件系统:第二版扩展文件系统(Ext2fs)、JFFS和YAFFS


  • 嵌入式文件系统的设计目标包括实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如:

    • 使用简单方便

    • 安全可靠

    • 实时响应

    • 接口标注的开放性和可移植性

    • 可伸缩性和可配置性

    • 开放的体系结构

    • 资源有效性

    • 功能完整性

    • 热插拔

    • 支持多种文件类型


Linux11
嵌入式实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如Linux常用文件系统

  • Flash Memory简介

  • Flash Memory上的两种技术

    • NAND:串行;顺序读取;适合大容量;通常需MTD

    • NOR:并行;随机读取;适合数据或程序存储;XIP

  • Xsbase开发平台上所使用的闪存

    • Intel StrataFlashMemory 28F128J3A

  • Ext2fs、JFFS和YAFFS

    • ext、ext2、xia、vfat、minix、msdos、umsdos、proc、smb、ncp、iso9660、sysv、hpfs、affs、ufs、vfs等


  • 第二版扩展文件系统(实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如Ext2fs)的优点

    • Ext2fs支持达4 TB的内存(Ext是2G)。

    • Ext2fs文件名称最长可以到1012个字符。

    • 当创建文件系统时,管理员可以选择逻辑块的大小(通常大小可选择1024、2048和4096字节)。

    • Ext2fs实现快速符号链接:不需要为此目的而分配数据块,并且将目标名称直接存储在索引节点表中,这使性能有所提高,特别是在速度上。


  • JFFS实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如和YAFFS

    • JFFS文件系统主要针对NOR FLASH设计,是一种基于Flash的日志文件系统。

    • JFFS2的底层驱动主要完成文件系统对Flash芯片的访问控制,如读、写、擦除操作。

    • YAFFS主要针对NAND FLASH设计,和JFFS相比它减少了一些功能。自带NAND芯片驱动,并且为嵌入式系统提供了直接访问文件系统的API。

    • YAFFS2是YAFFS的改进版本。


ad