ARM嵌入式系统结构与编程(第2版)_第1-4章_习题答案

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
值; (4) 强制 PC 指向相应的异常向量地址。
ARM 在异常返回时
《ARM 嵌入式系统结构与编程》第 2 版,邱铁 编著. 清华大学出版社. 2013 年 8 月第 2 版,2015 年 8 月第 4 次印刷
(1) 从 SPSR_<mode>恢复 CPSR; (2) 从 LR_<mode>恢复 PC 。
不合法
9) 0x5580000 0B 0101 0101 1000 (0000)[4] 不合法
10) 0x7F80000
《ARM 嵌入式系统结构与编程》第 2 版,邱铁 编著. 清华大学出版社. 2013 年 8 月第 2 版,2015 年 8 月第 4 次印刷 0B 0111 1000 0001 (0000)[4] 不合法 11) 0x39C000 0B 0011 1001 1100 0000 0000 0000 1001 11100111(18/2) 12) 0x1FE80000 0B 0001 1111 1110 (0000)[4] 不合法
V=1 表示符号位溢出,其他的指令通常不影响 V 位。 例如:两个正数(最高位为 0)相加,运算结果为一个负数(最高位为 1),则
符号位溢出,相应 V=1。 C—进位或借位标志位
对于加法指令(包括比较指令 CMN),结果产生进位,则 C=1,表示无符号 数运算发生上溢出,其他情况下 C=0;
在减法指令中(包括比较指令 CMP),结果产生借位,则 C=0,表示无符号数 运算发生下溢出,其他情况下 C=1;
《ARM 嵌入式系统结构与编程》第 2 版,邱铁 编著. 清华大学出版社. 2013 年 8 月第 2 版,2015 年 8 月第 4 次印刷
《ARM 嵌入式系统结构与编程》第 2 版,第 1~4 章思 考与练习题答案(此答案仅供教师教学用)
第 1 章 绪论
思考与练习题答案
1. 国内嵌入式系统行业对“嵌入式系统”的定义是什么?如何理解? 答:见教材 1.1 节。
在大端存储格式中,对于地址为 A 的字单元,其中字节单元由高位到低位字节地 址顺序为 A,A+1,A+2,A+3;对于地址为 A 的半字单元,其中字节单元由高位到低 位字节地址顺序为 A,A+1。
7. 分析带有存储器访问指令(LDR)的流水线运行情况,并用图示说明其流 水线的运行机制。
答:在 ARM 三级流水线下:
5. 未来嵌入式技术的发展趋势有哪些? 答:见教材 1.4 节的嵌入式技术的发展趋势。
《ARM 嵌入式系统结构与编程》第 2 版,邱铁 编著. 清华大学出版社. 2013 年 8 月第 2 版,2015 年 8 月第 4 次印刷
第 2 章 ARM 技术与 ARM 体系结构
思考与练习题答案
1. 简述 ARM 处理器内核调试结构原理。 答:见教材 1.2 节的图 2-1 进行描述。
(1) 取指:从指令 Cache 中读取指令。 (2) 译码:对指令进行译码,识别出是对哪个寄存器进行操作并从通用寄存
器中读取操作数。 (3) 执行:进行 ALU 运算和移位操作,如果是对存储器操作的指令,则在
ALU 中计算出要访问的存储器地址。 (4) 存储器访问:如果是对存储器访问的指令,用来实现数据缓冲功能(通
3. 在 ARM 指令中,什么是合法的立即数?判断下面各立即数是否合法,如果合
法则写出在指令中的编码格式(也就是 8 位常数和 4 位的移位数)。
0x5430
0x108
0x304
0x501
0xFB10000
0x334000
0x3FC000
0x1FE0000
0x5580000
0x7F800
0x39C000
6. 在 Load/Store 指令寻址中,字、无符号字节的 Load/Store 指令寻址和半字、有 符号字节寻址,试分析它们之间的差别。
答:在 Load/Store 指令寻址中,字、无符号字节的 Load/Store 指令寻址有三种,具 体见教材 3.3.2 节; 在 Load/Store 指令寻址中,半字、有符号字节寻址有两种,具体见教材 3.3.3 节;
0x1FE80000
答:每个立即数由一个 8 位的常数进行 32 位循环右移偶数位得到,其中循环右
移的位数由一个 4 位二进制的两倍表示。即:
<immediate>=immed_8 进行 32 位循环右移(2*rotate_4)位
符合这一条件的都为合法的立即数。
1) 0x5430 0B 0101 0100 0011 0000
2. 分析 ARM7TDMI-S 各字母所代表的含义。 答:参考教材 2.1.2 ARM 核版本命名规则说明。
3. ARM 处理器的工作模式有哪几种,其中哪些为特权模式,哪些为异常模式, 并指出处理器在什么情况下进入相应的模式。
答:ARM 处理器共有 7 种工作模式: 用户模式:非特权模式,也就是正常程序执行的模式,大部分任务在这种模式 下执行。在用户模式下,如果没异常发生,不允许应用程序自行改变处理器的工作 模式,如果有异常发生,处理器会自动切换工作模式 FIQ 模式:也称为快速中断模式,支持高速数据传输和通道处理,当一个高优 先级(fast)中断产生时将会进入这种模式。 IRQ 模式:也称为普通中断模式,:当一个低优先级中断产生时将会进入这种模 式。在这模式下按中断的处理器方式又分为向量中断和非向量中断两种。通常的中 断处理都在 IRQ 模式下进行。 SVC 模式:称之为管理模式,它是一种操作系统保护模式。当复位或软中断指 令执行时处理器将进入这种模式。 中止模式:当存取异常时将会进入这种模式,用来处理存储器故障、实现虚拟 存储或存储保护。 未定义指令异常模式:当执行未定义指令时会进入这种模式,主要是用来处理 未定义的指令陷阱,支持硬件协处理器的软件仿真,因为未定义指令多发生在对协 处理器的操作上。 系统模式:使用和 User 模式相同寄存器组的特权模式,用来运行特权级的操作 系统任务。 在这 7 种工作模式中,除了用户模式以外,其他 6 种处理器模式可以称为特权 模式,在这些模式下,程序可以访问所有的系统资源,也可以任意地进行处理 器模式的切换。在这 6 种特权模式中,除了系统模式外的其他 5 种特权模式又
2. 嵌入式系统是从何时产生的,简述其发展历程。 答:见教材 1.1 节。
3. 当前最常见的源码开放的嵌入式操作系统有哪些,请举出两例,并分析其特点。 答:见教材 1.2.1 节的嵌入式 Linux 和嵌入式实时操作内核 µC /OS-II。
4. 举例说明嵌入式设备在工控设备中的应用。 答:见教材 1.3 节的“工业控制领域”。
《ARM 嵌入式系统结构与编程》第 2 版,邱铁 编著. 清华大学出版社. 2013 年 8 月第 2 版,2015 年 8 月第 4 次印刷
《ARM 嵌入式系统结构与编程》第 2 版,邱铁 编著. 清华大学出版社. 2013 年 8 月第 2 版,2015 年 8 月第 4 次印刷
第 3 章 ARM 指令集寻址方式
在图中,处理器用 6 个时钟周期执行了 4 条指令,指令平均周期数 (CPI) = 1.5 时 钟周期。 8. 简述 ARM9 的 5 级流水线每一级所完成的功能和实现的操作。 答:在 ARM9 在指令操作上采用 5 级流水线。
《ARM 嵌入式系统结构与编程》第 2 版,邱铁 编著. 清华大学出版社. 2013 年 8 月第 2 版,2015 年 8 月第 4 次印刷
对存储器的访问指令 LDR 就是非单周期指令。这类指令在“执行”阶段后,还 要进行“存储器访问”和“寄存器回写”操作,每一步占用 1 个时钟周期。在指令 执行时空图中,处于时钟周期 T5 时,LDR 指令要进行数据的存储器操作(访存), 在时钟周期 T6 要进行寄存器的回写操作,这两步还要占用执行单元,因此其下 1 条指令的“执行”就被阻断了,其下数第 2 条指令的译码被阻断,要等待 LDR 指令 操作完毕后,流水线的正常运行才能被恢复。
4. 分析逻辑右移、算术右移、循环右移、带扩展的循环右移它们间的差别。 答:见教材 3.2 节的图 3-1 移位操作功能描述。
5. ARM 数据处理指令具体的寻址方式有哪些,如果程序计数器 PC 作为目标寄存 器,会产生什么结果?
答:ARM 数据处理指令具体的寻址方式有 5 种,见教材 3.2 节的具体说明。 如果程序计数器 PC 作为目标寄存器,会产生程序发生跳转。
对于包含移位操作的非加/减法运算指令,C 中包含最后一次溢出位的数值; 对于其他非加/减法运算指令,C 位的值通常不受影响。 Z—结果为 0 标志位
Z=1 表示运算结果是 0,Z=0 表示运算结果不是零; 对于 CMP 指令,Z=1 表示进行比较的两个数大小相等。 N—T 符号标志位
本位设置成当前指令运算结果的 bit[31]的值。当两个补码表示有符号整数运算 时,N=1 表示运算的结果为负数,N=0 表示结果为正数或零。
6. ARM 处理器字数据的存储格式有哪两种?并指出这两种格式的区别。 答: (1) 小端存储格式(Little-Endian)
在小端存储格式中,对于地址为 A 的字单元,其中字节单元由低位到高位字节地 址顺序为 A,A+1,A+2,A+3;对于地址为 A 的半字单元,其中字节单元由低位到高 位字节地址顺序为 A,A+1; (2) 大端存储格式(Big-Endian)
过数据 Cache);如果不是对存储器访问的指令,本级流水线为一个空 的时钟周期。 寄存器回写:将指令运算或操作结果写回到目标寄存器中。
9. 什么叫做流水线互锁?应如何来解决,举例说明。 答: 在流水线运行过程中可能会出现这种情况:当前指令的执行可能需要前面指令 的执行结果,但这时前面的指令没有执行完毕,从而会导致当前指令的执行无法获 得合法的操作数,这时就会引起流水线的等待,这种现象在流水线机制里称为互锁。 举例:参见教材第 29 页: 当互锁发生时,硬件会停止这个指令的执行,直到数据准备好为止。如图所示, LDR 指令进行完执行阶段,还需要两个时钟周期来完成存储器访问和寄存器写操作, 但这时指令 MOV 中用到的 R9 正是 LDR 中需要进行寄存器加载操作后的寄存器, 因此 MOV 要进行等待,直到 LDR 指令的寄存器写操作完成。
6) 0x334000
0B 0011 0011 0100 0000 0000 0000 1001 11001101(18/2)
7) 0x3FC000
Biblioteka Baidu
0B 0011 1111 0000 0000 0000
1010 00111111(18/2)
8) 0x1FE0000 0B 0001 1111 1110 (0000)[4]
《ARM 嵌入式系统结构与编程》第 2 版,邱铁 编著. 清华大学出版社. 2013 年 8 月第 2 版,2015 年 8 月第 4 次印刷
称为异常模式
4. 分析程序状态寄存器(PSR)各位的功能描述,并说明 C、Z、N、V 在什 么情况下进行置位和清零。
答:PSR 的具体格式为
V—溢出标志位 对于加/减法运算指令,当操作数和运算结果为二进制补码表示的带符号数时,
5. 简述 ARM 处理器异常处理和程序返回的过程。 答:ARM 在异常产生时会进行以下操作: (1) 将引起异常指令的下一条指令地址保存到新的异常模式的 LR 中,使异
常处理程序执行完后能根据 LR 中的值正确返回; (2) 将 CPSR 的内容复制到新的异常模式下的 SPSR 中; (3) 根据异常类型将 CPSR 模式控制位强制设定为发生异常所对应的模式
不合法
2) 0x108
0B 0001 0000 1000
1111 01000010(30/2)
3) 0x304
0B 0011 0000 0100
1111 11000001(30/2)
4) 0x501
0B 0101 0000 0001
不合法
5) 0xFB10000 0B 1111 1011 0001 0000 0000 0000 不合法
思考与练习题答案
1. 在指令编码中,条件码占有几位,最多有多少个条件,各个条件是如何形成的? 答:见教材 3.1 节的描述。
2. 指令条件码中,V 标志位在什么情况下才能等于 1? 答:当指令的算术运算发生异常时,V 标志位置 1。例如,两个正数相加,其
结果为一负数;或者是两个负数相加,其结果为一正数,都会置 V 标志位。
相关文档
最新文档