《ARM嵌入式系统简答题前十一道答案.doc》由会员分享,可在线阅读,更多相关《ARM嵌入式系统简答题前十一道答案.doc(4页珍藏版)》请在文库网上搜索。
1、1. 三级流水线流水线采用3个阶段,因此指令分为3个阶段执行:取指、译码、执行ARM Thumb取指PC PC 指令从存储器中取出 译码PC-4 PC-2 对指令使用的寄存器进行译码执行PC-8 PC-4 从寄存器组中读出寄存器 执行移位和ALU操作 寄存器写回到寄存器组2. ARM处理器模式问述 处理器模式说明备注用户(usr)正常程序工作模式未能直接切换到其他模式快中断(fiq)支持高速数据传输及通道处理FIR异常响应时,进入此模式中断(irq)用于通用中断处理IRQ异常响应时,进入此模式管理(svc)操作系统保护代码系统复位和软件中断响应时,进入此模式中止(abt)用于支持虚拟内存和/或
2、存储器保护在ARM7TSMI没有大用处未定义(und)支持硬件协处理器的软件仿真未定义指令异常响应时,进入此模式系统(sys)用于支持操作系统的特权任务等与用户类似,但具有可以直接切换到其他模式等特权 3. AMR处理器中模式位与处理器模式的对应M4:0模式可见的Thumb状态寄存器可见的ARM状态寄存器10000用户R0-R7,SP,LR,PC,CPSRR0-R14,PC,CPSR10001快中断R0-R7,SP_fiq,LR_fiq,PCCPSR,SPSR_fiqR0-R7,R8_fiq- R14_fiq,PC,CPSR,SPSR_fiq10010中断R0-R7, SP_irq,LR_ir
3、q,PC,CPSR, SPSR_fiqR0-R12, R13_ irq, R14_ irq,PC,CPSR, SPSR_ irq10011管理R0-R7, SP_svc,LR_ svc,PC,CPSR, SPSR_svcR0-R12, R13_svc, R14_svc,PC,CPSR, SPSR_svc10111中止R0-R7, SP_abt, LR_ abt,PCCPSR, SPSR_abtR0-R12, R13_abt, R14_abt,PC,CPSR, SPSR_abt11011未定义R0-R7, SP_und, LR_ und,PCCPSR, SPSR_ undR0-R12, R13_
4、 und, R14_ und,PC,CPSR, SPSR_ und11111系统R0-R7,SP,LR,PC,CPSRR0-R14,PC,CPSR 4. 问述ARM处理器异常的种类异常入口返回指令之前的状态ARM R14_X Thumb R14_X备注BLMOV PC,R14PC+4PC+2此处PC为BL,SWI,未定义的指令取指或者预取中止指令的地址SWIMOVS PC,R14_svcPC+4 PC+2未定义的指令MOVS PC,R14_und PC+4 PC+2预取中止SUBS PC,R14_abt,#4 PC+4 PC+4快中断SUBS PC,R14_fiq,#4 PC+4 PC+4此处
5、PC为由于FIQ或IRQ占先而没有被执行的指令的地址中断SUBS PC,R14_irq,#4 PC+4 PC+4数据中止SUBS PC,R14_abt,#8PC+8 PC+8此处PC为产生数据中止的装载或者保存指令的地址复位无复位时保存在R14_svc中的值不可预知 5. 写出中断处理代码的开始部分与退出部分SUB LR,LR,#4 ;计算返回地址STMFD SP!,R0-R3,LR ;保存使用到的寄存器.LDMFD SP!,R0-R3,PC ;中断返回6. 描述ARM处理器进入异常的过程 、 在适当的LR中保存下一条指令的地址。当异常入口来自: ARM状态下,ARM7TDMI将下一条指令的地
6、址复制到LR中(当前PC+4或PC+8,取决于异常的类型)。Thumb状态下,ARM7TDMI将PC加偏移值(PC+4或PC+8,这取决于异常的类型)写入LR当进入异常时,异常处理程序不必确定状态。、 将CPSR复制到适当的CPSR。、 根据异常将CPSR模式强制设为某一值。、 强制PC从相关的异常向量处取指。7. 描述ARM处理器退出异常的过程、 将LR中的值减去偏移量后移入PC。偏移量根据异常的类型而有所不同。、 将SPSR的值复制回CPSR。、 清零在入口位置的中断禁止标志。8. 列出ARM异常向量及与对应的地址 地址异常进入时的模式进入时I的模式进入时F的模式0x00000000复位管
7、理禁止禁止0x00000004未定义指令未定义IF0x00000008软件中断管理禁止F0x0000000C中止(预取)中止IF0x00000010中止(数据)中止IF0x00000014保留保留0x00000018IRQ中断禁止F0x0000001CFIQ快中断禁止禁止9. ARM存储器映射有哪几种ARM存储器映射有两种:、对于小端存储系统:在小端格式中,一个字当中最低地址的字节被看作是最低位字节最高地址字节被看作是最高位字节。因此存储器系统字节0连续接到数据线3124。、大端存储器系统:在大端格式中,ARM7TDMI处理器将最高位字节保存在最低地址字节,最低位字节保存在高地址字节。因此,存储器系统字节0连接到数据线3124。10.使用存储器的重新映射有哪几种原因 、使Flash存储器中的FIQ处理程序不必考虑由于重新映射所导致的存储器边界问题。 、用来处理代码空间中段边界仲裁的SRAM和Boot Block向量的使用大大减少。、为超过单字节转移指令范围的跳转提供空间来保存常量。11.写出ARM IRQ中断服务程序 void _irq Eint1_IRQ(void) EXTINT = 0x02; VICVectAddr = 0;void _irq Eint2_IRQ(void) EXTINT = 0x04; VICVectAddr = 0;