这章主要由以下几个小节构成:
1.嵌入式系统概论
1.1 嵌入式系统的特点
1.2 实时系统的概念
2.嵌入式系统基本体系结构
2.1 硬件体系结构
2.2 软件体系结构
2.3 嵌入式操作系统
2.3.1 嵌入式操作系统的特点
2.3.2 一般结构
2.3.3 多任务调度机制
2.3.4 内核对象
2.4 内核服务
常见的嵌入式操作系统
嵌入式数据库系统
2.5 嵌入式系统网络
2.6 嵌入式系统的开发
2.6.1 开发环境与过程
2.6.2 开发调试方法
嵌入式系统的特点
系统专用性强,软硬件依赖性强,系统实施性强,处理器专用,多种技术紧密结合,系统透明性,系统资源受限
嵌入式系统是一种应用为核心,以计算机技术为基础,可以适用对不同应用对功能,可靠性成本体积,功耗等方面的要求,提供可配置可裁剪的软硬件系统,它具有很强的灵活性。主要由嵌入式硬件平台,相关的嵌入式硬件,嵌入式操作系统,支撑软件以及应用软件所组成。
Middleware 它可以在使用RTOS的功能的同时,向应用程序提供OS没有的功能
驱动 它可以在使用RTOS的功能的同时,向应用程序提供硬件控制功能
实时系统的概念
对外部事件进行实时响应的系统。实时性系统有时间约束并且是死线驱动的。
死线:指系统必须对外部事件处理的最迟时间界限,错过此界限可能产生严重后果。通常计算必须在到达死线以前完成。通常死线问题会演变成资源调度的问题。
嵌入式系统基本体系结构
嵌入式系统软件可以分为三个层次:系统软件,支撑软件,应用软件。
嵌入式处理器可以分为如下几类:嵌入式微处理器,嵌入式微控制器,嵌入式数字信号处理器,嵌入式片上系统。
嵌入式系统中的支撑软件主要由窗口系统,网络系统,数据库管理系统,java虚拟机等几部分所组成。
嵌入式操作系统特点
与通用操作系统相比,嵌入式操作系统有如下特点:
微型化 嵌入式系统的软件一般都固化在存储器芯片中,而不是存放在磁盘等载体中。
代码质量高 因为存储空间是宝贵的资源
专业化 要有很好的移植性和可靠性
实时性强 广泛应用于过程控制,数据采集,通信,多媒体信息处理等要求实时响应的场合。
可裁剪可配置 为了适应微型化和专业化要求。
操作系统在实时性上,可以分为实时性操作系统和非实时性操作系统两种。
RTOS:目前大多数商业嵌入式系统都是嵌入式操作系统。
非实时性操作系统:如机顶盒,个人数字助理。它不特别关注单个任务的响应时限,其平均性能,系统效率和资源利用率一般较高。
嵌入式操作系统的一般结构
EOS是一个按时序方式调度执行,管理系统资源并为应用代码提供服务的基础软件。每个EOS都有一个内核。内核包含的三个对象有:
调度器 EOS的心脏,提供一组算法决定何时执行哪个任务
内核对象 特殊内核构件,帮助创建嵌入式应用。
内核服务 是内核在对象上执行的操作或通用操作。
多任务调度机制
大多数那和普遍支持两种调度算法,即基于优先级的抢佔调度和基于时间轮转的调度。
通常作为实时系统设计的原则,CPU利用率应当在60%至70%之间。
内核对象
实时操作系统的用户可以使用内核对象来解决实时系统设计中的问题。如并发,互斥同步,数据通信的问题。
那和对象包括信号量,消息队列,管道,事件与信号等。
消息队列是一个类似于缓冲区的对象,通过他任务和ISR可以发送和接收消息,实现数据通信。
管道:是提供非结构化数据交换和实现任务同步的内核对象。每个管道有两个端口,一个端口用来读,一个端口用来写。一般内核支持两种类型的管道:命名管道和无名管道。
条件变量:一个与共享资源相关的内核对象。他允许一个任务,等待其他任务创建共享资源所需要的条件。
异常与中断
异常是任何打断处理器正常运行,迫使处理器进入特权执行模式的事件。它分为同步异常和异步异常,所有的处理器按照定义的次序。
计时器:实时嵌入式操作系统的一个组成部分,时间轮转调度算法,存储器定时刷新,网络数据包的超时重传以及目标机监视系统的时序都严格依赖于计时器。
I/O管理:I/O子系统定义了一组标准IO操作函数。以便于对应用隐藏系统的特征。
嵌入式数据库
也称为移动式数据库或者嵌入式移动数据库。它存在的目的就是解决移动计算环境下的数据管理问题。移动数据库是移动计算环境中的分布式数据库。
在嵌入式系统中引入数据库的原因
1)所有的应用都需要重复的进行数据的管理工作
2)各应用之间的数据共享性能
3)应用软件的独立性,可移植性差,可重用性低。
嵌入式数据库使用环境的特点
设备随时的移动性
网络频繁断接
网络条件多样化
通信能力不对称
嵌入式系统网络
是用于连接各种嵌入式系统,使之可以互相传递信息,共享资源的网络系统。
嵌入式系统在不同的场合采用不同的连接技术
嵌入式调试方法
嵌入式系统开发方法不同于通用的开发方法,而是采用交叉式开发方法。即是在一个通用的平台开发,在另一个嵌入式目标平台上运行。这个用于开发嵌入式软件的通用平台称为宿主机系统。被开发的嵌入式系统称为目标机系统。
而当软件执行环境和开发环境一致时的开发过程则称为本地开发。
由于嵌入式软件的运行和开发环境不同,开发工作是交叉进行的,所以每一步都要考虑到这一点。
直接调试法 是将目标代码下载到目标机上,让其执行,通过观察指示灯来判断程序的运行状态。这是最原始的调试方法。
调试监控法 也叫插桩法,桩的作用是监视和控制被调试的程序。它明显提高了开发的效率,降低了调试的难度,缩短了产品开发周期,有效的降低了开发成本。
在线仿真法 ICE是一种用于替换目标机上CPU的设备。对目标机来说,ICE就相当于它的CPU,在线仿真器本身就是一个嵌入式系统,有自己的CPU内存和软件。
片上调试法 InCircuitDebugger是CPU芯片内部的一种用于支持调试的功能模块
模拟器法 是运行于宿主机上的一个纯软件工具,它通过模拟目标机的指令系统或目标机操作系统的系统调用来达到在宿主机上运行和调试嵌入式应用程序的目的。
为了克服插桩法的缺点,出现了一种改良的方法,叫做ROM仿真器法。
ROM仿真器可以认为是一种用于替代目标机上ROM芯片的硬件设备,它的一端跟宿主机相连,一端通过ROM芯片的引脚插座和目标机相连。
在线仿真法
ICE是一种用于替代目标机上CPU的设备。对目标机来说,ICE就相当于它的CPU,在线仿真器本身就是一个嵌入式系统,有自己的CPU内存和软件。
ICE的CPU可以执行目标机的所有指令,但比一般的CPU有更多的引脚,能够将内部信号输出到被控制的目标机上,ICE的存储器也被映射到用户的程序空间
因此,即使没有目标机,仅用ICE也可以进行程序的调试。
片上调试法
InCircuitDebugger是CPU芯片内部的一种用于支持调试的功能模块
ICD可以分为仿调试监控器,后台调试模式BDM,连接测试存取组JTAG和片上仿真OnCE等几类。
该方法的主要优点是:
不占用目标机的通信端口等资源,调试环境和最终的程序运行环境基本一致,无须在目标机上增加任何功能模块即可进行;
支持软硬件断点,支持跟踪功能,可以精确计量程序的执行时间;支持时序逻辑分析等功能。
该方法的主要缺点是:
实时性不如ICE强,使用范围受限,如果目标机不支持片上调试功能,则该方法不适用。实现技术多样,标准不完全统一,工具软件的开发和使用均不方便
模拟器法
模拟器适合于调试非实时的应用程序,这类程序一般不与外部设备交互,实时性不强,程序的执行过程是时间封闭的,
开发者可以直接在宿主机上验证程序的逻辑正确性。当确认无误后,将程序写入目标机上就可以正确运行。
模拟器调试不需要特殊的硬件资源,是一种非常经济的方法。
模拟器的不足之处
1.模拟器环境和实际运行环境差别很大
2.模拟器不能模拟所有的外部设备
3.模拟器的实时性差
4.模拟器需要宿主机配置较高
嵌入式系统的能耗问题
人们要求嵌入式产品能够提供更为强劲的计算能力,以满足无线通信多媒体应用的要求,然而高性能的代价就是高能耗。
在嵌入式系统中,核心处理器的能耗占据着相当大一部分。动态电压调节被看作是降低处理器能耗的关键技术,其原理是在系统运行时态通过动态改变处理器的电压和频率,降低系统中的无用能耗,从而提高能量的有效利用率。
动态电源管理
基本思想:因为系统的负载是变化的,如果我们可以预测它的状态,便可以通过一些方法来节约能耗。
如果当一个设备没有任务时,简单地认为立即让设备进入睡眠态,往往会带来新的问题。如果在很短的时间内就需要重新使用设备,那么从睡眠唤醒时需要一些时间,
而且需要更多能量。
降低功耗有两种机制:利用睡眠状态,动态速度缩放。
动态速度缩放:一些嵌入式系统可以在运行时改变自己的频率和速度
利用睡眠状态:设备低能量时进入睡眠状态
实现DPM的算法归结起来有三类,分别是基于阈值的算法,预测算法和随机法。
Task间通信方式有两种:
task间通信有两种方式,一种是通过共有内存方式通信(必须利用RTOS的功能进行排他控制),另一种是通过消息机制方式通信。
用共有内存来通信的功能(主要的):Semaphore (排他处理等),Event flag(事象通知),Mutex(排他処理)
用消息来通信的功能:Data queue(1个词语的消息),Mailbox(指针的送受信),Message buffer(可变长消息)
,Rendezvous(双方向通信,可变长消息)
是否使用RTOS的比较:
不用RTOS的 由应用程序来直接控制硬件,对硬件的依存度大,应用程序的再利用性低。
使用RTOS 介由RTOS来控制硬件,对硬件依存度小,应用程序的再利用性高。