资源预览内容
第1页 / 共26页
第2页 / 共26页
第3页 / 共26页
第4页 / 共26页
第5页 / 共26页
第6页 / 共26页
第7页 / 共26页
第8页 / 共26页
第9页 / 共26页
第10页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
ARM 嵌入式系统结构与编程习题答案 第一章 绪论1.国内嵌入式系统行业对“嵌入式系统”的定义是什么?如何理解?答:国内嵌入式行业一个普遍认同的定义是:以应用为中心, 以计算机技术为基础,软硬件可裁剪,适应应用系统对功能,可靠性,成本,体积,功耗严格要求的专业计算机系统。从这个定义可以看出嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的剪裁利用。因此有人把嵌入式系统比作是一个针对特定的应用而“量身定做”的专业计算机系统。2嵌入式系统是从何时产生的,简述其发展历程。答:从 20 世纪 70 年代单片机的出现到目前各式各样的嵌入式微处理器,微控制器的大规模应用,嵌入式系统已经有了30 多年的发展历史。嵌入式系统的出现最初是基于单片机的。Intel 公司 1971 年开发出第一片具有4 位总线结构的微处理器4004,可以说是嵌入式系统的萌芽阶段。80 年代初的8051 是单片机历史上值得纪念的一页。 20 世纪 80 年代早期,出现了商业级的“实时操作系统内核”,在实时内核下编写应用软件可以使新产品的沿着更快,更节省资金。20 世纪 90 年代实时内核发展为实时多任务操作系统。步入 21 世纪以来, 嵌入式系统得到了极大的发展。在硬件上, MCU 的性能得到了极大的提升,特别是 ARM 技术的出现与完善,为嵌入式操作系统提供了功能强大的硬件载体,将嵌入式系统推向了一个崭新的阶段。3当前最常用的源码开放的嵌入式操作系统有哪些,请举出两例,并分析其特点。答:主要有嵌入式Linux 和嵌入式实时操作内核uC/OS-II 嵌入式 Linux 操作系统是针对嵌入式微控制器的特点而量身定做的一种Linux 操作系统, 包括常用的嵌入式通信协议和常用驱动,支持多种文件系统。主要有以下特点:源码开放, 易于移植,内核小,功能强大,运行稳定,效率高等。uC/OS 是源码工卡的实时嵌入式系统内核,主要有以下特点:源码公开,可移植性强,可固化,可剪裁,占先式,多任务,可确定性,提供系统服务等。4举例说明嵌入式设备在工控设备中的应用。答:由于工业控制系统特别强调可靠性和实时性,“量身定做”的嵌入式控制系统恰能满足工业控制的需求。例如:工业过程控制, 数字控制机床, 电网设备监测, 电力自动控制系统,石油化工监控等。5嵌入式技术的发展趋势有哪些?答:未来嵌入式系统的发展趋势有:1.随着信息化与数字化的发展,嵌入式设备进行网络互联是未来发展的趋势。2.优化嵌入式系统软硬件内核,提高系统运行速度,降低功耗和硬件成本。 3.指令集的并行计算技术将引入嵌入式微处理器。4.嵌入式微处理器将会向多核技术发展。 5.嵌入式技术将引领信息时代。第 2 章 ARM 技术与 ARM 体系结构1.简述 ARM 处理器内核调试结构原理答: ARM 处理器一般都带有嵌入式追踪宏单元ETM (Embedded Trace Macro ) ,它是 ARM公司自己推出的调试工具。ARM 处理器都支持基于JTAG(Joint Test Action Group 联合测试行动小组)的调试方法。它利用芯片内部的Embedded ICE 来控制 ARM 内核操作,可完成单步调试和断点调试等操作。当CPU 处理单步执行完毕或到达断点处时,就可以在宿主机端查看处理器现场数据,但是它不能在CPU 运行过程中对实时数据进行仿真。ETM 解决了上述问题,能够在CPU 运行过程中实时扫描处理器的现场信息,并数据送往TAP( Test Access Port)控制器。上图中分为三条扫描链(图中的粗实线),分别用来监视ARM 核, ETM ,嵌入式ICE 的状态。2.分析 ARM7TDMI-S各字母所代表的含义。 答: ARM7 T D M I S 中ARM 是 Advanced RISC Machines 的缩写7 是系列号;T:支持高密度16 位的 Thumb 指令集;D:支持 JTAG 片上调试;M:支持用于长乘法操作(64 位结果) ARM 指令,包含快速乘法器;I:带有嵌入式追踪宏单元ETM ,用来设置断点和观察点的调试硬件;S:可综合版本,意味着处理器内核是以源代码形式提供的。这种源代码形式又可以编译成一种易于EDA 工具使用的形式。3.ARM处理器的工作模式有哪几种,其中哪些为特权模式,哪些为异常模式,并指出处理器在什么情况下进入相应的模式。答: ARM 技术的设计者将ARM 处理器在应用中可能产生的状态进行了分类,并针对同一类型的异常状态设定了一个固定的入口点,当异常产生时, 程序会自动跳转到对应异常入口处进行异常服务。1用户模式:非特权模式,也就是正常程序执行的模式,大部分任务在这种模式下执行。在用户模式下,如果没异常发生,不允许应用程序自行改变处理器的工作模式,如果有异常发生,处理器会自动切换工作模式2FIQ 模式:也称为快速中断模式,支持高速数据传输和通道处理,当一个高优先级(fast)中断产生时将会进入这种模式。3IRQ 模式:也称为普通中断模式,:当一个低优先级(normal) 中断产生时将会进入这种模式。在这模式下按中断的处理器方式又分为向量中断和非向量中断两种。通常的中断处理都在IRQ 模式下进行。4SVC 模式:称之为管理模式,它是一种操作系统保护模式。当复位或软中断指令执行时处理器将进入这种模式。5中止模式:当存取异常时将会进入这种模式,用来处理存储器故障、实现虚拟存储或存储保护。6未定义指令异常模式:当执行未定义指令时会进入这种模式,主要是用来处理未定义的指令陷阱,支持硬件协处理器的软件仿真,因为未定义指令多发生在对协处理器的操作上。7系统模式:使用和User 模式相同寄存器组的特权模式,用来运行特权级的操作系统任务。在这 7 种工作模式中, 除了用户模式以外,其他 6 种处理器模式可以称为特权模式,在这些模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换。在这 6 种特权模式中,除了系统模式外的其他5 种特权模式又称为异常模式,每种异常都对应有自己的异常处理入口点。4.分析程序状态寄存器(PSR)各位的功能描述,并说明C,Z,N,V 在什么情况下进行置位和清零。答:条件位:N = 1- 结果为负 , 0-结果为正或0 Z = 1- 结果为 0, 0-结果不为 0 C =1-进位,0-借位V =1- 结果溢出,0 结果没溢出Q 位:仅 ARM 5TE/J 架构支持指示增强型DSP 指令是否溢出中断禁止位:I = 1: 禁止IRQ. F = 1: 禁止FIQ. T Bit 仅 ARM xT 架构支持T = 0: 处理器处于ARM 状态T = 1: 处理器处于Thumb 状态Mode 位(处理器模式位 ): 0b10000 User 0b10001 FIQ 0b10010 IRQ 0b10011 Supervisor 0b10111 Abort 0b11011 Undefined 0b11111 System 5.简述 ARM 处理器异常处理和程序返回的过程。答:只要正常的程序流被暂时中止,处理器就进入异常模式。例如响应一个来自外设的中断。在处理异常之前,ARM7TDMI内核保存当前的处理器状态,这样当处理程序结束时可以恢复执行原来的程序。如果同时发生两个或更多异常,那么将按照固定的顺序来处理异常。异常或入口返回指令向量表偏移处理器模式优先级BLMOV PC,R14SWI MOVS PC,R14_svc SVC 6 0x00000008 未定义的指令MOVS PC,R14_und UND 6 0x00000004 预取指中止SUBS PC,R14_abt,#4 ABT 5 0x0000000C 快中断SUBS PC,R14_fiq,#4 FIQ 3 0x0000001C 中断SUBS PC,R14_irq,#4 IRQ 4 0x00000018 数据中止SUBS PC,R14_abt,#8 ABT 2 0x00000010 复位无SVC 1 0x00000000 在异常发生后,ARM7TDMI内核会作以下工作:1.在适当的LR 中保存下一条指令的地址2.将 CPSR 复制到适当的SPSR 中;3. 将 CPSR 模式位强制设置为与异常类型相对应的值;4.强制 PC 从相关的异常向量处取指。ARM7TDMI内核在中断异常时置位中断禁止标志,这样可以防止不受控制的异常嵌套。注:异常总是在ARM 状态中进行处理。当处理器处于Thumb 状态时发生了异常,在异常向量地址装入PC 时,会自动切换到ARM 状态。当异常结束时,异常处理程序必须:1.将 LR 中的值减去偏移量后存入PC,偏移量根据异常的类型而有所不同;2.将 SPSR 的值复制回CPSR;3.清零在入口置位的中断禁止标志。注:恢复CPSR 的动作会将T、F 和 I 位自动恢复为异常发生前的值。6.ARM 处理器字数据的存储格式有哪两种?并指出这两种格式的区别。 答: ARM7TDMI处理器可以将存储器中的字以下列格式存储大端格式( Big-endian)小端格式( Little-endian )小端存储器系统:在小端格式中, 高位数字存放在高位字节中。因此存储器系统字节0 连接到数据线70。大端存储器系统:在大端格式中, 高位数字存放在低位字节中。因此存储器系统字节0 连接到数据线31 24。7.分析带有存储器访问指令(LDR)的流水线运行情况,并用图示说明流水线的运行机制。答:存储器访问指令LDR 流水线举例取指的存储器访问和执行的数据路径占用都是不可同时共享的资源,对于多周期指令来说,如果指令复杂以至于不能在单个时钟周期内完成执行阶段,就会产生流水线阻塞。对存储器的访问指令LDR 是非单周期指令LDR 指令的执行,访问存储器,回写寄存器(占用了3 个周期)。造成了MOV 指令的执行被阻断。8.简述 ARM9 的 5 级流水线每一级所完成的功能和实现的操作。答: ARM920 在指令操作上采用5 级流水线. 取指:从指令Cache 中读取指令。译码: 对指令进行译码, 识别出是对哪个寄存器进行操作并从通用寄存器中读取操作数。执行:进行ALU 运算和移位操作,如果是对存储器操作的指令,则在ALU 中计算出要访问的存储器地址。存储器访问:如果是对存储器访问的指令,用来实现数据缓冲功能(通过数据Cache) 。寄存器回写:将指令运算或操作结果写回到目标寄存器中。9.什么叫流水线互锁?应如何来解决,举例说明。答:互锁: 当前指令的执行需要前面指令的执行结果,但前面的指令没有执行完毕,引起流水线的等待。互锁发生时,硬件会停止指令的执行,直到数据准备好。上边程序中ORR 指令执行时需要使用LDR 指令加载后的R4 寄存器,因此造成了ORR 指令的等待。编译器以及汇编程序员可以通过重新设计代码的顺序或者其他办法来减少互锁的数量。第 3 章 ARM 指令集寻址方式 1.在指令编码中,条件码占几位,最多有多少个条件,各个条件是如何形成的?答:条件码占4 位,最多有15 个条件操作码条件助记符标志含义0000 EQ Z=1 相等0001 NE Z=0 不相等0010 CS/HS C=1 无符号数大于或等于0011 CC/LO C=0 无符号数小于0100 MI N=1 负数0101 PL N=0 正数或零0110 VS V=1 溢出0111 VC V=0 没有溢出1000 HI C=1,Z=0 无符号数大于1001 LS C=0,Z=1 无符号数小于或等于1010 GE N=V 有符号数大于或等于1011 LT N!=V 有符号数小于1100 GT Z=0,N=V 有符号数大于1101 LE Z=1,N!=V 有符号数小于或等于1110 AL 任何无条件执行( 指令默认条件) 1111 NV 任何从不执行 (不要使用 ) 2. 指令条件码中,V 标志位在什么情况下才能等于1?答: V溢出标志位对于加减法运算指令,当操作数和运算结果为二进制补
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号