《2022年arm嵌入式系统基础教程第二版的 .pdf》由会员分享,可在线阅读,更多相关《2022年arm嵌入式系统基础教程第二版的 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第 1 章 嵌入式系统概述(1)举出 3 个本书中未提到的嵌入式系统的例子。答:键盘、鼠标、扫描仪。(2)什么叫嵌入式系统?答:嵌入到对象体系中的专用计算机应用系统。(3)什么叫嵌入式处理器?嵌入式处理器分为哪几类?答:嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。分为3 类:1.注重尺寸、能耗和价格;2.关注性能; 3.关注全部 4 个需求 性能、尺寸、能耗和价格。(4)什么是嵌入式操作系统?为何要使用嵌入式操作系统?答:嵌入式操作系统是操作系统的一种类型,是在传统操作系统的基础上加入符合嵌入式系统要求的元素发展而来的。原因:1.提高了系统的可靠性; 2.提高了开发效率,缩短了开发
2、周期。3.充分发挥了 32 位 CPU 的多任务潜力。第 2 章 ARM7 体系结构1.基础知识(1)ARM7TDMI 中的 T、D、M、I 的含义是什么?答:T:高密度 16 位 Thumb 指令集扩展; D:支持片上调试; M:64 位乘法指令;I:Embedded ICE 硬件仿真功能模块。(2)ARM7TDMI 采用几级流水线?使用何种存储器编址方式?答:3 级;冯 诺依曼结构。(3)ARM 处理器模式和 ARM 处理器状态有何区别?答:ARM 处理器模式体现在不同寄存器的使用上;ARM 处理器状态体现在不同指令的使用上。(4)分别列举 ARM 的处理器模式和状态?答:ARM 的处理器
3、模式:用户模式、系统模式、管理模式、中止模式、未定义模式、中断模式、快速模式;ARM 的处理器状态 :ARM 状态、 Thumb 状态。(5)PC 和 LR 分别使用哪个寄存器?答:PC:R15 ;LR:R14 。(6)R13 寄存器的通用功能是什么?答:堆栈指针 SP。(7)CPSR 寄存器中哪些位用来定义处理器状态?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 答:位 3128:N、Z、C、V,条件代码标志位; 278:保
4、留位; 70:I、F、T、M40,控制标志位。(8)描述一下如何禁止IRQ 和 FIQ 的中断。答:当控制位 I 置位时, IRQ 中断被禁止,否则允许IRQ 中断使能;当控制位F置位时, FIQ 中断被禁止,否则允许FIQ 中断使能。2.存储器格式答:无论是大端格式还是小端格式,R2 的值与 R1 一致;地址 0 x4000 单元的字节:大端: 0 x12、小端: 0 x78。3.处理器异常请描述一下 ARM7TDMI 产生异常的条件是什么?各种异常会使处理器进入哪种模式?进入异常时内核有何操作?各种异常的返回指令又是什么?答:【异常】【模式】【返回指令】复位管理无未定义指令未定义MOVS
5、PC,R14 软件中断管理MOVS PC,R14 预取指中止中止SUBS PC,R14,#4 数据中止中止SUBS PC,R14,#8 IRQ 中断SUBS PC,R14,#4 FIQ 快速中断SUBS PC,R14,#4 进入异常时 ,内核自动做: PC LR 、CPSR 相应异常模式下的SPSR 、设置CPSR 为相应的异常模式、相应异常处理程序的中断入口向量地址PC。第 3 章 ARM7TDMI(-S) 指令系统1.基础知识(1)ARM7TDMI(-S) 有几种寻址方式? “LDR R1,R0,#0 x08”属于哪种寻址方式?答:有 8 种寻址方式: 1.寄存器寻址2.立即寻址 3.寄存
6、器移位寻址4.寄存器间接寻址 5.基址寻址6.多寄存器寻址7.堆栈寻址8.相对寻址; “LDR R1,R0,#0 x08”属于基址寻址。(2)ARM 指令的条件码有多少个?默认条件码是什么?答:16 个;AL。(3)ARM 指令中的第 2 个操作数有哪几种形式?列举5 个 8 位图立即数。答:1.常数表达式 (8 位图) 2.寄存器方式3.寄存器移位方式; 0 x3FC 、0、0 xF0000000 、200、0 xF0000001 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第
7、2 页,共 5 页 - - - - - - - - - (4)LDR/STR 指令的偏移形式有哪4 种?LDRB 指令和 LDRSB 指令有何区别?答:1.零偏移 2.前索引偏移3.程序相对偏移4.后索引偏移; LDRB :加载无符号字节数据, LDRSB 加载有符号字节数据(5)请指出 MOV 指令与 LDR 加载指令的区别及用途?答:MOV 指令的源操作数是常数或(带偏移量的)寄存器,用于寄存器之间的数据传送; LDR 指令的源操作数是地址,用于存储器到寄存器的数据传送。(6)CMP 指令是如何执行的?写一程序,判断R1 的值是否大于 0 x30,是则将R1 减去 0 x30。答:CMP
8、指令将 Rn-operand2 ,根据结果更新 CPSR 中的相应条件标志位。CMP R1,0 x30 SUBHI R1,0 x30 (7)调用子程序是用 B 指令还是用 BL 指令?请写出返回子程序的指令。答:用 BL;MOV PC,R14 。(8)请指出 LDR 伪指令的用法。指令格式与LDR 加载指令的区别是什么?答:用法: LDRcond Rd,= 立即数 /标号+立即数; LDR 伪指令的源操作数是代表一个常数, LDR 加载指令的源操作数代表一个地址。(9)ARM 状态与 Thumb 状态的切换指令是什么?请举例说明。答:BX;;从 ARM 状态切换到 Thumb 状态CODE32
9、 LDR R0,=Lable+1 BX R0 CODE16 Lable MOV R1,#12 ;从 Thumb 状态切换到 ARM 状态CODE16 LDR R0,=Lable BX R0 CODE32 Lable MOV R1,#10 (10)Thumb 状态与 ARM 状态的寄存器有区别吗? Thumb 指令对哪些寄存器的访问受到一定限制?答:有区别; R8R15 。(11)Thumb 指令集的堆栈入栈、出栈指令是哪两条?答:PUSH 、POP。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - -
10、 - - 第 3 页,共 5 页 - - - - - - - - - (12)Thumb 指令集的 BL 指令转移范围为何能达到 4MB?其指令编码是怎样的?答:BL 指令事实上是两条指令, 其编码为:11110 地址偏移高 11 位、 11111 地址偏移低 11 位, 地址编码 22 位,再左移一位 (半字对齐 ),23 位地址寻址 8MB,即 4MB 。2.有符号和无符号加法答:(1) 0 xFFFF000F (A) 0 x0000FFF1 (B) (0 x00000000) NZCV=0110 如果两个操作数是有符号数, A 是负数,B 是正数,和是 0, 没有溢出,所以 V=0。如果
11、两个操作数是无符号数,和是0,有进位,所以C=1。(2) 0 x7FFFFFFF (A) 0 x02345678 (B) (0 x82345677) NZCV=1001 如果两个操作数是有符号数,A 是正数, B 是正数,和是负数,有溢出,所以V=1。如果两个操作数是无符号数,没有进位,所以C=0。(3) 67654321 (A) 23110000 (B) (0 x0568F421) NZCV=0000 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - 如果两个操作数是有符号数,A 是正数, B 是正数,和是正数,没有溢出,所以V=0。如果两个操作数是无符号数,没有进位,所以C=0。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -