嵌入式系统习题部份汇总.

上传人:我** 文档编号:115335224 上传时间:2019-11-13 格式:DOC 页数:15 大小:104.50KB
返回 下载 相关 举报
嵌入式系统习题部份汇总._第1页
第1页 / 共15页
嵌入式系统习题部份汇总._第2页
第2页 / 共15页
嵌入式系统习题部份汇总._第3页
第3页 / 共15页
嵌入式系统习题部份汇总._第4页
第4页 / 共15页
嵌入式系统习题部份汇总._第5页
第5页 / 共15页
点击查看更多>>
资源描述

《嵌入式系统习题部份汇总.》由会员分享,可在线阅读,更多相关《嵌入式系统习题部份汇总.(15页珍藏版)》请在金锄头文库上搜索。

1、嵌入式系统复习题集 一、基础知识 1、 什么是代码的临界区? 答:代码的监界区是指处理时不可分割的代码,运行这些代码不允许被打断。一旦这部分代 码开始执行,则不允许任何中断打入。中断不调用任何临界区的代码或不访问任何临界区使 用的共享资源时,这个中断是可能可以执行。为确保临界区代码的执行,在进入临界区之前 要关中断,而临界区代码执行完成以后要立即开中断。 2、 什么是嵌入式系统? 答:嵌入式系统是以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对 功能、可靠性、成本、体积及功耗严格要求的专用计算机系统,具有完成复杂功能的硬件和 软件且紧密耦合在一起的计算机系统。 3、 什么是嵌入

2、式操作系统?为何要使用嵌入式操作系统? 答:运用在嵌入式系统上的实时操作系统,具有事件驱动和任务(进程)调度功能,且在有 限时隙内能完成事件的响应和任务(进程)的切换,能可靠、实时、灵活地管理嵌入式系统 上的各种资源和任务。使用嵌入式操作系统,能方便实时应用软件的开发和有机地整合,能 有效地管理和协调各项工作,因此是开发和运行非常重要的环境。 4、 ARM 状态与 Thumb 状态的互换以什么条件来判断?似举出状态从 ARM 到 Thumb 或从 Thumb 到 ARM 切换的例子。 答:其互换条件是执行 BX 指令时,判断的最低一位 b0是否为 0 或为 1 来确定的,当 b0为 0 时,则

3、执行的程序是 ARM 状态的 32 位指令程序,当 b0为 1 时,则 执行的程序是 Thumb 状态的 16 位指令程序。如下例: ;从 ARM 状态转变为 Thumb 状态 LDR R0,Lable+1 BX R0 ;从 Thumb 状态转变为 ARM 状态 LDR R0, Lable BX R0 5、ARM 体系结构支持多少种处理器模式,分别是什么? 答:ARM 体系结构支持 7 种处理器模式,分别是用户模式、快中断模式、中断模式、管理 模式、中止模式、未定义模式和系统模式。 6、 子程序利用 R14(LR) ,获得返回到主程序的下条指令,通常有直接输入法和堆栈方法, 试填写下面两种方法

4、的代码: MOV PC, LR 或 STMFD SP!,, LR LDMFD SP!, , PC 如果是异常处理后的返回,如 IRQ 中断返回又如何改写代码? 7、 在修复产生数据中止的原因后,不管处于哪种处理器操作状态,处理程序都必须执行返 回指令:SUBS PC R14_abt,#8 ;而预取中止时为:SUBS PC R14_abt,#4 试解释减 8 原因?而在预取中止中为什么减 4 ? 答:由于 ARM 为三级流水,执行段相对取指令段差为 8,产生数据中止是在执行段结束点进 入,此时 PC 值为数据中止指令地址+12,即保存当前 PC 到 R14_abt 为数据中止指令地址 +12,因

5、此在修复产生数据中止的原因后,返回地址应为数据中止指令地址下一条指令,处 理程序都必须执行返回指令:SUBS PC R14_abt,#8,才能实现其目的。而在预取中止中时, 出现中止异常是在执行段点,此时保存到 R14_abt 值为预取中止指令地址+8,因此要恢复到 中止指令地址必为当前保存的 R14_abt 值减 4,即执行 SUBS PC R14_abt,#4 操作,就可恢复 到预取中止指令的下一条指令继续执行。 8、 什么是小端存储?什么是大端存储? 答:小端存储就是其存储格式为保存的字最低地址的字节看作是最低位字节,最高地址字 节被看作是最高位字节。因此,存储器系统字节 0 连接到数据

6、线 7-0。 大端存储就是其存储格式为将最高位字节保存在最低地址字节,最低位字节保存在最 高地址字节。因此存储器系统字节 0 连接到数据线 31-24。 9、 ARM7TDMI 中 T、D、M、I 的含义是什么? 答:T 表示具有高密度 16 位的 Thumb 指令机扩展功能;D 表示具有支持片上调试功能;M 表示具有 64 位乘法指令;I 表示增加了 EmbededICE 观察点硬件。 10、ARM7TDMI 采用几级流水线?使用何种存储器编址方式? 答:ARM7TDMI 采用三级流水段,分别为取指段、译码段和执行段。使用字节编址方式。 11、ARM 处理器模式和 ARM 处理器状态有何区别

7、? 答:ARM 处理器模式是指用户模式、快中断模式、中断模式、管理模式、中止模式、未定 义模式和系统模式。每种模式都表明一种程序使用内部寄存器和一些片内外的硬件设备权利。 而 ARM 处理器状态是指 Thumb 状态和 ARM 状态,即程序指令的执行译码按 16 位 Thumb 指令集还是按 32 位 ARM 指令集译码执行。 12、 分别列举 ARM 的处理器模式和状态。 答:ARM 处理器模式分别是用户模式、快中断模式、中断模式、管理模式、中止模式、未 定义模式和系统模式。ARM 处理器状态是指 16 位 Thumb 指令集运行的 Thumb 状态和 32 位 ARM 指令集运行的 ARM

8、 状态。 13、 PC 和 LR 分别使用哪个寄存器? 答:PC 使用 R15;LR 使用 R14。 14、 R13 寄存器的通用功能是什么? 答:R13 寄存器在 ARM 状态时,可用作通用寄存器功能,但通常为堆栈指针 SP,但在 Thumb 状态时,其压栈 PUSH 和弹栈 POP 指令都要用到 R13(SP) 。 15、 CPSR 寄存器中哪些位用来定义处理器状态? 答:在 CPSR 寄存器中 b5 位 T 定义处理器状态,T=0 为 ARM 状态,T=1 为 Thumb 状态。 16、 ARM 和 Thumb 指令的边界对齐有何不同? 答:ARM 指令长度为 32 位,其边界对齐存取地

9、址位都是按 b1:0=00 方式进行,而 Thumb 指令长度为 16 位,其边界对齐存取地址位都是按 b0=0 方式进行。 17、描述一下如何禁止 IRQ 和 FIQ 的中断? 答:对 CPSR 中的 b7(I 位)和 b6(F 位)标志位置位时,可分别来禁止 IRQ 和 FIQ 中断。 18、定义 R0=0x12345678,假设使用存储指令将 R0 的值存放在 0x4000 单元中。如果存 储器格式为大端格式,请写出在执行加载指令将存储器 0x4000 单元的内容取出存放到 R2 寄存器操作后得 R2 的值;如果存储器格式改为小端格式,所得的 R2 值又为多少? 低地址 0x4000 单

10、元的字节内容分别是多少? 答:按大端格式和小端格式存储,从存储器中读出的值是不变的,R2=0x12345678。按大端 格式从 0x4000 单元读出的值为 0x12, 按小端格式从 0x4000 单元读出的值为 0x78。 19、请描述进入内核时异常操作步骤? 答: 1)在 LR 中保存下一条指令的地址; 2)将 CPSR 复制到适当的 SPSR; 3)根据异常将 CPSR 模式强制设为某一值; 4)强制 PC 从相关的异常处取指。 5)异常结束时,异常处理程序必须将 LR 中的值减去偏移量后移入 PC。 6)将 SPSR 的值复制回 CPSR。 7)清零在入口置位的中断禁止标志。 20、

11、请描述一下 ARM7TDMI 产生异常的条件分别是什么?各种异常会使处理器进入哪种模 式?进入异常时内核有何操作?各种异常的返回指令又是什么? 答:ARM7TDMI 产生异常: 异常条件 模式 返回指令 快速中断请求 快中断模式 SUBS PC,R14_fiq,#4 中断请求 中断模式 SUBS PC,R14_irq,#4 预取中止请求 中止模式 SUBS PC,R14_abt,#4 数据中止请求 中止模式 SUBS PC,R14_abt,#8 未定义指令中断请求 未定义指令模式 MOVS PC,R14_und 软件中断请求 管理模式 MOVS PC,R14_svc 进入内核时异常操作是: 1

12、) 将 LR 中保存下一条指令的地址; 2) 将 CPSR 复制到适当的 SPSR; 3) 根据异常将 CPSR 模式强制设为某一值; 4) 强制 PC 从相关的异常处取指。 5) 异常结束时,异常处理程序必须将 LR 中的值减去偏移量后移入 PC。 6) 将 SPSR 的值复制回 CPSR。 7) 清零在入口置位的中断禁止标志。 21、简单描述一下 ARM7 的三级流水线,并说明其对程序设计的影响。 答:ARM7 的三级流水分为取指段、分析段和执行段。对程序设计的影响:提高指令执行的 速度,并使处理和存储系统连续操作。 ARM Thumb PC PC 取指 PC-4 PC-2 译码 PC-8

13、 PC-4 执行 由此看出,它对子程序调用返回、异常恢复返回,LR 值需减一个常数值作为返回地址。 22、ARM7TDMI(-S)有几种寻址方式?LDR R1,R0,#0x08属于哪种寻址方式? 答:有 8 种,分别是:寄存器寻址、立即寻址、寄存器移位寻址、寄存器间接寻址、基址寻 址、 (多寄存器寻址、块拷贝寻址) 、堆栈寻址、相对寻址。其中:LDR R1,R0,#0x08 属于基址寻址。 23、ARM 指令的条件码有多少个?默认条件码是什么? 答:ARM 指令的条件码有 16 个,默认条件码是:AL 编码为 1110 即无条件执行。 24、ARM 指令中第二个操作数有哪几种形式?列举 5 个

14、 8 位图立即数。 答:ARM 指令中第 2 个操作数有 3 种形式: 1)#immed_8r 常数表达式; 2)Rm 寄存器方式; 3)Rm,shift 寄存器移位方式。 例如:0x3FC、0、0xF0000000、200、0xF0000001。 25、将 ARM 指令中,使用第 2 个操作数时,第 2 操作数的形式可为常数表达式 #immed_8r,这种常数的合理表达方式是什么? 答:这种常数须对应 8 位位图数据的循环移位偶数位得到的任何 32 位数据。 26、将 ARM 指令中,使用第 2 个操作数时,第 2 操作数的形式可为常数表达式 #immed_8r,请说明下面常数哪些合理,哪些

15、非法? 0x3FC,0x1F,0x1FE,0,0xF0000000,511,0xFFFF,0x1010,0xF0000010,200,0xF0000001,0x12800000, 0x4000003B,0x0016C000 答:合法常量: 0x3FC/0/0xF0000000/200/0xF0000001/0x1F,0x12800000,0x4000003B,0x0016C000; 非法常量:0x1FE/511/0xFFFF/0x1010/0xF0000010。 27、将比较两个值大小,并进行相应加 1 处理,C 代码为: if(ab) a+; else b+;写出对应的 ARM 指令程序(其

16、中设 R0 为 a,R1 为 b)? 答:CMP R0,R1 ADDHI R0,R0,#1 ;若 R0R1,则 R0=R0+1 ADDLS R1,R1,#1 ;若 R0R1,则 R1=R1+1 28、将 C 代码:if(a!=10)弹栈指令:POP reglist,PC 37、Thumb 指令集的 BL 指令转移范围为何能达到4MB?其指令编码是怎样的? 答:Thumb 指令集的 BL 采用 2 条这样的指令组合成 22 位半字偏移(符号扩展为 32 位),使 指令转移范围为4MB。其指令编码为:1111+H+offset11 共 16 位。其中 H 为 1 位,offset11 为了 11 位。 38、在中断向量中转移指令为什么没有用 B 指令?而是用什么指令实现跳转的?

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号