ARM嵌入式系统基础教程第二版课后习题答案.

  • 格式:doc
  • 大小:25.50 KB
  • 文档页数:11

下载文档原格式

  / 14
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第 1章嵌入式系统概述

(1举出 3个本书中未提到的嵌入式系统的例子。

答:键盘、鼠标、扫描仪。

(2什么叫嵌入式系统?

答:嵌入到对象体系中的专用计算机应用系统。

(3什么叫嵌入式处理器?嵌入式处理器分为哪几类?

答:嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。分为 3类: 1. 注重尺寸、能耗和价格; 2. 关注性能; 3. 关注全部 4个需求——性能、尺寸、能耗和价格。

(4什么是嵌入式操作系统?为何要使用嵌入式操作系统?

答:嵌入式操作系统是操作系统的一种类型, 是在传统操作系统的基础上加入符合嵌入式系统要求的元素发展而来的。原因:1. 提高了系统的可靠性; 2. 提高了开发效率,缩短了开发周期。 3. 充分发挥了 32位 CPU 的多任务潜力。

第 2章 ARM7体系结构

1. 基础知识

(1ARM7TDMI中的 T 、 D 、 M 、 I 的含义是什么?

答:T :高密度 16位 Thumb 指令集扩展; D :支持片上调试; M :64位乘法指令;

I :Embedded ICE硬件仿真功能模块。

(2ARM7TDMI采用几级流水线?使用何种存储器编址方式?

答:3级;冯 ·诺依曼结构。

(3ARM处理器模式和 ARM 处理器状态有何区别?

答:ARM 处理器模式体现在不同寄存器的使用上; ARM 处理器状态体现在不同指令的使用上。

(4分别列举 ARM 的处理器模式和状态?

答:ARM 的处理器模式:用户模式、系统模式、管理模式、中止模式、未定义

模式、中断模式、快速模式; ARM 的处理器状态 :ARM状态、 Thumb 状态。

(5PC和 LR 分别使用哪个寄存器?

答:PC:R15; LR:R14。

(6R13寄存器的通用功能是什么?

答:堆栈指针 SP 。

(7CPSR寄存器中哪些位用来定义处理器状态?

答:位 31~28:N 、 Z 、 C 、 V ,条件代码标志位; 27~8:保留位; 7~0:I 、 F 、

T 、 M4~0,控制标志位。

(8描述一下如何禁止 IRQ 和 FIQ 的中断。

答:当控制位 I 置位时, IRQ 中断被禁止,否则允许 IRQ 中断使能;当控制位 F 置位时, FIQ 中断被禁止,否则允许 FIQ 中断使能。

2. 存储器格式

答:无论是大端格式还是小端格式, R2的值与 R1一致; 地址 0x4000单元的字节:大端:0x12、小端:0x78。

3. 处理器异常

请描述一下 ARM7TDMI 产生异常的条件是什么?各种异常会使处理器进入哪种模式?进入异常时内核有何操作?各种异常的返回指令又是什么?

答:

【异常】【模式】【返回指令】

复位管理无

未定义指令未定义 MOVS 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. 基础知识

(1ARM7TDMI(-S有几种寻址方式? “LDR R1,[R0,#0x08]” 属于哪种寻址方式? 答:有 8种寻址方式:1. 寄存器寻址 2. 立即寻址 3. 寄存器移位寻址 4. 寄存器间接寻址 5. 基址寻址 6. 多寄存器寻址 7. 堆栈寻址 8. 相对寻址; “LDR

R1,[R0,#0x08]” 属于基址寻址。

(2ARM指令的条件码有多少个?默认条件码是什么?

答:16个; AL 。

(3ARM指令中的第 2个操作数有哪几种形式?列举 5个 8位图立即数。答:1. 常数表达式 (8位图 2.寄存器方式 3. 寄存器移位方式; 0x3FC 、 0、 0xF0000000、200、 0xF0000001。

(4LDR/STR指令的偏移形式有哪 4种? LDRB 指令和 LDRSB 指令有何区别? 答:1. 零偏移 2. 前索引偏移 3. 程序相对偏移 4. 后索引偏移; LDRB :加载无符号字节数据, LDRSB 加载有符号字节数据

(5请指出 MOV 指令与 LDR 加载指令的区别及用途?

答:MOV 指令的源操作数是常数或(带偏移量的寄存器,用于寄存器之间的数据传送; LDR 指令的源操作数是地址,用于存储器到寄存器的数据传送。

(6CMP指令是如何执行的?写一程序,判断 R1的值是否大于 0x30,是则将 R1减去 0x30。

答:CMP 指令将 Rn-operand2,根据结果更新 CPSR 中的相应条件标志位。 CMP R1,0x30

SUBHI R1,0x30

(7调用子程序是用 B 指令还是用 BL 指令?请写出返回子程序的指令。

答:用 BL ; MOV PC,R14。

(8请指出 LDR 伪指令的用法。指令格式与 LDR 加载指令的区别是什么? 答:用法:LDR{cond} Rd,=立即数 /标号 +立即数; LDR 伪指令的源操作数是代表一个常数, LDR 加载指令的源操作数代表一个地址。

(9ARM状态与 Thumb 状态的切换指令是什么?请举例说明。

答:BX ;