ARM复习课后题答案
1. 1.国内嵌入式系统行业对嵌入式系统的定义是什么?如何理解国内嵌入式系统行业对嵌入式系统的定义是什么?如何理解 答:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、 可靠性、成本、体积、功耗严格要求的专用计算机系统。 从这个定义看以看出嵌入式系统是与应用紧密结合的,它具有很强的专用性,必 须结合实际系统要求进行合理的裁剪利用。因此有人把嵌入式系统比作是一个针对 特定的应用而量身定做的专用计算机系统。 2. 2.当前最常见的源码开放的嵌入式操作系统有哪些,请举出两例,并分析其特点当前最常见的源码开放的嵌入式操作系统有哪些,请举出两例,并分析其特点 答:嵌入式 linux 和嵌入式实时操作系统uc/os-II Linux: (1)linux 是源码开放的,每一个技术细节都是透明的,易于裁剪定制。 (2)目前嵌入式 linux 已经在多种嵌入式处理器芯片移植成功, 有大量且不断增加的 开发工具,这些工具为嵌入式系统开发提供了良好的开发环境。 (3)Linux 内核小、功能强大、运作稳定、效率高。 Ucos: (1)源代码公开 (2)可移植性。 (3)可固化 (4)可裁剪 (5)占先式 (6)多任务 (7)可确定性。 (8)系统服务 第第 2 2 章章 ARMARM 技术与技术与 ARMARM 体系结构体系结构 3. 3.armarm 处理器的工作模式有哪几种,其中哪些为特权模式,哪些为异常模式,处理器的工作模式有哪几种,其中哪些为特权模式,哪些为异常模式, 并指出处理并指出处理 器在什么情况下进入相应的模式。器在什么情况下进入相应的模式。 答:ARM 处理器共有7 种工作模式: 用户模式用户模式:非特权模式,也就是正常程序执行的模式,大部分任务在这种模式 下执行。在用户模式下,如果没异常发生,不允许应用程序自行改变处理器的工作 模式,如果有异常发生,处理器会自动切换工作模式 FIQFIQ 模式:模式:也称为快速中断模式,支持高速数据传输和通道处理,当一个高优 先级(fast)中断产生时将会进入这种模式。 IRQIRQ 模式:模式:也称为普通中断模式,:当一个低优先级中断产生时将会进入这种模 式。在这模式下按中断的处理器方式又分为向量中断和非向量中断两种。通常的中 断处理都在IRQ 模式下进行。 SVCSVC 模式模式:称之为管理模式,它是一种操作系统保护模式。当复位或软中断指 令执行时处理器将进入这种模式。 中止模式:中止模式:当存取异常时将会进入这种模式,用来处理存储器故障、实现虚拟 存储或存储保护。 未定义指令异常模式:未定义指令异常模式:当执行未定义指令时会进入这种模式,主要是用来处理 未定义的指令陷阱,支持硬件协处理器的软件仿真,因为未定义指令多发生在对协 处理器的操作上。 系统模式:系统模式:使用和User 模式相同寄存器组的特权模式,用来运行特权级的操作 系统任务。 在这 7 种工作模式中,除了用户模式以外,其他6 种处理器模式可以称为特权 模式,在这些模式下,程序可以访问所有的系统资源,也可以任意地进行处理 器模式的切换。在这 6 种特权模式中,除了系统模式外的其他5 种特权模式又 称为异常模式 4 4.. 分析程序状态寄存器(分析程序状态寄存器(PSRPSR)各位的功能描述,并说明)各位的功能描述,并说明C C、、Z Z、、N N、、V V 在什在什 么情况下进行置位和清零。么情况下进行置位和清零。 答:PSR 的具体格式为 V V—溢出标志位—溢出标志位 对于加/减法运算指令,当操作数和运算结果为二进制补码表示的带符号数时, V=1 表示符号位溢出,其他的指令通常不影响V 位。 C C—进位或借位标志位—进位或借位标志位 对于加法指令(包括比较指令 CMN),结果产生进位,则C=1,表示无符号 数运算发生上溢出,其他情况下C=0; 在减法指令中(包括比较指令CMP),结果产生借位,则C=0,表示无符号数 运算发生下溢出,其他情况下C=1; 对于包含移位操作的非加/减法运算指令,C 中包含最后一次溢出位的数值; 对于其他非加/减法运算指令,C 位的值通常不受影响。 Z Z—结果为—结果为0 0 标志位标志位 Z=1 表示运算结果是0,Z=0 表示运算结果不是零; 对于 CMP 指令,Z=1 表示进行比较的两个数大小相等。 N N—— 符号标志位符号标志位 本位设置成当前指令运算结果的bit[31]的值。当两个补码表示有符号整数运算 时,N=1 表示运算的结果为负数,N=0 表示结果为正数或零。 5 5.. 简述简述 ARMARM 处理器异常处理和程序返回的过程。处理器异常处理和程序返回的过程。 答:ARM 在异常产生时会进行以下操作: (1) 将引起异常指令的下一条指令地址保存到新的异常模式的LR 中,使异 常处理程序执行完后能根据LR 中的值正确返回; (2) 将CPSR 的内容复制到新的异常模式下的SPSR 中; (3) 根据异常类型将CPSR 模式控制位强制设定为发生异常所对应的模式 值; (4) 强制PC 指向相应的异常向量地址。 ARM 在异常返回时 (1) 从 SPSR_恢复CPSR; (2) 从 LR_恢复 PC 。 6 6.. ARMARM 处理器字数据的存储格式有哪两种?并指出这两种格式的区别。处理器字数据的存储格式有哪两种?并指出这两种格式的区别。 答: (1) 小端存储格式(Little-Endian) 在小端存储格式中,对于地址为A 的字单元,其中字节单元由低位到高位字节地 址顺序为A,A+1,A+2,A+3;对于地址为A 的半字单元,其中字节单元由低位到高 位字节地址顺序为A,A+1; (2) 大端存储格式(Big-Endian) 在大端存储格式中,对于地址为A 的字单元,其中字节单元由高位到低位字节地 址顺序为 A,A+1,A+2,A+3;对于地址为A 的半字单元,其中字节单元由高位到低 位字节地址顺序为 A,A+1。 第第 3 3 章章 ARM ARM 指令集寻址方式指令集寻址方式 3 3.. 在在 ARMARM 指令中,什么是合法的立即数?判断下面各立即数是否合法,如果合指令中,什么是合法的立即数?判断下面各立即数是否合法,如果合 法则写出在指令中的编码格式(也就是法则写出在指令中的编码格式(也就是 8 8 位常数和位常数和 4 4 位的移位数)。位的移位数)。 0 x5430 0 x108 0 x304 0 x501 0 xFB10000 0 x334000 0 x3FC000 0 x1FE0000 0 x5580000 0 x7F800 0 x39C000 0 x1FE80000 答:计算步骤: (1)十六进制立即数两端 0 去掉 (2)展成二进制 (3)连续偶数个 0 去掉,数字中间 0 不去掉 (4)剩下数字位数小于等于 8 可以,反之,不可以。 5 5.. ARMARM 数据处理指令具体的寻址方式有哪些,如果程序计数器数据处理指令具体的寻址方式有哪些,如果程序计数器 PCPC 作为目标寄存器,作为目标寄存器, 会产生什么结果?会产生什么结果? 答:ARM 数据处理指令寻址方式有5 种 1) 第二操作数为立即数 2) 第二操作数为寄存器