《嵌入式操作系统期末复习资料.doc》由会员分享,可在线阅读,更多相关《嵌入式操作系统期末复习资料.doc(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、什么是嵌入式系统v 顾名思义: 包含(安装)在电子装置(应用对象)内部的计算机系统称为嵌入式系统。v 基本描述: 专门用途的计算机系统 常常用于控制 广泛存在 包含硬件和软件v 根据IEEE(国际电气和电子工程师协会)的定义: 嵌入式系统是“用于控制、监视或者辅助设备、机器和车间运行的装置。”嵌入式系统的定义v 本课程使用的定义,也是国内高校流行的定义:n 嵌入式系统是以应用为中心n 以计算机技术为基础n 且软硬件可裁剪n 适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统n 它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成n 用于实现
2、对其他设备的控制、监视或管理等功能。嵌入式系统的发展简史v 第一阶段 4到8位单片机为核心的可编程控制器系统v 第二阶段 以8到16位嵌入式处理器(CPU)为基础v 第三阶段 32位RISC嵌入式中央处理器 嵌入式操作系统v 第四阶段 基于Internet接入为标志的嵌入式系统v 可从4个方面考察嵌入式系统的历史 硬件 软件 代表产品 系统结构嵌入式系统的特点v 专门用于特定任务 嵌入式系统一般是专用系统,而PC是通用计算平台。v 技术融合 集计算机、半导体、电子技术、通信技术于一体。v 有实时约束 一般采用实时操作系统v 有功耗约束v 软件没有系统和应用的区别,软件固化。v 系统内核小v 软
3、硬件可裁剪v 高可靠性v 资源比PC少得多v 嵌入式系统需要专用的开发工具v 非垄断市场软件硬件基本要素v 硬件 嵌入式处理器 各种类型存储器 模拟电路及电源 接口控制器及接插件v 软件 应用程序 实时操作系统 协议栈 设备驱动 板级支持包发展:无所不在的计算时代远远大于CPU普适计算基本特征v 普适计算是指无所不在的、随时随地可以进行计算的一种方式。它使计算机融入人的生活空间。v 普适计算不再局限于桌面,用户可以通过手持设备、可穿戴设备或其他常规、非常规计算设备无障碍地享用计算能力和信息资源,使用户能够随时随地获取各种信息,并做出回应。最小系统v 嵌入式微处理器芯片本身不能独立工作,需要一些
4、外围元器件提供基本的工作条件。一个最小系统一般包括以下几个部分 微处理器芯片:嵌入式最小系统的心脏 电源电路、复位电路、晶振电路:为嵌入式最小系统提供电源、时钟信号及复位 存储器(Flash和SDRAM)。微处理器芯片内部没有存储器,需要外扩存储器 UART(RS-232、以太网)接口电路。与外界通信 JTAG调试接口。完成软件的下载与烧写扩展板v 扩展板主要由嵌入式系统的外设及接口组成,按照功能可分为: 人机交互外设,如键盘、显示设备、触摸屏等。 常用外设及接口,如UART串口、SPI、I2C、A/D等。 其他专用设备,如网络控制器、CAN控制器、红外接口等。v 按处理器集成与否可分为: C
5、PU集成外设,此类外设在芯片生产时已经集成到处理器上,不需要用户扩展。 扩展外设,该类外设是用户需要的但处理器上没有集成,需要用户自己在硬件设计时进行扩展。核心板由最小系统组成的电路开发板称为核心板嵌入式系统硬件平台一般采用核心板加扩展板的方式进行设计处理器指令执行过程v 指令执行过程一般分为: 取指 从存储器获得下一条执行的指令读入指令寄存器 PC: 程序计数器, 指向下一条要执行的指令 IR: 指令寄存器,保存已取得指令 译码 解释指令,决定指令的执行意义 执行 从存储器向数据通道寄存器移动数据 通过算术逻辑单元ALU进行数据操作 存储 从寄存器向存储器写数据微处理器的结构体系v 按存储结
6、构分: 冯诺依曼体系结构 哈佛体系结构v 按指令类型可分为: 复杂指令集(CISC)处理器 精简指令集(RISC)处理器 每条指令都采用标准字长v 冯诺依曼体系结构 冯诺伊曼结构也称普林斯顿结构 是一种将程序指令存储器和数据存储器合并在一起的存储器结构 处理器经由同一个传输总线来访问程序和数据存储器 程序指令和数据的宽度相同 如C51、X86系列、ARM7等。v 哈佛结构 哈佛结构是一种将程序指令存储和数据存储分开的存储器结构 目的是为了减轻程序运行时的访存瓶颈 哈佛结构的微处理器通常具有较高的执行效率 如ARM9、TI的DSP等。影响CPU性能的因素: 流水线 超标量 缓存 总线 对于任何处
7、理器来说,要提高其效率,在设计上都是要: 减少数据的等待时间 减少处理单元的空闲时间。通常用静态RAM来设计 因此,速度快但比较贵高速缓冲:解决CPU与存储器速度不匹配的问题v 处理器信息存储的字节顺序主要分为: 大端存储法 小端存储法 v 大端模式u 字数据的高位字节存储在低地址中u 字数据的低字节则存放在高地址中v 小端模式u 低地址中存放字数据的低字节u 高地址中存放字数据的高字节数字信号处理的任务在很大程度上需要由DSP器件来完成v DSP的传统设计往往采取主从式结构: 在一块电路板上,DSP做从机,负责数字信号处理运算; 外加一块嵌入式微处理器做主机,来完成输入、控制、显示等其他功能
8、。 知识产权与硅知识产权v 知识产权(IP:Intellectual Property)包含版权、商标、专利权、集成电路布图设计和植物品种权等。v 本课程讲解的知识产权主要涉及集成电路布图设计。通常称这一类知识产权为硅知识产权(Silicon Intellectual Property)。IP核的三种形态v 软核v 固核v 硬核IP核形态的优选原则v 从可被重用频度、可向其它工艺移植可能性、重用灵活性等方面考虑,三种IP核的优选次序是: 上策选软核 中策选固核 下策选硬核v 从高性能、规范化、有较短上市时间、自行开发工作量尽量少、有支付高价能力的角度考虑,优选次序是: 硬核为上策 固核为中策
9、软核为下策PowerPC处理器v 由IBM(国际商业机器公司) Motorola(摩托罗拉公司) 和Apple (苹果公司)联合开发的高性能32位和64位RISC微处理器系列 。RAM存储器分为两种:v 静态RAM(SRAM)v 动态RAM(DRAM)v SRAM与DRAM间的主要区别是存储于其中的数据的寿命v SRAM是只要芯片有电就会保留其中的内容。然而,如果电源切断了或者是暂时断电了,其中的内容就会永久的丢失v DRAM只有极短的数据寿命,通常不超过0.25s,即使是在连续供电的情况下也是如此。因此使用DRAM时,需要配合DRAM控制器Flashv Nor Flashv Nand Fla
10、shv NandFlash具有容量大、回写速度快、芯片面积小等特点,主要用于外存。v NORFlash具有随机存储速度快、电压低、功耗低、稳定性高等特点,主要用于主存为什么要引入硬件抽象层的主要原因是 嵌入式处理器多种多样; 即使使用同一种体系的嵌入式处理器,它们的配置参数仍各有不同; 不可能一个操作系统能兼容所有硬件BSP:把原来操作系统与硬件打交道的部分抽取出来给用户个性编写。如何解决硬件的差异性? 操作系统供应商为了解决硬件平台的差异性,把操作系统分成两部分: 共性部分利用标准的C语言实现 依赖于硬件的部分(使用的存储器的种类和参数,外部设备的配置,地址分配等)提供给用户编写代码,操作系
11、统规定一个标准的规范。 那么,由用户编写的为用户定制的硬件和操作系统之间提供接口和支持平台的这部分代码称为硬件抽象层(也称板级支持包)。硬件抽象层的特点: 介于硬件和软件之间 为软件提供硬件特性,为硬件进行驱动 是嵌入式系统很重要的软件组成部分 处理系统启动、硬件初始化以及中断与异常 完成进入嵌入式操作系统的运行。BSP的特点 BSP具有硬件相关性 BSP作为软硬件间的接口,必须为操作系统提供操作和控制硬件的方法 而嵌入式系统的硬件环境具有应用相关性。 BSP具有操作系统相关性 不同的操作系统具有各自的软件层次结构 因此,不同的操作系统具有特定的硬件接口形式。嵌入式系统初始化 硬件初始化 软件
12、初始化 初始化过程按照自底向上、从硬件到软件的次序依次抽象为三个主要环境: 片级初始化 板级初始化 系统级初始化v 片级初始化: 主要完成CPU的初始化,包括: 设置CPU的核心寄存器和控制寄存器 设置CPU核心工作模式以及CPU的局部总线模式等。 片级初始化把CPU从上电时的缺省状态逐步设置成为系统所要求的工作状态; 这是一个纯硬件的初始化过程v 板级初始化: 完成CPU以外的其他硬件设备的初始化。 除此之外,还要设置某些软件的数据结构和参数,为随后的系统级初始化和应用程序的运行建立硬件和软件环境; 这是一个同时软硬件两部分在内的初始化过程。v 系统级初始化: 主要进行操作系统初始化。 BS
13、P将控制权转交给操作系统,由操作系统进行余下的初始化操作。包括: 加载和初始化与硬件无关的设备驱动程序 建立系统内存区,加载并初始化其他系统软件模块,如网络系统、文件系统等 最后,操作系统创建应用程序环境并将控制转交给应用程序的入口。v 什么是操作系统引导? 将操作系统装入内存并开始执行的过程v 操作系统启动的限制(放在外存要调入内存) 时间限制 空间限制v 什么是Boot Loader 在系统启动时,将操作系统内核从外部存储介质拷贝到内存中,并跳转到内核的首条指令的过程 Boot Loader是在操作系统内核运行之前执行的一段小程序 将系统软、硬件环境带到一个合适的状态,为操作系统内核准备好
14、正确的环境RTOS的引导模式v 需要Boot Loader的引导模式 若RAM没有空间限制,足够程序运行,则:v 由Loader程序把内核从非易失性存储介质全部复制到RAM中,对于某些压缩内核,复制后还需要解压 特点:v 启动速度快,但不能满足对启动速度要求特别高的系统v 系统的运行速度能得到保障v 不需要Boot Loader的引导模式 对于时间效率要求较高的系统,通常要求系统快速启动,无需Boot Loader 直接在NorFlash或ROM系列可以做主存的非易失性存储介质中运行 特点:v 启动速度很快v 不能满足运行速度的要求实时系统运算能力具有双重特征: 正确 及时实时系统的定义对外来
15、事件能在限定的响应时间内做出预定质量处理的计算机系统。具有实时性能的操作系统称为实时操作系统(Real-Time Operating System, RTOS)v 实时系统典型例子 民用飞机的导航系统 汽车的防刹车抱死系统(ABS)v 非实时系统典型例子 银行数据查询处理系统 视频播放系统 图像扫描 文字识别系统以下几种途径常常用来提高应用系统实时性能 尽量采用硬件处理 优化微处理器的中断机制 采用简单的单线程循环程序 采用基于实时操作系统的复杂多线程操作实时系统的两个基本属性 可预测性 可靠性实时系统的指标 响应时间(response time) 吞吐量(throughput) 生存时间(s
16、urvival time)实时系统的分类(相应性能) 硬实时系统 系统未能在时限内就某一事件做出响应而失败 并且该失败被认为是一种全面的系统失败 则可以认为该系统是一个硬实时(hard real-time)系统。 如:核电反应堆 软实时系统 非硬实时的实时系统可以归类为软实时系统。 在一个软实时(soft real-time)系统中,存在时限指标,但是如果输出响应超过时限,一般不会造成严重后果。 如:语音系统按照响应时间的快慢分类:(响应时间) 强实时系统: 其响应时间在毫秒级或微秒级。 如:信号处理 普通实时系统: 其响应时间一般几秒 弱实时系统: 其响应时间一般在数十秒。 如:联机查询系统
17、实时=及时实时系统嵌入式系统嵌入式操作系统的特点v 可移植性v 强调实时性能v 内核精简,所占空间小v 抢占式内核v 使用可重入函数v 可配置v 可裁剪v 高可靠性从内核调度基本特点分类,嵌入式操作系统内核分为:v 抢占式内核(preemptive kernel)v 不可抢占式内核(non-preemptive kernel)抢占式内核v 最大特点是最高优先级任务能够立即得到执行,从而能够保证系统具有高度实时性能。嵌入式系统的进程进程调度v (3)静态调度和动态调度动态调度算法主要有两种:v 最近执行者优先调度(earliest deadline first,EDF) v 最短空闲时间优先调度
18、算法(least-laxity-first scheduling) 最经典的静态调度算法是比率单调调度算法(rate-monotonic scheduling algorithm,RMS)。操作系统任务单位实时性ROM化应用领域源代码开放ITRON任务优(数s)必须家电有VRTX任务优(数s)必须家电无Psos任务优(数s)必须控制无VxWorks任务优(数s)必须控制无Nucleus任务优(数s)必须控制有Hard Hat Linux进程良(可选)可控制有Windows CE进程良可PDA、家电无实时多任务设计v DARTS的设计思想 把系统结构化成并发任务,定义任务间接口; 包括ARTS阶
19、段和DRTS阶段; ARTS阶段:实时系统需求模型; DRTS阶段:实时系统设计。v 开发过程 1. 系统需求定义 2. 划分子系统 3. 划分任务 4. 定义任务接口 5. 任务设计 6. 编码实现v 3. 划分任务划分任务的原则是 将有时间关键性(deadline)的功能分离出来, 组成独立运行的任务v I/O 依赖性 v 功能的时间关键性v 计算需求v 功能内聚v 时间内聚v 周期执行I/O 依赖性 v 如果变换依赖于I/O,速度受限I/O,可独立成任务v 在系统中创建与I/O设备数目相当的I/O任务v I/O任务只实现与设备相关的代码v I/O任务的执行只受限于I/O设备的速度,而不是
20、处理器v 在任务中分离设备相关性DARTS支持两类不同的TCM(任务间通信模块) 消息通信模块 信息隐藏模块 任务同步模块 任务同步用事件来实现,目标任务等待一个事件的发生,或源任务发送事件信号激活目标任务松耦合消息通信 消息队列包括二进制信号量,用于互斥 事件同步用来在队列满时挂起生产者,队列为空时挂起消费者 每个消息队列限制了最大长度 每个消息队列都和一个事件相连,由事件激活任务紧耦合消息通信 发送和接收队列各有一个元素信息隐藏模块 系统中可能有一些资源如查询数据、数据池和数据存储区等可以被两个或更多的任务共享使用,或是只读,或是可读可写嵌入式软件的开发环境 由宿主机和目标机组成宿主机与目
21、标机之间在物理连接的基础上建立起逻辑连接。连接方式主要有三种: 串口 以太口 OCD(On Chip Debug)方式 如JTAG、BDM等嵌入式软件的交叉开发环境v 在开发过程中 目标机端需接收和执行宿主机发出的各种命令 如设置断点、读内存、写内存等 将结果返回给宿主机 配合宿主机各方面的工作v 交叉调试方式 Crash and Burn最早的嵌入式应用软件调试方法 Rom Monitor ROM Monitor要占用目标机一定数量的资源,如CPU、RAM、ROM和通信设备等。调试环境不同于实际目标环境。 Rom Emulator (ROM) 用于替代目标机上的ROM芯片,即ROM仿真器。
22、In Circuit Emulator (CPU)是一种用于替代目标机上CPU的设备,即在线仿真器。 On Chip Debugging (数据链接) CPU芯片提供的一种调试功能(片上调试),可以认为是一种廉价的ICE功能:OCD的价格只有ICE的20%,但提供了ICE 80%的功能。v 调试环境与固化环境的区别: 代码定位不同 初始化部分不同什么是固化:当调试完成之后,程序代码需要被完全烧入到目标板的非易失性存储器(如ROM或闪存)中,并且在真实的硬件环境上运行,这个过程叫做固化。注意:“ARM核”并非芯片,ARM核与其它部件如RAM、ROM、片内外设组合在一起才能构成现实的芯片。如,S3
23、C44B0X是以ARM7TDMI为内核的嵌入式微处理器。ARM处理器的工作状态ARM状态:处理器默认为此状态;32位存储结构Thumb状态位存储结构ARM体系结构支持7种处理器模式,分别为:用户模式、。快中断模式、。中断模式、。管理模式、。中止模式、。未定义模式、。系统模式。这样的好处是可以更好的支持操作系统并提高工作效率。除用户模式外,其它模式均为特权模式。用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权ARM处理器共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器。 但是这些
24、寄存器不能被同时访问,具体哪些可编程访问,取决于微处理器的工作状态与工作模式。R13(SP)R13R14(LR)R14链接寄存器R15(PC)R15寄存器CPSR为当前程序状态寄存器。寄存器SPSR为保存程序状态寄存器。和的关系对异常的影响:1.将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行,从ARM状态进入时,LR寄存器中保存的是下一条指令的地址。2.将CPSR复制到相应的SPSP中。3.根据异常类型,强制设置CPSR的运行模式位。4.强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。从异常返回:异常处理完毕后,ARM
25、微处理器会执行以下几步操作从异常返回:1.将连接寄存器LR的值减去相应的便宜量后送到PC中。2.SPSR复制回CPSR中。3.若在进入异常处理时设置了中断禁止位,需要在此清除。状态切换过程(用BX互相转换)注意:ARM和Thumb状态之间的切换并不影响处理器模式或寄存器内容。B跳转三条指令BLBXARM处理器具有8种基本寻址方式。1.寄存器寻址;2.立即寻址;3.寄存器移位寻址; 4.寄存器间接寻址;5.基址寻址;6.多寄存器寻址;7.堆栈寻址;8.相对寻址。1.寄存器寻址MOV R1,R2 将R2的值存入R1 SUB R0,R1,R2 将R1的值减去R2的值,结果保存到R0 2.立即寻址SU
26、BSR0,R0,#1 ;R0减1,结果放入R0,并且影响标志位MOVR0,#0xFF000;将立即数0xFF000装入R0寄存器 3.寄存器移位寻址MOVR0,R2,LSL #3;R2的值左移3位,结果放入R0,即R0=R28 ANDSR1,R1,R2,LSL R3;R2的值左移R3位,和R1相“与”,结果放入R14.寄存器间接寻址LDRR1,R2;将R2指向的存储单元的数据读出保存在R1中 SWPR1,R1,R2;将寄存器R1的值和R2指定的存储单元的内容交换 5.基址寻址LDRR2,R3,#0x0C;读取R3+0x0C地址上的存储单元的内容,放入R2 STRR1,R0,#-4!;先R0=R
27、0-4,然后把R1的值保存到R0指定的存储单元 0x0103C000=0000 0001 0000 0011 1100 0000 0000 0000(第一个1和最后一个1之间间隔超过8位)0X=0001 0010 1000 0000 0000 0000 0000 0000(最远的两个1之间的间隔少于8位,可由0100 1010右移10位得到) 0X0016C000=0000 0000 0001 0110 1100 0000 0000 0000(最远的两个1间隔5位,合法,循环右移18位得到)0xB=0100 0000 0000 0000 0000 0000 0011 1011(最远两个1间隔6
28、位,可由右移2位得到)#1=0000 0000 0000 0000 0000 0000 0000 0001-可由0001 0000右移4位得到#0X0F=0000 0000 0000 0000 0000 0000 0000 1111-是1111 0000右移4位得到#0XC000=0000 0000 0000 0000 1100 0000 0000 0000-可由 0000 0011右移18位得到 Rm,shift寄存器移位方式例如:ADDR1,R1,R1,LSL #3;R1=R1+R1*8=9R1SUBR1,R1,R2,LSR R3;R1=R1-(R2/2R3)ARM存储器访问指令单寄存器存取ARM存储器访问指令寄存器和存储器交换指令SWP指令用于将一个内存单元(该单元地址放在寄存器Rn中)的内容读取到一个寄存器Rd中,同时将另一个寄存器Rm的内容写入到该内存单元中。使用SWP可实现信号量操作