中北大学嵌入式习题答案第2章.docx
《中北大学嵌入式习题答案第2章.docx》由会员分享,可在线阅读,更多相关《中北大学嵌入式习题答案第2章.docx(9页珍藏版)》请在冰点文库上搜索。
中北大学嵌入式习题答案第2章
中北大学嵌入式习题答案第2章
第二章ARM体系结构
一、填空
1、ARM微处理器支持7种运行模式为、、、、、、。
用户模式(usr):
ARM处理器正常的程序执行状态
快速中断模式(fiq):
用于高速数据传输或通道处理
外部中断模式(irq):
用于通用的中断处理
管理模式(svc):
操作系统使用的保护模式
数据访问终止模式(abt):
当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。
系统模式(sys):
运行具有特权的操作系统任务。
未定义指令中止模式(und:
当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。
2、嵌入式微处理器的体系结构可以采用或结构,指令系统可以选
和。
3、ARM系列微处理器支持的边界对齐格式有:
、和字对齐。
字节对齐
半字对齐
4、RS-232C的帧格式由四部分组成,包括:
起始位、、奇偶校验位和。
数据位
停止位
5、ARM微处理器有种工作模式,它们分为两类、。
其中用户模式属于。
七
非特权模式
特权模式
非特权模式
6、ARM7TDMI采用级流水线结构,ARM920TDMI采用级流水线。
3
5
7、ARM支持两个指令集,ARM核因运行的指令集不同,分别有两个状态、,状态寄存器CPSR的位反映了处理器运行不同指令的当前状态。
ARM
Thumb
T
9、ARM处理器共有37个寄存器,包括31个和6个。
通用寄存器(包括PC在内)这些寄存器都是32位的
状态寄存器这些寄存器也是32位的,但是只使用了其中的12位
二、选择题
1、下面哪一种工作模式不属于ARM特权模式()。
A、用户模式B、系统模式C、软中断模式D、FIQ模式
2、ARM920T的工作状态包括()。
A、测试状态和运行状态B、挂起状态和就绪状态
C、就绪状态和运行状态D、ARM状态和Thumb状态
3、RS232-C串口通信中,表示逻辑1的电平是()。
A、0vB、3.3vC、+5v~+15vD、-5v~-15v
4、在嵌入式ARM处理器中,下面哪种中断方式优先级最高。
()
A.ResetB.数据中止C.FIQD.IRQ
5、当异常发生时,寄存器()用于保存CPSR的当前值,从异常退出时则可由它来恢复CPSR.
A、SPSRB、R13C、R14D、R15
6、CPSR寄存器中反映处理器状态的位是()
A.J位 B.I位 C.F位D.T位
7、以下哪一项不属于ARM异常中断()
A、复位B、IRQC、条件转移D、.数据终止
8、在ARMLinux体系中,用来处理外设中断的异常模式是()
A、软件中断(SWI)B、未定义的指令异常
C、中断请求(IRQ)D、快速中断请求(FIQ)
9、存储一个32位数0x876165到2000H~2003H四个字节单元中,若以小端模式存储,则2000H存储单元的内容为()。
A、0x00 B、0x87
C、0x65 D、0x61
10、寄存器R13除了可以做通用寄存器外,还可以做()。
A、程序计数器 B、链接寄存器
C、栈指针寄存器 D、基址寄存器
11、FIQ中断的入口地址是( )。
A、0x0000001C B、0x00000008
C、0x00000018 D、0x00000014
12、ARM指令集和Thumb指令集分别是( )位的。
A. 8位,16位 B. 16位,32位
C. 16位,16位 D. 32位,16位
13、寄存器R15除了可以做通用寄存器外,还可以做()
A.程序计数器B.链接寄存器C.堆栈指针寄存器D.基址寄存器
14、下列CPSR寄存器标志位的作用说法错误的是()。
A.N:
负数B.Z:
零C.C:
进位D.V:
借位
15、嵌入式系统最常用的数据传送方式是()。
A、查询B、中断C、DMAD、I/O处理机
16、ARM微处理器的寄存器在Thumb状态与ARM状态下相同的是()
A、R8-R12B、R15和CPSRC、R13-R14D、R0-R7
17、ARM寄存器组中除了以下哪组寄存器以外所有处理器模式下都可以访问()
A、SPSRB、R0-R7C、CPSRD、R8-R9
三、简答
1、请简述ARM微处理器的用户模式和特权模式,以及用户模式向特权模式的转换。
PPT43页
除了用户模式之外的其他6种处理器模式称为特权模式
特权模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换。
特权模式中,除系统模式外,其他5种模式又称为异常模式
大多数的用户程序运行在用户模式下,此时,应用程序不能够访问一些受操作系统保护的系统资源,应用程序也不能直接进行处理器模式的切换。
用户模式下,当需要进行处理器模式切换时,应用程序可以产生异常处理,在异常处理中进行处理器模式的切换。
2、请简述ARM微处理器两种工作状态集的切换操作及方法。
PPT48页
进入Thumb状态
当操作数寄存器的状态位为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态。
此外,当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undef等),则异常处理返回时,自动切换到Thumb状态。
进入ARM状态
当操作数寄存器的状态位为0时,执行BX指令时可以使微处理器从Thumb状态切换到ARM状态。
此外,在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。
3、试描述异常发生时的响应的过程。
PPT94-101页
1.在适当的LR中保存下一条指令的地址,当异常入口来自:
·ARM状态,那么ARM将当前指令地址加4或加8复制(取决于异常的类型)到LR中;
·为Thumb状态,那么ARM将当前指令地址加2、4或加8(取决于异常的类型)复制到LR中;异常处理器程序不必确定状态。
将CPSR复制到适当的SPSR中;
3.将CPSR模式位强制设置为与异常类型相对应的值;
4.强制PC从相关的异常向量处取指。
当异常结束时,异常处理程序必须:
1.将SPSR的值复制回CPSR;
2.若在进入异常处理时设置了中断禁止位,要在此清除;
3.将LR(R14)中的值减去偏移量后存入PC,偏移量根据异常的类型而有所不同;
注:
恢复CPSR的动作会将T、F和I位自动恢复为异常发生前的值。
在异常处理结束后,异常处理程序完成以下动作:
将SPSR寄存器的值复制回CPSR寄存器;
将LR寄存的值减去一个常量后复制到PC寄存器,跳转到被中断的用户程序。
4、简述ARM汇编语言与C语言和混合编程有哪几种方式。
PPT205页
汇编程序中调用C程序
C程序中调用汇编程序
C程序中内嵌汇编语句
从汇编程序中访问C程序变量
5、什么是小端和大端存储器组织?
假设一个32位字长的微处理器上定义一个int类型的常量a,其内存地址位于0x6000处,其值用十六进制表示为0x12345678,分别写出以大端和小端存储的结果。
PPT114页
小端存储器系统:
在小端格式中,高位数字存放在高位字节中。
因此存储器系统字节0连接到数据线7~0(低位对齐)。
大端存储器系统:
在大端格式中,高位数字存放在低位字节中。
因此存储器系统字节0连接到数据线31~24(高位对齐)。
6、简述ARM的几个特殊寄存器(R13、R14、R15、R16)的作用。
PPT58-67页
寄存器R13用作堆栈指针,记作SP。
寄存器R13常作为堆栈指针(SP)。
在ARM指令集当中,没有以特殊方式使用R13的指令或其它功能,只是习惯上都这样使用。
但是在Thumb指令集中存在使用R13的指令。
在子程序中寄存器R13不能用作其他用途。
寄存器SP在进入子程序时的值和退出子程序时的值必须相等。
R14为链接寄存器(LR),在结构上有两个特殊功能:
·在每种模式下,模式自身的R14版本用于保存子程序返回地址;如果在子程序中保存了返回地址,寄存器R14则可以用作其他用途。
·当发生异常时,将R14对应的异常模式版本设置为异常返回地址(有些异常有一个小的固定偏移量)。
寄存器R15是程序计数器,记作PC。
它指向正在取指的地址。
可以认为它是一个通用寄存器,但是对于它的使用有许多与指令相关的限制或特殊情况。
如果R15使用的方式超出了这些限制,那么结果将是不可预测的。
它不能用作其它用途。
R16,CPSR为程序状态寄存器,在异常模式中,另外一个寄存器“程序状态保存寄存器(SPSR)”可以被访问。
每种异常都有自己的SPSR,在进入异常时它保存CPSR的当前值,异常退出时可通过它恢复CPSR。
7.简述使用Thumb技术的优点。
PPT46-47页
Thumb指令集具有较高的代码密度,灵活、小巧,却仍然保持ARM的大多数性能上的优势,它是ARM指令集的子集。