第一范文网 - 专业文章范例文档资料分享平台

西安邮电大学嵌入式课后答案

来源:用户分享 时间:2025/11/22 4:12:38 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

态。

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]的值,来改变处理器的运行模式。

例如

MSR CPSR_c,#(NoInt |SVC32Mode)//从系统模式切换到管理模式 MSR CPSR_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)在处理器工作中的作用。

5

答:在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位的作用。

3130292827876543210NZCV----------IFTM4M3M2M1M0答:⑴条件代码标志(共计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根据

6

模式进行分组的寄存器;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。即数据的高字节存放在高地址中的顺序进行存储。 0x2000 0x21 0x2003 0x21

0x43 0x43

0x65 0x65

0x2003 0x87 0x2000 0x87

7

上图中,左侧为大端存储模式,右侧为小端存储模式。

习题3

1、 ARM7TDMI支持哪几种指令集,各有什么特点?

答:支持ARM指令集和Thumb指令集,各自特点是ARM指令集的指令是32位,执行效率高、功能全,每条指令可以根据条件执行,但是代码密度低。Thumb指令集指令是16位,在功能上是ARM指令集的子集,功能并没有降低。 2、 ARM指令的寻址方式有几种?并指出下列指令中的寻址方式。

答:ARM指令的寻址方式有8种,分别为立即寻址、寄存器寻址、寄存器移位寻址、寄存器间接寻址、基址变址寻址、相对寻址、多寄存器寻址、堆栈寻址。 ⑴ SUB R0, R1, R2 寄存器寻址 ⑵ LDR R0, [R2] 寄存器间接寻址 ⑶ MVN R0, #0x0F2 立即寻址 ⑷ LDMIA R0, {R1-R5} 多寄存器寻址 ⑸ STR R2, [R4, #0x02]! 基址变址寻址 ⑹ LDR R1, [R2, R3] 基址变址寻址 ⑺ MOV R1, R1, ROR #2 寄存器移位寻址 ⑻ LDR R1, [R3], #0x04 基址变址寻址

3、 简述ARM指令集中第2个操作数(operand2)的三种形式。

答: ⑴ 常数表达方式。该常数必须对应8位位图,即常数是由一个8位的常数循环右移偶数位得到。例如:MOV R2,#100;

⑵ 寄存器方式。Operand2是Rm寄存器方式,在寄存器方式下操作数即位寄存器中的数值。例如:SUB R0,R1,R2;

⑶ 寄存器移位方式。Rm,shift 表示将寄存器的移位结果作为操作数,但Rm值保持不变。例如:MOV R0,R1,RRX;将R1带扩展的循环右移1位,存入R0中。

4、 指出下列指令是否正确,若不正确请说明原因。

⑴ MOVS R1, 101 不正确,立即寻址方式应该是#101 ⑵ MVN R1, #0x10F 正确

⑶ STMDA R11, {R2-R8}! 不正确,不能同时存储在R2和R8中 ⑷ ADD R0!, R2, #4 正确

⑸ LDR R4, [R5]! 不正确,LDR是存储到单个寄存器的加载指令,而这个是两个存储器都进行存储,应该为 LDR R4, [R5]

⑹ MRS PC, CPSR 不正确MRS是将CPSR传送到通用寄存器中,但这里的通用寄存器不包括R15,即PC

⑺ LDMFDS R0!, { R5-R8, R2} 正确

⑻ ADD R3, [R3], R7 不正确,ADD指令不能访问存储器 (9) LDR R11, [R15,R8] ! 正确 (10) BXS R0 正确

5、 何谓ARM指令的条件码?默认的条件码是什么?举例说明ARM指令的条件码对指

令执行的影响。

答:所谓的ARM指令的―条件执行‖是指在指令码中含有本条指令的执行条件,当CPSR中的条件码标志满足时,处理器执行本条指令,否则本条指令不执行。默认是无条件执行。

比如执行指令“ANDEQ R2,R1,R3”时,如果CPSR中的Z=1时,执行R2=R1&R3,

8

搜索更多关于: 西安邮电大学嵌入式课后答案 的文档
西安邮电大学嵌入式课后答案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c6kibn1zlai3y3j84w1jv_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top