广州周立功单片机发展有限公司 Tel: (020) 38730916 38730917 38730976 38730977 Fax: 38730925
第1章 嵌入式系统概述
1.1 嵌入式系统
经过几十年的发展,嵌入式系统已经在很大程度改变了人们的生活、工作和娱乐方式,
而且这些改变还在加速。嵌入式系统具有无数的种类,每类都具有自己独特的个性。例如,
MP3、数码相机与打印机就有很大的不同。汽车中更是具有多个嵌入式系统,使汽车更轻快、
更干净、更容易驾驶。
尽管嵌入式系统极大地改变了人们的生活、工作和娱乐,但要定义嵌入式系统的概念却
不容易,下面先介绍一些生活中常见的嵌入式系统。
1.1.1 现实中的嵌入式系统
即使不可见,嵌入式系统也无处不在。嵌入式系统在很多产业中得到了广泛的应用并
逐步改变着这些产业,包括工业自动化、国防、运输和航天领域。例如神州飞船和长征火箭
中肯定有很多嵌入式系统,导弹的制导系统也是嵌入式系统,高档汽车中也有多达几十个嵌
入式系统。
在日常生活中,人们使用各种嵌入式系统,但未必知道它们。图 1.1 就是一些比较新的、
生活中比较常见的嵌入式系统。事实上,几乎所有带有一点“智能”的家电(全自动洗衣机、
电脑电饭煲…)都是嵌入式系统。嵌入式系统广泛的适应能力和多样性,使得视听、工作场
所甚至健身设备中到处都有嵌入式系统。
图 1.1 常见的嵌入式系统应用实例
- -
1
广州周立功单片机发展有限公司 Tel: (020) 38730916 38730917 38730976 38730977 Fax: 38730925
1.1.2 嵌入式系统的概念
目前,对嵌入式系统的定义多种多样,但没有一种定义是全面的。下面给出两种比较合
理定义:
嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系
统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
嵌入式系统:嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一
起的计算机系统。术语嵌入式反映了这些系统通常是更大系统中的一个完整的部
分,称为嵌入的系统。嵌入的系统中可以共存多个嵌入式系统。
两种定义的出发角度不同,一个是从技术的角度来定义的,另一个是从系统的角度来定
义的。事实上,在大多数情况下,嵌入式系统是真正的被嵌入,即它们是“系统中的系统”。
它们不能够或没有自身的功能。例如,数字机顶盒 DST(Digital Set -Top box)可以在许多家庭
娱乐场所中找到。数字音频/视频解码系统,称为 A/V 解码器(A/V decoder),是 DST 的
一个完整部分,是一个嵌入式系统。A/V 解码器接收单个的多媒体流,并且产生声音和视频
帧作为输出。DST 从卫星接收的信号中包含多个流或频道,因此,A/V 解码器与传输流解
码器连接工作。传输流解码器也是一个嵌入式系统。传输流解码器解调收到的多媒体流到分
离的频道上,并且只将所选的频道送给 A/V 解码器。
某些情况下,嵌入式系统在功能上是独立的系统。例如网络路由器是独立的嵌入式系统。
它由特殊的通信处理器、内存、许多网络访问接口(称为网络端口)以及实现包的路由算法
的特殊软件组成。换句话说,网络路由器是一个独立的嵌入式系统,路由包从一个端口到另
一个端口,实现程序化的路由算法。
1.1.3 嵌入式系统的未来
早在 1990 年之前,嵌入式系统通常是很简单的且具有很长的产品生命周期的自主设备。
近些年来,嵌入式工业经历了巨大的变革。
产品市场窗口现在预计翻番的周期狂热到 6~9 个月。
全球重新定义市场的机会和膨胀的应用空间。
互联现在是一个需求而不是辅助性的,包括用有线和刚刚显露头角的无线技术。
基于电子的产品更复杂化。
互联嵌入式系统产生新的依赖网络基础设施的应用。
微处理器的处理能力按莫尔定律(Moore’s L aw)预计的速度在增加。该定律认为
集成电路和晶体管个数每 18 个月翻一番。
如果说过去的趋势能指明未来,那么随着技术的革新,嵌入式软件将继续增加新的应用,
并产生更加灵巧的产品种类。根据人们对于自身虚拟运行设备的消费要求增加而不断壮大的
市场,以及由 Internet 创造的无限的机会,嵌入式系统将不断地重新塑造未来的世界。
1.2 嵌入式处理器
1.2.1 简介
普通个人计算机(PC)中的处理器是通用目的的处理器。它们的设计非常丰富,因为
这些处理器提供全部的特性和广泛的功能,故可以用于各种应用中。使用这些通用处理器的
系统有大量的应用编程资源。例如,现代处理器具有内置的内存管理单元(MMU),提供内
存保护和多任务能力的虚存和通用目的的操作系统。这些通用的处理器具有先进的高速缓存
逻辑。许多这样的处理器具有执行快速浮点运算的内置数学协处理器。这些处理器提供接口,
支持各种各样的外部设备。这些处理器能源消耗大,产生的热量高,尺寸也大。其复杂性意
- -
2
广州周立功单片机发展有限公司 Tel: (020) 38730916 38730917 38730976 38730977 Fax: 38730925
味着这些处理器的制造成本昂贵。在早期,嵌入式系统通常用通用目的的处理器建造。
近年来,随着大量先进的微处理器制造技术的发展,越来越多的嵌入式系统用嵌入式处
理器建造,而不是用通用目的的处理器。这些嵌入式处理器是为完成特殊的应用而设计的特
殊目的的处理器。关键是应用意识,即知道应用的自然规律并满足这些应用的需求。
一类嵌入式处理器注重尺寸、能耗和价格。因此,某些嵌入式处理器限定其功能,即处
理器对于某类应用足够好,而对于其他类的应用可能就不够好了。这就是为何许多的嵌入式
处理器没有太高的 CPU 速度的原因。例如,为个人数字助理(PDA)设备选择的就没有浮
点协处理器,因为浮点运算没有必要,或用软件仿真就足够了。这些处理器可以是 16-bit
地址体系结构,而不是 32-bit 的,因为受内存储器容量的限制;可以是 200MHz CPU 频率,
因为应用的主要特性是交互和显示密集性的,而不是计算密集性的。这类嵌入式处理器很小,
因为整个 PDA 装置尺寸很小并能放在手掌上。限制功能意味着降低能耗并延长电池供电时
间。更小的尺寸可降低处理器的制造成本。
另一类嵌入式处理器更关注性能。这些处理器功能很强,并用先进的芯片设计技术包装,
如先进的管道线和并行处理体系结构。这些处理器设计满足那些用通用目的处理器难以达到
的密集性计算的应用需求。新出现的高度特殊的高性能的嵌入式处理器,包括为网络设备和
电信工业开发的网络处理器。总之,系统和应用速度是人们关心的主要问题。
还有一类嵌入式处理器关注全部 4 个需求——性能、尺寸、能耗和价格。例如,蜂窝电
话中的嵌入式数字信号处理器(DSP)具有特殊性的计算单元、内存中的优化设计、寻址和
带多个处理能力的总线体系结构,这样 DSP 可以非常快地实时执行复杂的计算。在同样的
时钟频率下,DSP 执行数字信号处理要比通用目的的处理器速度快若干倍,这就是在蜂窝
电话的设计上用 DSP 而不用通用目的的处理器的原因。更甚之,DSP 具有非常快的速度和
强大的嵌入式处理器,其价格是相当合适的,使得蜂窝电话的整体价格具有相当的竞争力。
使用 DSP 的供电电池可以持续几十小时。
片上系统 SoC(System –on-a- Chip)处理器对嵌入式系统具有特别的吸引力。SoC 处理
器具有 CPU 内核并带内置外设模块,如可编程通用目的计时器、可编程中断控制器、DMA
控制器和以太网接口。这样的自含设计使嵌入式设计可以用来建造各种嵌入式应用,而不需
要附加外部设备,再次减少了最终产品的整个费用和尺寸。
1.2.2 分类
嵌入式微处理器(Embedded Microprocessor Unit, EMPU)
嵌入式微处理器的基础是通用计算机中的 CPU。在应用中,将微处理器装配在专门设
计的电路板上,只保留和嵌入式应用有关的母板功能,这样可以大幅度减小系统体积和功耗。
为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样
的,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。
和工业控制计算机相比,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优
点,但是在电路板上必须包括 ROM、RAM、总线接口、各种外设等器件,从而降低了系统
的可靠性,技术保密性也较差。嵌入式微处理器及其存储器、总线、外设等安装在一块电路
板上,称为单板计算机。如 STD-BUS、PC104 等。近年来,德国、日本的一些公司又开发
出了类似“火柴盒”式名片大小的嵌入式计算机系列 OEM 产品。
嵌入式处理器目前主要有 Am186/88、386EX、SC-400、Power PC、68000、MIPS、ARM
系列等。
嵌入式微控制器(Microcontroller Unit, MCU)
嵌入式微控制器又称单片机,顾名思义,就是将整个计算机系统集成到一块芯片中。嵌
入式微控制器一般以某一种微处理器内核为核心,芯片内部集成 ROM/EPROM、RAM、总
线、总线逻辑、定时/计数器、WatchDog、I/O、串行口、脉宽调制输出、A/D、D/A、Flash RAM、
- -
3
广州周立功单片机发展有限公司 Tel: (020) 38730916 38730917 38730976 38730977 Fax: 38730925
EEPROM 等各种必要功能和外设。为适应不同的应用需求,一般一个系列的单片机具有多
种衍生产品,每种衍生产品的处理器内核都是一样的,不同的是存储器和外设的配置及封装。
这样可以使单片机最大限度地和应用需求相匹配,功能不多不少,从而减少功耗和成本。
和嵌入式微处理器相比,微控制器的最大特点是单片化,体积大大减小,从而使功耗和
成本下降、可靠性提高。微控制器是目前嵌入式系统工业的主流。微控制器的片上外设资源
一般比较丰富,适合于控制,因此称微控制器。
嵌入式微控制器目前的品种和数量最多,比较有代表性的通用系列包括 8051、P51XA、
MCS-251、MCS-96/196/296、C166/167、MC68HC05/11/12/16、68300、数目众多 ARM 芯片
等。目前 MCU 占嵌入式系统约 70%的市场份额。
嵌入式 DSP 处理器(Embedded Digital Signal Processor, EDSP)
DSP 处理器对系统结构和指令进行了特殊设计,使其适合于执行 DSP 算法,编译效率
较高,指令执行速度也较高。在数字滤波、FFT、谱分析等方面 DSP 算法正在大量进入嵌
入式领域,DSP 应用正从在通用单片机中以普通指令实现 DSP 功能,过渡到采用嵌入式 DSP
处理器。
嵌入式 DSP 处理器比较有代表性的产品是 Texas Instruments 的 TMS320 系列和 Motorola
的 DSP56000 系列。TMS320 系列处理器包括用于控制的 C2000 系列,移动通信的 C5000
系列,以及性能更高的 C6000 和 C8000 系列。DSP56000 目前已经发展成为 DSP56000,
DSP56100,DSP56200 和 DSP56300 等几个不同系列的处理器。另外 PHILIPS 公司近年也推
出了基于可重置嵌入式 DSP 结构低成本、低功耗技术上制造的 R. E. A. L DSP 处理器,特点
是具备双 Harvard 结构和双乘/累加单元,应用目标是大批量消费类产品。
嵌入式片上系统(System On Chip)
随着 EDI 的推广和 VLSI 设计的普及化及半导体工艺的迅速发展,在一个硅片上实现一
个更为复杂的系统的时代已来临,这就是 System On Chip(SOC)。各种通用处理器内核将作
为 SOC 设计公司的标准库,和许多其它嵌入式系统外设一样,成为 VLSI 设计中一种标准
的器件,用标准的 VHDL 等语言描述,存储在器件库中。用户只需定义出其整个应用系统,
仿真通过后就可以将设计图交给半导体工厂制作样品。这样除个别无法集成的器件以外,整
个嵌入式系统大部分均可集成到一块或几块芯片中去,应用系统电路板将变得很简洁,对于
减小体积和功耗、提高可靠性非常有利。
SOC 可以分为通用和专用两类。通用系列包括 Infineon 的 TriCore,Motorola 的 M-Core,
某些 ARM 系列器件,Echelon 和 Motorola 联合研制的 Neuron 芯片等。专用 SOC 一般专用
于某个或某类系统中,不为一般用户所知。一个有代表性的产品是 Philips 的 Smart XA,它
将 XA 单片机内核和支持超过 2048 位复杂 RSA 算法的 CCU 单元制作在一块硅片上,形成
一个可加载 JAVA 或 C 语言的专用的 SOC,可用于公众互联网如 Internet 安全方面。
1.3 嵌入式操作系统
1.3.1 简介
在计算机技术发展的初期阶段,计算机系统中没有操作系统这个概念。为了给用户提供
一 个 与 计 算机 之 间 的 接口 , 同 时 提高 计 算 机 的资 源 利 用 率便 出 现 了 计算 机 监 控 程序
(Monitor),使用户能通过监控程序来使用计算机。随着计算机技术的发展,计算机系统的硬
件、软件资源也愈来愈丰富,监控程序已不能适应计算机应用的要求。于是在六十年代中期
监控程序又进一步发展形成了操作系统(Operating System)。发展到现在,广泛使用的有三
种操作系统即多道批处理操作系统、分时操作系统以及实时操作系统。
多道批量处理系统一般用于计算中心较大的计算机系统中。由于它的硬件设备比较全、
- -
4
广州周立功单片机发展有限公司 Tel: (020) 38730916 38730917 38730976 38730977 Fax: 38730925
价格较高,所以此类系统十分注意 CPU 及其它设备的充分利用,追求高的吞吐量,不具备实
时性。
分时系统的主要目的是让多个计算机用户能共享系统的资源,能及时地响应和服务于联
机用户,只具有很弱的实时功能,但与真正的实时操作系统仍然有明显的区别。
那么什么样的操作系统才能称为实时操作系统呢? IEEE 的实时 UNIX 分委会认为实时操
作系统应具备以下的几点:
1. 异步的事件响应
实时系统为能在系统要求的时间内响应异步的外部事件,要求有异步 I/O 和中断处理
能力。I/O 响应时间常受内存访问、盘访问和处理机总线速度所限制。
2. 切换时间和中断延迟时间确定
3. 优先级中断和调度
必须允许用户定义中断优先级和被调度的任务优先级并指定如何服务中断。
4. 抢占式调度
为保证响应时间,实时操作系统必须允许高优先级任务一旦准备好运行马上抢占低优先
级任务的执行。
5. 内存锁定
必须具有将程序或部分程序锁定在内存的能力,锁定在内存的程序减少了为获取该程序
而访问盘的时间,从而保证了快速的响应时间。
6. 连续文件
应提供存取盘上数据的优化方法,使得存取数据时查找时间最少。通常要求把数据存储
在连续文件上。
7. 同步
提供同步和协调共享数据使用和时间执行的手段。
总的来说实时操作系统是事件驱动的(event_driven),能对来自外界的作用和信号在限
定的时间范围内作出响应。它强调的是实时性、可靠性和灵活性, 与实时应用软件相结合成
为有机的整体起着核心作用, 由它来管理和协调各项工作,为应用软件提供良好的运行软件
环境及开发环境。
从实时系统的应用特点来看实时操作系统可以分为两种:一般实时操作系统和嵌入式实
时操作系统。
一般实时操作系统与嵌入式实时操作系统都是具有实时性的操作系统,它们的主要区别
在于应用场合和开发过程。
一般实时操作系统应用于实时处理系统的上位机和实时查询系统等实时性较弱的实时
系统,并且提供了开发、调试、运用一致的环境。
嵌入式实时操作系统应用于实时性要求高的实时控制系统,而且应用程序的开发过程是
通过交叉开发来完成的,即开发环境与运行环境是不一致。嵌入式实时操作系统具有规模小
(一般在几 K-几十 K 内)、可固化使用实时性强(在毫秒或微秒数量级上)的特点。
1.3.2 基本概念
前后台系统
对于基于芯片开发来说,应用程序一般是一个无限的循环,可称为前后台系统或超循环
系统。循环中调用相应的函数完成相应的操作,这部分可以看成后台行为。中断服务程序处
理异步事件,这部分可以看成前台行为。后台也可以叫做任务级,前台也叫中断级。时间相
关性很强的关键操作一定是靠中断服务程序来保证的。因为中断服务提供的信息一直要等到
后台程序走到该处理这个信息这一步时才能得到进一步处理,所以这种系统在处理的及时性
上比实际可以做到的要差。这个指标称作任务级响应时间。最坏情况下的任务级响应时间取
- -
5
广州周立功单片机发展有限公司 Tel: (020) 38730916 38730917 38730976 38730977 Fax: 38730925
决于整个循环的执行时间。因为循环的执行时间不是常数,程序经过某一特定部分的准确时
间也不能确定。进而,如果程序修改了,循环的时序也会受到影响。
很多基于微处理器的产品采用前后台系统设计,例如微波炉、电话机、玩具等。在另外
一些基于微处理器应用中,从省电的角度出发,平时微处理器处在停机状态,所有事都靠中
断服务来完成。
操作系统
操作系统是计算机中最基本的程序。操作系统负责计算机系统中全部软硬资源的分配与
回收、控制与协调等并发的活动;操作系统提供用户接口,使用户获得良好的工作环境;操
作系统为用户扩展新的系统功能提供软件平台。
实时操作系统(RTOS)
实时操作系统是一段在嵌入式系统启动后首先执行的背景程序,用户的应用程序是运行
于 RTOS 之上的各个任务,RTOS 根据各个任务的要求,进行资源(包括存储器、外设等)管
理、消息管理、任务调度、异常处理等工作。在 RTOS 支持的系统中, 每个任务均有一个
优先级,RTOS 根据各个任务的优先级,动态地切换各个任务, 保证对实时性的要求。 工
程师在编写程序时,可以分别编写各个任务,不必同时将所有任务运行的各种可能情况记在
心中,大大减小了程序编写的工作量,而且减小了出错的可能,保证最终程序具有高可靠性。
实时多任务操作系统,以分时方式运行多个任务,看上去好象是多个任务“同时”运行。任
务之间的切换应当以优先级为根据,只有优先服务方式的 RTOS 才是真正的实时操作系统,
时间分片方式和协作方式的 RTOS 并不是真正的“实时”。
代码的临界区
代码的临界区也称为临界区,指处理时不可分割的代码,运行这些代码不允许被打断。
一旦这部分代码开始执行,则不允许任何中断打入(这不是绝对的,如果中断不调用任何包
含临界区的代码,也不访问任何临界区使用的共享资源,这个中断可能可以执行)。为确保
临界区代码的执行,在进入临界区之前要关中断,而临界区代码执行完成以后要立即开中断。
资源
程序运行时可使用的软、硬件环境统称为资源。资源可以是输入输出设备,例如打印机、
键盘、显示器。资源也可以是一个变量、一个结构或一个数组等。
共享资源
可以被一个以上任务使用的资源叫做共享资源。为了防止数据被破坏,每个任务在与共
享资源打交道时,必须独占该资源,这叫做互斥。至于在技术上如何保证互斥条件,本章会
做进一步讨论。
任务
一个任务,也称作一个线程,是一个简单的程序,该程序可以认为 CPU 完全属于该程
序自己。实时应用程序的设计过程,包括如何把问题分割成多个任务,每个任务都是整个应
用的某一部分,每个任务被赋予一定的优先级,有它自己的一套 CPU 寄存器和自己的栈空
间。
任务切换
当多任务内核决定运行另外的任务时,它保存正在运行任务的当前状态,即 CPU 寄存
器中的全部内容。这些内容保存在任务的当前状态保存区,也就是任务自已的栈区之中。入
栈工作完成以后,就把下一个将要运行的任务的当前状态从任务的栈中重新装入 CPU 的寄
予存器,并开始下一个任务的运行。这个过程就称为任务切换。这个过程增加了应用程序的
额外负荷。CPU 的内部寄存器越多,额外负荷就越重。做任务切换所需要的时间取决于 CPU
有多少寄存器要入栈。实时内核的性能不应该以每秒钟能做多少次任务切换来评价。
内核
- -
6
广州周立功单片机发展有限公司 Tel: (020) 38730916 38730917 38730976 38730977 Fax: 38730925
多任务系统中,内核负责管理各个任务,或者说为每个任务分配 CPU 时间,并且负责
任务之间的通信。内核提供的基本服务是任务切换。之所以使用实时内核可以大大简化应用
系统的设计,是因为实时内核允许将应用分成若干个任务,由实时内核来管理它们。内核本
身也增加了应用程序的额外负荷。代码空间增加 ROM 的用量,内核本身的数据结构增加了
RAM 的用量,但更主要的是,每个任务要有自己的栈空间,这一块占起内存来是相当厉害
的。内核本身对 CPU 的占用时间一般在 2 到 5 个百分点之间。
通过提供必不可缺少的系统服务,诸如信号量管理、消息队列、延时等,实时内核使得
CPU 的利用更为有效。一旦读者用实时内核做过系统设计,将决不再想返回到前后台系统。
调度
调度是内核的主要职责之一。调度就是决定该轮到哪个任务运行了。多数实时内核是基
于优先级调度法的。每个任务根据其重要程序的不同被赋予一定的优先级。基于优先级的调
度法指 CPU 总是让处在就绪态的优先级最高的任务先运行。然而究竟何时让高优先级任务
掌握 CPU 的使用权,有两种不同的情况,这要看用的是什么类型的内核,是非占先式的还
是占先式的内核。
非占先式内核
非占先式内核要求每个任务自我放弃 CPU 的所有权。非占先式调度法也称作合作型多
任务,各个任务彼此合作共享一个 CPU。异步事件还是由中断服务来处理。中断服务可以
使一个高优先级的任务由挂起状态变为就绪状态。但中断服务以后控制权还是回到原来被中
断了的那个任务,直到该任务主动放弃 CPU 的使用权时,那个高优先级的任务才能获得 CPU
的使用权。
占先式内核
当系统响应时间很重要时,要使用占先式内核。因此绝大多数商业上销售的实时内核都
是占先式内核。最高优先级的任务一旦就绪,总能得到 CPU 的控制权。当一个运行着的任
务使一个比它优先级高的任务进入了就绪状态,当前任务的 CPU 使用权就被剥夺了,或者
说被挂起了,那个高优先级的任务立刻得到了 CPU 的控制权。如果是中断服务子程序使一
个高优先级的任务进入就绪态,中断完成时,中断了的任务被挂起,优先级高的那个任务开
始运行。
任务优先级
任务的优先级是表示任务被调度的优先程度。每个任务都具有优先级。任务越重要,赋
予的优先级应越高,越容易被调度而进入运行态。
中断
中断是一种硬件机制,用于通知 CPU 有个异步事件发生了。中断一旦被识别,CPU 保
存部分(或全部)上下文即部分或全部寄存器的值,跳转到专门的子程序,称为中断服务子
程序(ISR)。中断服务子程序做事件处理,处理完成后,程序回到:
1. 在前后台系统中,程序回到后台程序;
2. 对非占先式内核而言,程序回到被中断了的任务;
3. 对占先式内核而言,让进入就绪态的优先级最高的任务开始运行。
中断使得 CPU 可以在事件发生时才予以处理,而不必让微处理器连续不断地查询是否
有事件发生。通过两条特殊指令:关中断和开中断可以让微处理器不响应或响应中断。在实
时环境中,关中断的时间应尽量的短。
关中断影响中断延迟时间。关中断时间太长可能会引起中断丢失。微处理器一般允许中
断嵌套,也就是在中断服务期间,微处理器可以识别另一个更重要的中断,并服务于那个更
重要的中断。
时钟节拍
- -
7
广州周立功单片机发展有限公司 Tel: (020) 38730916 38730917 38730976 38730977 Fax: 38730925
时钟节拍是特定的周期性中断。这个中断可以看作是系统心脏的脉动。中断之间的时间
间隔取决于不同应用,一般在 10ms 到 200ms 之间。时钟的节拍式中断使得内核可以将任务
延时若干个整数时钟节拍,以及当任务等待事件发生时,提供等待超时的依据。时钟节拍率
越快,系统的额外开销就越大。
1.3.3 使用实时操作系统的必要性
嵌入式实时操作系统在目前的嵌入式应用中用得越来越广泛,尤其在功能复杂、系统庞
大的应用中显得愈来愈重要。
首先,嵌入式实时操作系统提高了系统的可靠性。在控制系统中,出于安全方面的考虑,
要求系统起码不能崩溃,而且还要有自愈能力。不仅要求在硬件设计方面提高系统的可靠性
和抗干扰性,而且也应在软件设计方面提高系统的抗干扰性,尽可能地减少安全漏洞和不可
靠的隐患。长期以来的前后台系统软件设计在遇到强干扰时,使得运行的程序产生异常、出
错、跑飞,甚至死循环,造成了系统的崩溃。而实时操作系统管理的系统,这种干扰可能只
是引起若干进程中的一个被破坏,可以通过系统运行的系统监控进程对其进行修复。通常情
况下,这个系统监视进程用来监视各进程运行状况,遇到异常情况时采取一些利于系统稳定
可靠的措施,如把有问题的任务清除掉。
其次,提高了开发效率,缩短了开发周期。在嵌入式实时操作系统环境下,开发一个复
杂的应用程序,通常可以按照软件工程中的解耦原则将整个程序分解为多个任务模块。每个
任务模块的调试、修改几乎不影响其他模块。商业软件一般都提供了良好的多任务调试环境。
再次,嵌入式实时操作系统充分发挥了 32 位 CPU 的多任务潜力。32 位 CPU 比 8、16
位 CPU 快,另外它本来是为运行多用户、多任务操作系统而设计的,特别适于运行多任务
实时系统。32 位 CPU 采用利于提高系统可靠性和稳定性的设计,使其更容易做到不崩溃。
例如, CPU 运行状态分为系统态和用户态。将系统堆栈和用户堆栈分开,以及实时地给出
CPU 的运行状态等,允许用户在系统设计中从硬件和软件两方面对实时内核的运行实施保
护。如果还是采用以前的前后台方式,则无法发挥 32 位 CPU 的优势。
从某种意义上说,没有操作系统的计算机(裸机)是没有用的。在嵌入式应用中,只有把
CPU 嵌入到系统中,同时又把操作系统嵌入进去,才是真正的计算机嵌入式应用。
1.3.4 实时操作系统的优缺点
在嵌入式实时操作系统环境下开发实时应用程序使程序的设计和扩展变得容易,不需要
大的改动就可以增加新的功能。通过将应用程序分割成若干独立的任务模块,使应用程序的
设计过程大为简化;而且对实时性要求苛刻的事件都得到了快速、可靠的处理。通过有效的
系统服务,嵌入式实时操作系统使得系统资源得到更好的利用。
但是,使用嵌入式实时操作系统还需要额外的 ROM/RAM 开销,2~5%的 CPU 额外负
荷,以及内核的费用。
1.3.5 常见的嵌入式操作系统
1. 嵌入式 Linux
uClinux 是一个完全符合 GNU/GPL 公约的操作系统,完全开放代码,现在由 Lineo 公
司支持维护。uClinux 的发音是“you-see-linux”,它的名字来自于希腊字母“mu”和英文大
写字母“C”的结合。“mu”代表“微小”之意,字母“C”代表“控制器”,所以从字面上
就可以看出它的含义,即“微控制领域中的 Linux 系统”。
为了降低硬件成本及运行功耗,很多嵌入式 CPU 没有设计内存管理单元(Memory
Management Unit,以下简称 MMU)功能模块。最初,运行于这类没有 MMU 的 CPU 之上
的都是一些很简单的单任务操作系统,或者更简单的控制程序,甚至根本就没有操作系统而
- -
8