嵌入式期中复习资料Word文件下载.docx
《嵌入式期中复习资料Word文件下载.docx》由会员分享,可在线阅读,更多相关《嵌入式期中复习资料Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
5、提供友好的多媒体人机界面。
7)列举一些典型的嵌入式系统应用。
1、国防军事领域:
各种武器控制、军用飞机等军用电子装备;
2、工业控制:
工业自动化设备;
3、交通管理:
车载导航;
4、信息家电:
冰箱、空调等。
8)嵌入式uClinux的特点和应用。
开源、性能稳定、移植性好、功能强大,与标准Linux的架构完全一致,专门针对没有MMU的处理器而设计的,多采用Romfs文件系统,在实现多个进程时需要实现数据保护。
多应用在低端平台,没有MMU的处理器。
9)嵌入式uC/OS的特点和应用。
任务调度、任务通信、内存管理、中断管理,而且是一个代码完全开放的实时操作系统,结构简单明了和代码风格严谨,适合嵌入式操作系统初学者。
具有可剥夺实时内核,最多可以支持64个任务,通过优先级调度任务。
低端平台如果对实时性要求较高、应用相对简单,则可采用uc/os。
10)典型嵌入式系统硬件的基本组成
硬件以微处理器为核心集成存储器和系统专用的输入输出设备。
11)简述ARM处理器种类及特点。
ARM微处理器一般具有如下特点:
1、体积小、低功耗、低成本、高性能;
2、支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;
3、大量使用寄存器,指令执行速度更快;
4、大多数数据操作都在寄存器中完成;
5、寻址方式简单灵活,执行效率高;
6、指令长度固定。
ARM内核种类分类
带有ARM内核的处理器大概有千种以上,这里不做介绍。
下面主要对各类ARM处理器的几个重要内核版本做一个简要介绍。
1.ARM7处理器
ARM7处理器采用了ARMV4T(冯·
诺依曼)体系结构,这种体系结构将程序指令存储器和数据存储器合并在一起。
主要特点就是程序和数据共用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,采用单一的地址及数据总线,程序指令和数据的宽度相同。
这样,处理器在执行指令时,必须先从存储器中取出指令进行译码,再取操作数执行运算。
总体来说ARM7体系结构具有三级流水、空间统一的指令与数据Cache、平均功耗为0.6mW/MHz、时钟速度为66MHz、每条指令平均执行1.9个时
钟周期等特性。
其中的ARM710、ARM720和ARM740为内带Cache的ARM核。
ARM7指令集同Thumb指令集扩展组合在一起,可以减少内存容量和系统成本。
同时,它还利用嵌入式ICE调试技术来简化系统设计,并用一个DSP增强扩展来改进性能。
ARM7体系结构是小型、快速、低能耗、集成式的RISC内核结构。
该产品的典型用途是数字蜂窝电话和硬盘驱动器等,目前主流的ARM7内核是ARM7TDMI、ARM7TDMI-S、ARM7EJ-S、ARM720T。
现在市场上用得最多的ARM7处理器有Samsung公司的S3C44BOX
与S3C4510处理器、Atmel公司的AT91FR40162系列处理器、Cirrus公司的EP73xx系列等。
通常来说前两三年大部分手机基带部分的应用处理器基本上都以ARM7为主。
还有很多的通信模块,如CDMA模块、GPRS模块和GPS模块中都含有ARM7处理器。
2.ARM9、ARM9E处理器
ARM9处理器采用ARMV4T(哈佛)体系结构。
这种体系结构是一种将程序指令存储和数据存储分开的存储器结构,是一种并行体系结构。
其主要特点是程序和数据存储在不同的存储空间中,即程序存储器和数据存储器。
它们是两个相互独立的存储器,每个存储器独立编址、独立访问。
与两个存储器相对应的是系统中的4套总线,程序的数据总线和地址总线,数据的数据总线和地址总线。
这种分离的程序总线和数据总线可允许在一个机器周期内同时获取指令字和操作数,从而提高了执行速度,使数据的吞吐量提高了一倍。
又由于程序和数据存储器在两个分开的物理空间中,因而取指和执行能完全重叠。
ARM9采用五级流水处理及分离的Cache结构,平均功耗为0.7mW/MHz。
时钟速度为120MHz~200MHz,每条指令平均执行
1.5个时钟周期。
与ARM7处理器系列相似,其中的ARM920、ARM940和ARM9E处理器均为含有Cache的CPU核,性能为132MIPS(120MHz时钟,3.3V供电)或220MIPS(200MHz时钟)。
ARM9处理器同时也配备Thumb指令扩展、调试和Harvard总线。
在生产工艺相同的情况下,性能是ARM7TDMI处理器的两倍之多。
常用于无线设备、仪器仪表、联网设备、机顶盒设备、高端打印机及数码相机应用中。
ARM9E内核是在ARM9内核的基础上增加了紧密耦合存储器TCM及DSP部分。
目前主流的ARM9内核是ARM920T、ARM922T、ARM940。
相关的处理器芯片有Samsung公司的S3C2510、Cirrus公司的EP93xx系列等。
主流的ARM9E内核是ARM926EJ-S、ARM946E-S、ARM966E-S等。
目前市场上常见的PDA,比如说PocketPC中一般都是用ARM9处理器,其中以Samsung公司的S3C2410处理器居多。
图11ARM处理器内核流水线
另外按照市场应用,ARM处理器内核大体可以分成如下表的EmbeddedCore、ApplicationCore、SecureCore3个部分,如表1-1所示。
表11ARM处理器分类
处理器内核分类具体的处理器IP核应用市场
EmbeddedCoreARM7TDMI、ARM946E-S、无线、网络应用、汽车
ARM926EJ-S电子
ApplicationCoreARM926EJ-S、ARM1026EJ-S、ARM11消费类市场、多媒体数
码产品
SecureCoreSC110、SC110、SC200、SC210智能卡、身份识别
前面描述了ARM处理器的各种体系结构,接下来简单回顾一下ARM处理器的工作模式及处理器内部的CPU寄存器及异常中断处理等机制。
12)简述ARM处理器的工作状态。
ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:
第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;
第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。
在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。
但ARM微处理器在开始执行代码时,应该处于ARM状态。
进入Thumb状态:
当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令
的方法,使微处理器从ARM状态切换到Thumb状态。
此外,当处理器处于Thumb状态时
发生异常(如IRQ、FIQ、Undef、Abort、SWI等),则异常处理返回时,自动切换到Thumb
状态。
进入ARM状态:
当操作数寄存器的状态位为0时,执行BX指令时可以使微处理器从
Thumb状态切换到ARM状态。
此外,在处理器进行异常处理时,把PC指针放入异常模式
链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。
13)简述ARM微处理器的七种运行模式。
arm处理器有7个处理器模式(x86有3个),用户模式、管理模式、未定义模式、中止模式、特权模式、irq模式,fiq模式。
14)什么是大端模式?
什么是小端模式?
所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;
所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。
例如,16bit宽的数0x1234在Little-endian模式CPU内存中的存放方式(假设从地址0x4000
开始存放)为:
内存地址0x40000x4001
存放内容0x340x12
而在Big-endian模式CPU内存中的存放方式则为:
内存地址0x40000x4001
存放内容0x120x34
注意:
我们常用的X86结构是小端模式。
15)简述ARM指令寻址方式。
寻址方式是根据指令中给出的地址码字段来实现寻找真实操作数地址的方式,ARM处理器有9种基本寻址方式。
寄存器寻址;
2.立即寻址;
3.寄存器偏移寻址;
4.寄存器间接寻址;
5.基址寻址;
6.多寄存器寻址;
7.堆栈寻址;
8.块拷贝寻址;
9.相对寻址。
1、寄存器寻址
MOVR1,R2;
R2->
R1
SUBR0,R1,R2;
R1-R2->
R0
指令执行时直接取出寄存器值操作。
16)简述ARM寄存器组织的特点。
ARM微处理器有37个32位长的寄存器,其中包括30个通用寄存器,6个状态寄存器和一个程序计数器寄存器(PC)。
如图所示,ARM微处理器中将这37个寄存器分成不同的组,在ARM微处理器的每种工作模式下只能使用其中一组寄存器。
我们知道,ARM微处理器共有7种模式,其中用户模式和系统模式拥有物理空间上完全相同的寄存器,而其它5种异常模式都有一些自己独立的寄存器。
从图上可以看出,在用户和系统模式下可以使用R0-R15和CPSR共17个寄存器;
在FIQ模式下可以使用R0-R15,CPSR,CPSR共18个寄存器,其中R8-R14以及SPSR寄存器是FIQ模式专有寄存器,其它寄存器和用户模式共用相同的物理寄存器;
在IRQ、SVC、Undef、Abort模式下可以使用的寄存器都是18个(R0-R15,CPSR,SPSR),其中R13,R14,CPSR是各个模式专有的,其它和用户模式共用相同的物理寄存器。
可见,ARM内核中一共有37个物理上独立的寄存器,在每一种处理器模式中只能访问一组相应的寄存器。
在每组寄存器中:
R13通常用作栈指针寄存器(SP),每一种模式有自己的R13,所以允许每一种异常都有自己的栈指针。
R14用作连接或返回地址寄存器(LR),每一种模式有自己的R14。
R15用作程序计数器(PC),用来保存读取指令的地址。
CPSR(CurrentProgramStatusRegister)存储ARM微处理器当前的状态和模式标志。
嵌入式系统的特点
•嵌入式系统通常是形式多样、面向特定应用的
•嵌入式系统得到多种处理器类型和体系结构的支持
•嵌入式系统通常极其关注成本
•嵌入式系统有实时性和可靠性的要求
•嵌入式系统使用的操作系统一般是适应多种处理器、可剪裁、轻量型、实时可靠、可固化的嵌入式操作系统
•嵌入式系统开发需要专门工具和特殊方法
循环轮询系统适合于慢速和非常快速的简单系统
前后台系统后台是一个循环轮询系统一直在运行。
前台是由一些中断处理过程组成的。
当有一前台事件(外部事件)发生时,引起中断,进行前台处理,处理完成后又回到后台(通常又称主程序)。
系统的性能主要由中断延迟时间(Interruptlatencytime),响应时间(responsetime)和恢复时间(recoverytime)来刻画。
嵌入式系统的应用领域
•消费电子领域通信领域工控、汽车电子、仿真、医疗仪器等国防、航空航天领域。
•嵌入式系统的发展趋势形成行业的标准:
行业性嵌入式软硬件平台。
面向应用领域的、高度集成的、以32位嵌入式微处理器为核心的SOC(SystemOnChip)将成为应用主流。
嵌入式应用软件的开发需要强大的开发工具和操作系统的支持。
嵌入式系统联网成为必然趋势,驱动了大量新的应用。
嵌入式系统向新的嵌入式计算模型方向发展。
嵌入式系统的硬件是以嵌入式微处理器为核心,主要由嵌入式微处理器、总线、存储器、输入/输出接口和设备组成。
传统的微处理器采用的冯·
诺依曼结构将指令和数据存放在同一存储空间中,统一编址,指令和数据通过同一总线访问。
哈佛结构主要特点是程序和数据存储在不同的存储空间中。
嵌入式系统的存储器包括主存和外存。
大多数嵌入式系统的代码和数据都存储在处理器可直接访问的存储空间即主存中。
ARM内核是一种32位RISC微处理器,具有功耗低、性价比高、代码密度高等三大特色。
ARM7相应产品ARM7TDMI,ARM7TDMI-S,ARM720T,ARM7EJ性能特点三级流水性能:
0.9MIPS/MHz,可达到130MIPs(Dhrystone2.1)
世界上最为广泛使用的CPU之一<
100MHz为增加处理器指令流的速度,ARM7系列使用3级流水线
ARM9ARM920T,ARM922T五级流水,性能:
1.1MIPS/MHz,可达300MIPS(Dhrystone2.1),单32-bitAMBAbus接口,支持MMU
100-300MHz
ARM9E五级流水,支持DSP指令。
性能:
1.1MIPS/MHz,可达300MIPS(Dhrystone2.1),高性能AHB,软核(softIP)。
ARM微处理器:
编程模型
•数据类型
–字节型数据(Byte):
数据宽度为8bits
–半字数据类型(HalfWord):
数据宽度为16bits,存取式必须以2字节对齐的方式
–字数据类型(Word):
数据宽度为32bits,存取式必须以4字节对齐的方式
•ARM处理器有37个寄存器
–31个通用寄存器:
程序计数器、堆栈及其他通用寄存器
–6个状态寄存器
•这些寄存器不能同时看到
•不同的处理器状态和工作模式确定哪些寄存器是对编程者是可见的
影子寄存器是指该寄存器在不同的模式下对应的物理寄存器
–异常是由内部或者外部原因引起的,当异常发生时CPU将暂停执行当前指令自动到指定的向量地址读取指令并且执行。
在X86上,当有异常发生时CPU是到指定的向量地址读取要执行的程序的地址
–而ARM是到向量地址的地方读取指令,也就是ARM的向量地址处存放的是一条指令(一般是一条跳转指令)
䦋㌌㏒㧀좈琰茞ᓀ㵂Ü
存储器映射编址
I/O映射方式
优点
•可采用丰富的内存操作指令访问I/O单元
•无需单独的I/O地址译码电路
•无需专用的I/O指令
•I/O单元不占用内存空间
•I/O程序易读
缺点
•外设占用内存空间
•I/O程序不易读
I/O操作指令仅有单一的传送指令,I/O接口需有地址译码电路
举例
ARM中,I/O端口与内存单元统一编址
Intel80X86系列,I/O端口与内存单元分开编址,I/O端口有自己独立的地址空间,其大小为64KB
总线是CPU与存储器和设备通信的机制,是计算机各部件之间传送数据、地址和控制信息的公共通道。
•MIPS指令集体系ISA(MIPSInstructionSetArchitecture)
–从最早的MIPSIISA开始发展,到MIPSVISA,再到现在的MIPS32和MIPS64结构,其所有版本都是与前一个版本兼容的。
–在MIPSIII的ISA中,增加了64位整数和64位地址。
–在MIPSIV和MIPSV的ISA中增加了浮点数的操作等
MIPS:
指令体系
–MIPSIMIPSVMIPS32和MIPS64结构,其所有版本都是与前一个版本兼容的。
–MIPS32和MIPS64体系是为满足高性能、成本敏感的需求而设计的。
–MIPS32体系是基于MIPSII的,并从MIPSIII、MIPSIV和MIPSV中选择一些指令以增强数据和代码的有效操作。
–MIPS64体系是基于MIPSV并与MIPS32体系兼容的。
PCI总线是地址、数据多路复用的高性能32位和64位总线。
2.1版本定义了64位总线扩展和66MHz总线时钟的技术规范。
从数据宽度上看,PCI总线有32bit、64bit之分
从总线速度上分,有33MHz、66MHz两种
•与ISA总线不同,PCI总线的地址总线与数据总线是分时复用的,支持即插即用(PlugandPlay)、中断共享等功能。
•分时复用的好处是一方面可以节省接插件的管脚数,另一方面便于实现突发数据传输。
电子盘采用半导体芯片来存贮数据,具有体积小、功耗低和极强的抗震性等特点。
•在嵌入式系统中普遍采用各种电子盘作为外存。
•常用的电子盘有:
NandFlash、MMC、SD、MemeoryStick、CF、SM、DOC等。
•在嵌入式系统中普遍采用各种电子盘作为外存
NandFlash是FlashMemory的一种。
•NandFlash可独立成为外存,也可组成其他各种类型的电子盘如USB盘、CF、SD和MMC存储卡等。
•NandFlash强调降低每比特的成本,更高的性能,并且像磁盘一样可以通过接口轻松升级。
NandFlash具有容量大、回写速度快、芯片面积小等特点,主要用于外存
NORFlash具有随机存储速度快、电压低、功耗低、稳定性高等特点,主要用于主存。
•
嵌入式操作系统体系结构
•体系结构是操作系统的基础,它定义了硬件与软件的界限、内核与操作系统其它组件(文件、网络、GUI等)的组织关系、系统与应用的接口。
•体系结构是确保系统的性能、可靠性、灵活性、可移植性、可扩展性的关键,就好比房子的梁架,只有梁架搭牢固了才提得上房子的质量,再做一些锦上添花的工作才有意义。
•目前操作系统的体系结构可分为:
单块结构、层次结构和客户/服务器(微内核)结构。
目前嵌入式操作系统主要采用分层和模块化相结合的结构或微内核结构
嵌入式软件运行流程
上电复位
板级初始化远程升级
引导/升级系统系统升级
系统初始化本地升级
应用初始化
多任务应用基于多任务操作系统的嵌入式软件的主要运行流程该运行流程主要分为5个阶段
•内核是嵌入式操作系统的基础,也是必备的部分。
•内核还提供特定的应用编程接口,但目前没有统一的标准。
•任务管理,内存管理,通信、同步和互斥机制,中断管理,时间管理,任务扩展功能。
•5
•在嵌入式实时系统中
•任务(task)通常为进程(process)和线程(thread)的统称
•任务是调度的基本单位
轻量级进程或线程:
调度执行的单位
进程:
资源分配的单位
线程是进程内部一个相对独立的控制流,由线程上下文和需要执行的一段程序指令构成
在进程中,所有线程共享该进程的状态和资源,可以访问相同的数据
•任务是一个具有独立功能的无限循环的程序段的一次运行活动,是实时内核调度的单位,具有以下特性:
•任务主要包含以下内容:
–代码:
一段可执行的程序
–数据:
程序所需要的相关数据(变量、工作空间、缓冲区等)
–堆栈
–程序执行的上下文环境
任务与程序的区别:
任务能真实地描述工作内容的并发性,而程序不能;
–程序是任务的组成部分
•除程序外,任务还包括数据、堆栈及其上下文环境等内容;
–程序是静态的,任务是动态的;
–任务有生命周期,有诞生、有消亡,是短暂的;
而程序是相对长久的;
–一个程序可对应多个任务,反之亦然;
–任务具有创建其他任务的功能,而程序没有。
调度用来确定多任务环境下任务执行的顺序和在获得CPU资源后能够执行的时间长度。
操作系统通过一个调度程序来实现调度功能。
–调度程序以函数的形式存在,用来实现操作系统的调度算法。
–调度程序本身并不是一个任务,是一个函数调用,可在内核的各个部分进行调用。
调度
简单是实时内核所强调的主要特点
复杂的、高级的调度算法则通常用于研究领域
内核的主要职责就是要确保所有的任务都能够满足任务的时间约束特性要求
能够同时适应所有情况的调度算法是不存在的。
优先级反转(priorityinversion):
高优先级任务需要等待低优先级任务释放资源,而低优先级任务又正在等待中等优先