第二章 ARM体系结构一、填空1、 ARM微处理器支持7种运行模式为、、、、、、。
用户模式(usr): ARM处理器正常的程序执行状态快速中断模式(fiq):用于高速数据传输或通道处理外部中断模式(irq):用于通用的中断处理管理模式(svc):操作系统使用的保护模式数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。
系统模式(sys):运行具有特权的操作系统任务。
未定义指令中止模式(und:当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。
2、嵌入式微处理器的体系结构可以采用或结构,指令系统可以选和。
·诺依曼体系结构:程序和数据共用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,采用单一的地址及数据总线,程序和数据的宽度相同。
例如:8086、ARM7、MIPS…哈佛体系结构:程序和数据是两个相互独立的存储器,每个存储器独立编址、独立访问,是一种将程序存储和数据存储分开的存储器结构。
例如:AVR、ARM9、ARM10…精简指令系统 RISC复杂指令集系统 CISC3、AMBA定义了3组总线、和。
AHB(AMBA高性能总线):用于高性能。
高数据吞吐部件,如CPU、DMA、DSP之间的连接。
ASB(AMBA系统总线):用来作处理器与外设之间的互连,将被AHB取代。
APB(AMBA外设总线):为系统的低速外部设备提供低功耗的简易互连。
系统总线和外设总线之间的桥接器提供AHB/ASB部件与APB部件之间的访问代理与缓冲。
4、ARM系列微处理器支持的边界对齐格式有:、和字对齐。
字节对齐半字对齐5、RS-232C的帧格式由四部分组成,包括:起始位、、奇偶校验位和。
数据位停止位6、ARM微处理器有种工作模式,它们分为两类、。
其中用户模式属于。
七非特权模式特权模式非特权模式7、ARM7TDMI采用级流水线结构,ARM920TDMI采用级流水线。
358、ARM支持两个指令集,ARM核因运行的指令集不同,分别有两个状态、,状态寄存器CPSR的位反映了处理器运行不同指令的当前状态。
ARMThumbT9、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~-15v4、在嵌入式ARM处理器中,下面哪种中断方式优先级最高。
( )A. ResetB. 数据中止C. FIQD. IRQ5、当异常发生时,寄存器()用于保存CPSR的当前值,从异常退出时则可由它来恢复CPSR.A、SPSRB、R13C、R14D、R156、CPSR寄存器中反映处理器状态的位是()A.J位B.I位C.F位D.T位7、以下哪一项不属于ARM异常中断()A、复位B、IRQC、条件转移D、.数据终止8、在ARM Linux体系中,用来处理外设中断的异常模式是()A、软件中断(SWI)B、未定义的指令异常C、中断请求(IRQ)D、快速中断请求(FIQ)9、存储一个32位数0x876165到2000H~2003H四个字节单元中,若以小端模式存储,则2000H存储单元的容为()。
A、0x00B、0x87C、0x65D、0x6110、寄存器R13除了可以做通用寄存器外,还可以做()。
A、程序计数器B、寄存器C、栈指针寄存器D、基址寄存器11、FIQ中断的入口地址是()。
A、0x0000001CB、0x00000008C、0x00000018D、0x0000001412、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-R717、ARM寄存器组中除了以下哪组寄存器以外所有处理器模式下都可以访问()A、SPSRB、R0-R7C、CPSRD、R8-R9三、简答1、请简述ARM微处理器的用户模式和特权模式,以及用户模式向特权模式的转换。
PPT 43页除了用户模式之外的其他6种处理器模式称为特权模式特权模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换。
特权模式中,除系统模式外,其他5种模式又称为异常模式大多数的用户程序运行在用户模式下,此时,应用程序不能够访问一些受操作系统保护的系统资源,应用程序也不能直接进行处理器模式的切换。
用户模式下,当需要进行处理器模式切换时,应用程序可以产生异常处理,在异常处理中进行处理器模式的切换。
2、请简述ARM微处理器两种工作状态集的切换操作及方法。
PPT 48页进入Thumb状态当操作数寄存器的状态位为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态。
此外,当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undef等),则异常处理返回时,自动切换到Thumb状态。
进入ARM状态当操作数寄存器的状态位为0时,执行BX指令时可以使微处理器从Thumb状态切换到ARM状态。
此外,在处理器进行异常处理时,把PC指针放入异常模式寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。
3、试描述异常发生时的响应的过程。
PPT 94-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语言和混合编程有哪几种方式。
PPT 205页汇编程序中调用C程序C程序中调用汇编程序C程序中嵌汇编语句从汇编程序中访问C程序变量5、什么是小端和大端存储器组织?假设一个32位字长的微处理器上定义一个int类型的常量a,其存地址位于0x6000处,其值用十六进制表示为0x12345678,分别写出以大端和小端存储的结果。
PPT 114页小端存储器系统:在小端格式中,高位数字存放在高位字节中。
因此存储器系统字节0连接到数据线7~0(低位对齐)。
大端存储器系统:在大端格式中,高位数字存放在低位字节中。
因此存储器系统字节0连接到数据线31~24(高位对齐) 。
6、简述ARM的几个特殊寄存器(R13、R14、R15、R16)的作用。
PPT 58-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技术的优点。
PPT 46-47页Thumb指令集具有较高的代码密度,灵活、小巧,却仍然保持ARM的大多数性能上的优势,它是ARM指令集的子集。