西安邮电大学嵌入式课后答案Word文件下载.docx
《西安邮电大学嵌入式课后答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《西安邮电大学嵌入式课后答案Word文件下载.docx(28页珍藏版)》请在冰豆网上搜索。
硬件抽象层是介于硬件层与软件层之间的中间层,它将系统上层软件与底层硬件分离开来,具有以下两个特点:
⑴硬件相关性:
因为嵌入式实时系统的硬件环境具有应用相关性,而作为上层软件与硬件平台之间的接口,硬件抽象层需要为操作系统提供操作和控制具体硬件的方法。
⑵操作系统相关性:
不同的操作系统具有各自的软件层次结构,因此,不同的操作系统具有特定的硬件接口形式。
4.简述嵌入式处理器的硬件组成?
答:
随着集成电路集成度的不断提高,嵌入式系统板级的硬件电路模块也越来越多的集成到芯片部,目前处理器芯片部的电路模块组成如下:
⑴处理器核,以CPU为核心,有的还包含MMU(存储器管理单元)、Cache(高速缓存)、ICE(在线仿真)等电路模块。
⑵DSP/协处理器,对于多媒体处理的处理器,部一般有DSP(数字信号处理)、浮点运算、图像加速等协处理器。
⑶RAM/ROM,在单片机处理器中,处理器芯片部一般集成了ROM(只读存储器)和RAM(可读可写存储器)。
⑷处理器部控制电路,如PLL(锁相环)、复位、DMA(直接存储器存取)、中断控制器、低功耗控制、看门狗等电路。
⑸芯片部接口电路,如GPIO(通用输入、输出)接口、I2C(双向两线制的串行总线)接口、IIS(音频总线)接口、SPI(串行外设接口)、USB(通用串行总线)接口、LCD(液晶显示)接口、ADC/DAC(模数/数模转换)、UART(通用异步收发器)、IrDA(红外接口)、CAN(控制器局域网络)总线接口、以太网接口、Timer/RTC(定时器/计数器)接口等电路模块。
5.嵌入式处理器分那几类?
它们有何特点?
答:
⑴嵌入式微处理器。
特点:
处理能力强,具有较高的性能,价格也相应较高。
⑵嵌入式微控制器。
主要用于嵌入式体统工业的主流,跟嵌入式微处理器相比,微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降,可靠性提高。
并且价格低廉,功能优良,拥有的品种和数量最多。
⑶嵌入式DSP处理器。
DSP处理器是专门用于信号处理方面的处理器,在系统结构和指令算法方面进行了特殊设计,具有很高的编译效率和指令的执行速度。
⑷SoC片上系统。
①实现了软硬件无缝结合,直接在处理器片嵌入操作系统的代码模块
②具有极高的综合性,在一个硅片部运用VHDL等硬件描述语言,实现一个复杂的系统
③绝大部分系统构件在系统部,系统简洁,减少了系统的体积和功耗,提高了系统的可靠性跟设计生产效率。
6.分析目前市场上常用的几种嵌入式处理器,说明不同嵌入式处理器的各自特点?
目前市场上常用的嵌入式处理器有MCS51单片机,ARM处理器,MIPS处理器,PowerPC处理器,MC68000处理器,X86处理器等。
MCS51的特点是,8位CPU,片振荡器,4KBROM,128KBRAM,21个特殊功能寄存器,32根I/O总线,片外可寻找围分别为64KB的外部程序和数据,两个16位的定时/计数器,一个全双工串口接口,中断结构分为两级优先级,5个中断源,适于按位逻辑运算的处理器。
ARM处理器的特点是,体积小,功耗低,成本低,高性能,支持16/32位双指令集,在全球有众多合作伙伴。
MIPS处理器的特点是,高性能,高档次的处理器,有32位和64位的处理器,简化硬件设计,强调软硬件协同提高性能。
PowerPC处理器特点,具有优异的性能,低能量消耗,低散热量。
MC68000处理器,是一个16/32位的CISC处理器,采用32位总线和寄存器,这个结构对之后的32为产品保持兼容。
X86处理器的特点,可变指令长度的CISC处理器,允许不对齐访问存储器。
7.举例说明嵌入式处理器的性能指标?
并分析对嵌入式系统的影响?
性能指标主要有主频,处理器字长,数据通路速度,运算速度,高速缓存和处理器的系统架构。
主频,执行每条指令的时钟周期数一定,主频越高单位时间执行的指令越多。
处理器字长,处理器部数据运算的基本位数,反映的是计算精度,以及单次处理数据的总长度;
数据通路速度,读取指令数据传输计算数据的速度越高,处理器性能越好。
运算速度,用MIPS(每秒执行多少百万条指令)表示,MIPS越大,说明运算速度越快;
高速缓存,突破主存访问速度的瓶颈,提高处理器的综合性能。
8.简述你对嵌入式操作系统的认识,分析嵌入式操作系统有哪些特点?
嵌入式操作系统EOS是一种支持嵌入式系统应用的操作系统软件,它是嵌入式系统(包括软硬件系统)极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统核、设备驱动接口、通信协议、图形界面、标准化浏览器等。
EOS是相对于一般操作系统而言的,它除具备了一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件功能等之外,还有以下特点:
⑴可装卸性,开放性、可伸缩性的体系结构。
⑵强实时性,EOS实时性一般较强,可用于各种控制系统中。
⑶统一的接口,提供各种设备驱动接口。
⑷操作方便、简单,提供友好的图形GUI,追求易学易用。
⑸提供强大的网络功能,支持TCP/IP协议及其他协议,提供TCP/UDP/IP/PPP协议支持及统一的MAC访问层接口,为各种移动计算设备预留接口。
⑹强稳定性,弱交互性。
⑺固化代码。
⑻更好地硬件适应性,也就是良好的移植性。
9.试分析实时操作系统中可抢占型和不可抢占型有何区别?
并举例说明。
实时操作系统可分为可抢占型和不可抢占型两类。
对于基于优先级的系统而言,可抢占型的实时操作系统是指核可以抢占正在运行任务的CPU使用权并将使用权交给进入就绪态的优先级更高的任务,是核抢了CPU让别的任务运行。
不可抢占型实时操作系统使用某种算法以决定让某个任务运行后,就把CPU的控制权完全交给该任务,直到它主动将CPU控制权还回来。
比如嵌入式操作系统uC/OS,可以根据优先级进行抢占使用CPU,优先级高的任务可以比优先级低的任务优先使用CPU。
10.简述嵌入式系统的开发过程?
嵌入式系统的开发过程可以分为需求分析、建立开发环境、体系结构设计、软件/硬件设计、系统集成和系统优化与测试6个阶段。
如果设计的流程是从需求分析开始,然后是建立开发环境,依次进行,最后是系统优化与测试,那么就叫做自上而下的设计流程;
反之就叫做自下而上的设计流程。
所有的嵌入式系统设计不可避免的设计这六个阶段,更重要的是找到一个好的设计方法,目前一种比较好的设计方法是采用计算机辅助设计工具。
11.简述在线仿真器ICE和在线调试器ICD有何区别?
在线仿真器ICE是一种模拟CPU的设备,能执行CPU的全部动作。
采用该方式调试时,利用仿真头代替目标板上的CPU,可以完全仿真CPU的行为。
在线调试器ICD是将CPU的调试功能的引脚引出来,让外部的硬件直接连接到这些引脚上去监控整个CPU的动作。
12.试分析嵌入式系统测试中的纯软件测试过程,举例说明实现方法。
纯软件测试过程是指用工具采用软件打点技术,在被测试代码中加入一些函数,这些函数用来完成数据的生成,并将数据送往目标机系统的共享存中,同时,在目标机系统中运行一个与处理任务,用于完成这些数据的预处理,然后将处理过的数据通过目标机的串口,网口或者USB口送往宿主机测试平台。
举例,可以在程序中间插入函数,读出当前所有寄存器容,发送至目标机系统,测试者可以根据这些数据了解系统执行情况。
习题2
1.按照ARM处理器的命名规则,说明ARM7TDMI中T、D、M、I的含义。
T:
支持16位的Thumb指令集;
D:
支持JTAG片上调试;
M:
支持长乘法操作(64位结果)的ARM指令,包含快速乘法器;
I:
带有嵌入式追踪宏单元ETM(EmbeddedTraceMacro),用来设置断点和观察点。
2.什么是哈佛结构?
与普林斯顿结构有何区别?
哈佛结构是一种将程序中指令和数据分开存储的存储器结构。
即哈佛结构中程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。
普林斯顿结构(·
诺伊曼结构)是一种将程序指令存储器和数据存储器合并在一起的存储器结构。
程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置。
这便是。
这便是两种结构的区别。
3.什么是RSIC?
什么是CSIC?
简述他们的特点与差别。
RSIC是精简指令集计算机,CISC是复杂指令集计算机。
两者的区别在于不同的CPU设计理念和方法。
对于CISC:
⑴在CSIC结构的指令系统中,各种指令的使用频率相差悬殊。
有80%的指令只在20%的运行时间才会用到。
⑵CISC结构指令系统的复杂性带来了计算机体系结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。
⑶在CISC结构指令系统中,由于各条指令的功能不均衡性,不利于采用先进的计算机体系结构技术来提高系统的性能。
对于RISC:
⑴简化指令集,只保留常用的基本指令;
⑵设计大量的通用存储器,减少访存的次数;
⑶采用装载/保存结构,支持流水线技术,使每个周期时间相等;
⑷采用简单的指令格式、规整的指令字长和简单的寻址方式;
⑸单机器周期指令,即大多数的指令都可以在一个机器周期完成,并且允许处理器在同一时间执行一系列的指令。
4.ARM7处理器是几级流水线?
在ARM7处理器中,“PC指向的是下一条要执行的指令”,这句话对吗?
为什么?
ARM7处理器采用三级流水线。
“PC指向的是下一条要执行的指令”,这句话不对。
在ARM处理器中将PC程序计数器定义到R15寄存器,无论处理器处于何种状态,PC总是指向“正在取值”指令的地址,一般来说,人们习惯性的约定将“正在执行的指令作为参考点”,成为当前第一条指令,那么PC总是指向随后的第三条指令,或者说PC总是指向当前正在执行的指令地址再加上2条指令的地址,即指向正在执行指令的下下一条指令,而不是指向下一条要执行的指令。
5.简述ARM处理器中在线仿真器模块EmbeddedICE-RT的作用。
ARM处理器中的在线仿真器模块EmbeddedICE-RT,一般还带有嵌入式宏跟踪单元模块ETM,实现ARM处理器的在线调试和运行过程的跟踪功能;
并且具有诸多ICE功能,例如实时寻址、断点、单步、对ARMCPU的完全控制、对ASIC系统其余部分的访问,以及对主机显示器外设访问、键盘输入和磁盘存储。
6.ARM处理器的工作状态分为哪二种?
ARM处理器又是怎么定义和标志的?
ARM处理器的工作状态分为ARM状态和Thumb状态,这两种状态有程序状态字CPSR中T标志位确定,为0时处理器工作在ARM状态,为1时处理器工作在Thumb状态。
7.ARM7TDMI支持哪几种指令集,各有什么特点?
ARM7TDMI处理器核包含2套指令系统,分别为ARM指令集和Thumb指令集,两种指令集的特点是:
ARM指令集:
处理器执行32位字对齐方式的ARM指令,每条ARM指令长度为32位,指令的功能强大。
Thumb指令集:
处理器执行16位字对齐方式的Thumb指令,每条Thumb指令长度为16位,是ARM指令功能的子集。
8.ARM7处理器有哪些工作模式?
如何实现不同模式之间的切换?
举例说明。
ARM处理器供支持7种工作模式,分别为:
用户模式(usr);
快速中断模式(fiq);
外部中断模式(irq);
管理模式(svc);
数据访问终止模式(abt);
系统模式(sys);
未定义指令中止模式(und)。
在7中模式中,除用户模式外,其他的6种模式称为特权模式,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。
特权模式下通过修改当前程序状态寄存器CPSR中控制位M[4:
0]的值,来改变处理器的运行模式。
例如
MSRCPSR_c,#(NoInt|SVC32Mode)//从系统模式切换到管理模式
MSRCPSR_c,#(NoInt|SYS32Mode)//从管理模式切换到系统模式
9.描述ARM7处理器的部寄存器结构,并分别说明快速中断FIQ有何特点?
ARM7微处理器共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器。
37个寄存器定义如下:
⑴31个通用寄存器:
R0~R15、R8_fiq、R9_fiq、R10_fiq、R11_fiq、R12_fiq、R13_fiq、R14_fiq、R13_svc、R14_svc、R13_abt、R14_abt、R13_und、R14_und、R13_irq、R14_irq。
⑵6个状态寄存器:
CPSR、SPSR_abt、SPSR_svc、SPSR_irq、SPSR_fiq、SPSR_und。
快速中断FIQ,适用于对一个突发事件的快速响应,在ARM状态中,快中断有8个专用的寄存器,可以缩短状态切换时需要的时间。
当CPSR中相应的F位清零,快速中断被使能。
10.什么是中断延时?
在实时系统中如何计算中断延时时间?
中断延时是系统响应一个中断所需要的时间,即从外部中断请求信号发出到执行对应的中断服务程序ISR的第1条指令所需要的时间。
FIQ的中断延时计算,当FIQ使能时,最坏的延时包括:
a)Tsyncmax:
请求通过同步器的最长时间,为两个处理器周期。
b)Tldm:
最长执行时间,最长为20个周期。
c)Texc:
数据中止异常进入时间,为三个周期。
d)Tfiq:
FIQ进入时间,为两个周期
总的延时可为27个周期。
11.在存的数据存储过程中,什么是“字对齐”和“半字对齐”?
在存数据存储过程中,一般分为小端存储格式和大端存储格式。
下面以小端存储格式为例来说明字对齐和半字对齐:
在小端存储格式中,对于地址为A的字单元,其中字节的低位字节到高位字节地址顺序为A,A+1,A+2,A+3;
对于地址为A的半字单元,其中字节的低位字节到高位字节地址顺序为A,A+1。
12.简述程序计数器(PC)在处理器工作中的作用。
在ARM处理器中将PC程序计数器定义到R15寄存器,无论处理器处于何种状态,PC总是指向“正在取值”指令的地址。
13.简述ARM处理器中的返回寄存器(LR)在处理器工作中的作用。
寄存器LR用于保存子程序返回地址或者异常处理程序的返回地址,LR寄存器一共有6个,其中子程序的返回地址使用一个R14,每种异常模式各自有一个专用的LR寄存器用于保存异常处理程序的返回地址,它们分别为R14_fiq、R14_svc、R14_abt、R14_und、R14_irq。
14.分别简述ARM处理器中的CPSR、SPSR在处理器工作中的作用。
ARM核包含1个CPSR和5个仅供异常处理模式使用的SPSR。
由于所有模式全部共享一个程序状态寄存器CPSR,因此处理器所有的状态全部都保存在CPSR中,也就是ARM核是通过CPSR来监视和控制部操作的。
每种异常模式都有一个对应的程序状态保存寄存器SPSR,用于保存任务在异常发生之前的CPSR状态的当前值。
15.结合CPSR的结构,说明程序状态字中各个bit位的作用。
⑴条件代码标志(共计4bit)含义如下:
N:
运算结果的最高位反映在该标志位。
对于有符号二进制补码,结果为负数时N=1,结果为正数或零时N=0;
Z:
指令结果为0时Z=1(通常表示比较结果“相等”),否则Z=0;
C:
当进行加法运算,最高位产生进位时C=1,否则C=0。
当进行减法运算(包括CMP指令),最高位产生借位时C=0,否则C=1。
V:
当进行加法/减法运算,并且发生有符号溢出时V=1,否则V=0,其它指令V不变。
⑵CPSR的最低8位为控制位,控制了处理器的工作方式。
当发生异常时,这些位被硬件改变。
当处理器处于一个特权模式时,可用软件操作这些位。
它们分别是:
中断禁止位包括I和F位:
当I位置位时,IRQ中断被禁止;
当F位置位时,FIQ中断被禁止。
T位反映了处理器的当前状态:
当位T=1时,处理器正在Thumb状态下运行;
当位T=0时,处理器正在ARM状态下运行。
模式位包括M[4:
0]共计5bit,这些位决定处理器的操作模式
16.简述ARM7TDMI部有哪些寄存器及特点。
R0~R15、R8_fiq、R9_fiq、R10_fiq、R11_fiq、R12_fiq、R13_fiq、R14_fiq、R13_svc、R14_svc、R13_abt、R14_abt、R13_und、R14_und、R13_irq、R14_irq。
在ARM状态中,R0~R7是通用寄存器,是不分组寄存器;
R8~R14,SPSR根据模式进行分组的寄存器;
R15是程序计数器,不进行分组;
CPSR是状态寄存器,不进行分组。
17.什么是ARM处理器的异常?
ARM处理器中有哪几种异常?
在ARM中,异常是一些事件,这些事件能导致正常的程序执行流程被暂时地停止,而进入到该事件对应的处理器异常模式并对该事件进行处理。
ARM中定义了复位、未定义指令、SWI(软中断)、预取指终止、预取数终止、irq以及fiq等7种异常,与之对应地ARM7处理器有5种异常模式。
18.分别简述ARM7的IRQ、FIQ异常处理过程,说明其异常向量地址。
IRQ异常的处理流程如下:
⑴进入IRQ异常模式。
程序运行在用户模式下,当一个IRQ异常中断发生时,核切换到“中断模式”,并自动的做如下处理。
①将异常处理程序的返回地址保存到异常模式下的R14(R14_irq)中。
②用户模式的CPSR将被保存到中断异常模式SPSR_irq中。
③修改CPSR,将I置1,禁止新的IRQ中断产生,但不改变F值,不限制FIQ中断发生,清零T标志位,进入ARM状态,修改模式位,设置为IRQ模式。
④将IRQ异常中断入口向量地址0x00000018送入PC。
⑤在IRQ模式下,用户模式的R13和R14将不能操作,而R13_irq和R14_irq可以操作,即R13_irq保存IRQ模式下的地址指针,R14_irq保存了“IRQ中断返回地址+4”。
⑵退出IRQ异常模式。
中断服务程序执行完毕后,使用一条指令将返回地址送入PC,即可实现IRQ中断返回,在返回过程中处理器会自动将SPSR_irq中的容复制到CPSR,恢复中断前的处理器状态。
FIQ异常进入与退出的流程与IRQ类似,其异常入口地址是0x0000001C。
19.ARM7处理器对哪些异常可以进行屏蔽?
如何屏蔽或允许?
FIQ和IRQ可以被屏蔽。
将CPSR的标志位I和F分别置位对应着IRQ和FIQ中断被禁止,清零这些位又可以将其使能。
20.说明CPSR中T位的作用,ARM7处理器如何切换状态?
CPSR中T标志位为0时处理器工作在ARM状态,为1时处理器工作在Thumb状态。
由于ARM采用字对齐或者半字对齐的存储模式,这意味着地址的最低一个比特位就不会在寻址过程中使用到。
故,使用地址的最低位进行区分,以何种模式取值和执行指令,当地址地位为1时,置CPSR的T位为1,反之,置位为0。
21.大端存储模式和小端存储模式的含义是什么?
画出在0x2000单元中存储0x87654321数据的大端存储模式和小端存储模式。
大端存储模式:
在大端存储格式中,对于地址为A的字单元,其中字节的低位字节到高位字节地址顺序为A+3,A+2,A+1,A;
对于地址为A的半字单元,其中字节的低位字节到高位字节地址顺序为A+1,A。
即数据的低字节存放在高地址中的顺序进行存储。
小端存储模式:
在小端存储格式中,对于地址为A的字单元,其中字节的低位字节到高位字节地址顺序为A,A+1,A+2,A+3;
即数据的高字节存放在高地址中的顺序进行存储。
上图中,左侧为大端存储模式,右侧为小端存储模式。
习题3
1、ARM7TDMI支持哪几种指令集,各有什么特点?
支持ARM指令集和Thumb指令集,各自特点是ARM指令集的指令是32位,执行效率高、功能全,每条指令可以根据条件执行,但是代码密度低。
Thumb指令集指令是16位,在功能上是ARM指令集的子集,功能并没有降低。
2、ARM指令的寻址方式有几种?
并指出下列指令中的寻址方式。
ARM指令的寻址方式有8种,分别为立即寻址、寄存器寻址、寄存器移位寻址、寄存器间接寻址、基址变址寻址、相对寻址、多寄存器寻址、堆栈寻址。
⑴SUBR0,R1,R2寄存器寻址⑵LDRR0,[R2]寄存器间接寻址
⑶MVNR0,#0x0F2立即寻址⑷LDMIAR0,{R1-R5}多寄存器寻址
⑸STRR2,[R4,#0x02]!
基址变址寻址⑹LDRR1,[R2,R3]基址变址寻址
⑺MOVR1,R1,ROR#2寄存器移位寻址
⑻LDRR1,[R3],#0x04基址变址寻址
3、简述ARM指令集中第2个操作数(operand2)的三种形式。
⑴常数表达方式。
该常数必须对应8位位图,即常数是由一个8位的常数循环右移偶数位得到。
例如:
MOVR2,#100;
⑵寄存器方式。
Operand2是Rm寄存器方式,在寄存器方式下操作数即位寄存器中的数值。
SUBR0,R1,R2;
⑶寄存器移位方式。
Rm,shift表示将寄存器的移位结果作为操作数,但Rm值保持不变。
MOVR0,R1,RRX;
将R1带扩展的循环右移1位,存入R0中。
4、指出下列指令是否正确,若不正确请说明原因。