嵌入式第二章课后习题上课讲义.docx
《嵌入式第二章课后习题上课讲义.docx》由会员分享,可在线阅读,更多相关《嵌入式第二章课后习题上课讲义.docx(9页珍藏版)》请在冰豆网上搜索。
嵌入式第二章课后习题上课讲义
嵌入式第二章课后习题
第二章
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内部有哪些寄存器及特点。
答:
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。
特点:
在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;对于地址为A的半字单
元,其中字节的低位字节到高位字节地址顺序为A,A+1。
即数据的高字节存放在高地址中的顺序进行存储。
0x21
0x43
0x65
0x87
0x21
0x43
0x65
0x87
上图中,左侧为大端存储模式,右侧为小端存储模式。