嵌入式系统复习题.doc
Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date嵌入式系统复习题嵌入式系统复习题1.嵌入式系统的定义是什么?IEEE(国际电气和电子工程师协会)的定义:嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。国内定义:应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统 。 嵌入式系统特点,三要素:嵌入、专用、计算机(1)嵌入到对象体系中,有对象环境要求(2)软、硬件按对象要求裁减(3)实现对象的智能化功能2.嵌入式软件系统分为几个层次?驱动层,OS层,应用层3.嵌入式处理器分为几类?微控制器(MCU) 微处理器(MPU)(Embedded MicroProcessor Unit)数字信号处理器(DSP)( Digital Signal Processor)混合处理器和片上系统(SOC)(System On Chip)可编程片上系统(SOPC)(System On Programmable Chip)4.选择嵌入式微处理器时,应考虑那些因素。5.什么是实时操作系统,如何分类?能够对外部事件做出及时响应的系统。响应时间要有保证。对外部事件的响应包括:(1)事件发生时要识别出来(2)在给定时间约束内必须输出结果实时操作系统必须有以下特征:(1)多任务(2)有线程优先级 (3)多种中断级别实时操作系统又分为:(1)硬实时系统。对系统响应时间有严格的要求,如果系统响应时间不能满足,就会引起系统崩溃或致命的错误。(2)软实时系统: 对系统响应时间有要求,但是如果系统响应时间不能满足,它并不会导致系统出现致命的错误或崩溃,只是降低系统的吞吐量。6.常见嵌入式操作系统有哪些?µC/OS-II:教学的免费、面向中小型嵌入式系统应用。Vxworks:美国WindRiver公司于1983年开发,具有可靠、实时、可裁减特性。WinCE:微软针对个人电脑以外的电脑产品所研发的嵌入式操作系统,CE为Customer Embedded的缩写Linux/µCLinux:免费、源码开放的操作系统,µclinux面向没有MMU的硬件平台。PalmOS :Com公司产品,在PDA市场占据很大份额,具有开放的操作系统应用程序接口(API),可让用户灵活方便地定制操作系统。7.嵌入式系统开发的流程是什么?(1)系统需求分析(2)体系结构设计(3)硬件/软件设计(4)系统集成(5)系统测试8.嵌入式系统开发一般采用什么模式?采用宿主机-目标机的交叉开发模式,需要交叉编译环境。9.ARM7TDMI和ARM920T的区别与联系是什么?ARM7TDMI和ARM920T的体系结构都是V4T,二者区别如下:ARM7TDMI采用的冯·诺依曼 Von Neumann结构,三级流水线:取指,译码,执行。ARM920T采用哈佛(Harvard)结构,程序存储器与数据存储器分开,提供了较大的存储器带宽,采用五级流水线:取指,译码,执行,缓冲/数据,回写)10.ARM异常处理的流程是什么?(1) 保存返回地址(2) 保存当前状态寄存器CPSR的内容(3) 设置当前状态寄存器CPSR中的相应位(4)转去执行中断处理程序(5)异常返回11.ARM异常的优先级如何划分?ARM异常的优先级从高到低分别是:复位、数据终止、FIQ、IRQ、欲取指令终止、未定指令和SWI12.什么是RISC,什么是CISC,采用RISC结构的处理器有何特点?采用RISC结构的处理器特点:固定长度的指令格式,指令归整、简单、基 本寻址方式有23种;使用单周期指令,便于流水线操作执行;大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率13.ARM926EJ-S,各字母代表什么含义9代表:、Family number,ARM7,ARM92代表:Memory system6代表:Memory sizeEJ代表:ExtensionsS代表:Synthesizeble14.ARM7TDMI中的各字母的含义是什么?TDMI的基本含义为(对其它系列也适用): T: 支持16为压缩指令集Thumb D: 支持片上Debug M:内嵌硬件乘法器 Multiplier I: 嵌入式ICE,支持片上断点和调试 15.ARM处理器有几种工作模式和工作状态ARM处理器的两种工作状态:ARM状态和状态种工作模式:(1)用户模式(usr):ARM处理器正常的程序执行状态,大部分任务执行在这种模式。(2)快速中断模式(fiq):当一个高优先级(fast)中断产生时将会进入这种模式,用于高速数据传输或通道处理(3)外部中断模式(irq):当一个低优先级(normal)中断产生时将会进入这种模式。用于通用的中断处理(4)管理模式(svc):当复位或软中断指令执行时将会进入这种模式, 供操作系统使用的一种保护模式。(5)中止模式(abt):当存取异常时将会进入这种模式,用于虚拟存储及存储保护。(6)未定义模式(und):当执行未定义指令时会进入这种模式 ,软件仿真硬件协处理器。(7)系统模式(sys):供需要访问系统资源的操作系统任务使用,运行具有特权的操作系统任务16.ARM状态下分组寄存器R13,R14,R15的功能是什么?R13在ARM指令中常用作堆栈指针R14也称作子程序连接寄存器,保存子程序的返回地址R15用作程序计数器17.ARM异常处理的流程是什么?(1) 保存返回地址(2) 保存当前状态寄存器CPSR的内容(3) 设置当前状态寄存器CPSR中的相应位(4)转去执行中断处理程序(5)异常返回18.ARM异常的优先级顺序是什么?ARM异常的优先级从高到低分别是:复位、数据终止、FIQ、IRQ、欲取指令终止、未定指令和SWI19.CPSR 和SPSR各有什么功能?CPSR(当前程序状态寄存器),CPSR可在任何运行模式下被访问,它包括条件标志位(N、Z、C、V),中断禁止位(I位),快中断禁止位(F位)当前处理器模式标志位,以及其他一些相关的控制和状态位。SPSR(备份的程序状态寄存器),异常发生时,SPSR用于保存CPSR的值,从异常退出时则可由SPSR来恢复CPSR。20.ARM的LOAD/STORE指令有何功能,有哪几类?ARM微处理器用加载/存储(Load/Store)指令访问存储器,实现在寄存器和存储器之间传送数据,LOAD/STORE指分类:单字和无符号字节的加载存储指令:半字加载存储指令:LDRHSTRH有符号字节加载存储指令:LDRSB、LDRSHSTRSB、STRSHARM逻辑运算指令各有什么功能?AND指令可用于提取寄存器中某些位的值ORR指令用于将寄存器中某些位的值设置成1。BIC指令可用于将寄存器中某些位的值设置成0EOR指令可用于将寄存器中某些位的值取反21.ARM指令中的 IA,IB,DA,DB,FD,ED,分别是什么含义?LDM/STM的主要用途是现场保护、数据复制和参数传送等。其模式有如下8种(前面4种用于数据块的传输(为存储操作), 后面4种是堆栈操作:IA: 先传、后地址加4;IB: 先地址加4 、后传;DA:先传、后地址减4;DB:先地址减4 、后传;FD: 满递减堆栈,先地址减4、后传,与DB对应;ED: 空递减堆栈,先传、后地址减4,与DA对应;FA: 满递增堆栈,先地址加4、后传,与IB对应;EA: 空递增堆栈,先传、后地址加4,与IA对应22.软中断指令是什么?SWI23.常用的ARM开发环境有哪些?ADS和GNU24.ARM汇编语言的伪指令有几条,各有什么功能?ADR:小范围的地址读取伪指令。将基于PC相对偏移的地址值或基于寄存器相对偏移的地址值读取到寄存器中ADRL:中等范围的地址读取伪指令。将基于PC相对偏移的地址值或基于寄存器相对偏移的地址值读取到寄存器中,比ADR伪指令可以读取更大范围的地址。LDR:大范围的地址读取伪指令。用于加载32位立即数或一个地址值到指定的寄存器。NOP:空操作伪指令。ADS环境下常用伪操作的含义AREA:定义一个代码段或数据段CODE16、CODE32:告诉编译器后面的指令序列位数ENTRY:指定程序的入口点ALIGN:将当前的位置以某种形式对齐 END:源程序结尾 EQU:为数字常量、基于寄存器的值和程序中的标号定义一个字符名称。EXPORT(GLOBAL):声明源文件中的符号可以被其他源文件引用IMPORT(EXTERN):声明某符号是在其他源文件中定义的25.ARM处理器如何进入和退出thumb指令模式?AREA ChangeState, CODE, READONLY ENTRY CODE32 ;下面为32位ARM指令 LDR R0,=start+1 BX R0 CODE16 ;下面为16位Thumb指令start MOV R1,#10 . END26.ARM汇编语言编程,如何实现子程序的调用?BL SUB1 ;LRß下条指令地址 ;转至子程序SUB1处 SUB1 MOV PC, LR;子程序返回27.ARM映像文件是什么格式ELF格式28.嵌入式系统中常用的闪存芯片有哪些,各有何特点?Nor和Nand FlashNor的特点是XIP(eXecute In Place,芯片内执行),应用程序可以直接在Flash闪存内运行,不必再把代码读到系统RAM中。读速度高,而擦、写速度低,容量小,价格高。Nand flash存储器不能执行程序,但是擦、写速度高,容量大,价格低。 29.S3C2410处理器的内部结构是怎样的?S3C2410由ARM920T内核和片内外设两大部分构成。ARM920T内核由ARM9内核ARM9TDMI、32KB的Cache、MMU三部分组成,片内外设分为高速外设和低速外设,分别用AHB总线和APB总线连接30.S3C2410处理器存储系统如何划分S3C2410X的存储空间分成8组,最大容量是1GB,bank0-bank5为固定128MB,bank6和bank7的容量可编程改变,可以是2、4、8、16、32、64、128MB,并且bank7的开始地址与bank6的结束地址相连接,但是二者的容量必须相等。 bank0可以作为引导ROM,其数据线宽只能是16位和32位,复位时由OM0、OM1引脚确定;其它存储器的数据线宽可以是8位、16位和32位。31.S3C2410处理器工作电压是多少S3C2410X的应用系统,需要使用+5V、3.3V(I/O端口和外设)和1.8V(内核)的直流稳压电源S3C2410处理器中断控制寄存器有几个,分别实现什么功能?SRCPND-中断源挂起(标志)寄存器INTMOD-中断模式寄存器INTMSK-中断屏蔽寄存器PRIORITY-中断优先级寄存器INTPND-中断服务(挂起)寄存器INTOFFSET-中断偏移寄存器SUBSRCPND-子中断源请求标志寄存器INTSUBMSK-子中断源屏蔽寄存器32.S3C2410处理器的I/O端口控制寄存器、数据寄存器和上拉电阻寄存器各有什么作用?端口控制寄存器定义了每个管脚的功能如果端口被配置成了输出端口,可以向数据寄存器的相应位写数据。如果端口被配置成了输入端 口,可以从 数据寄存器的相应位读出数据端口上拉寄存器控制了每个端口组的上拉电阻的允许/禁止。如果某一位为 0,相应的上拉电阻被允许,如果是 1,相应的上拉电阻被禁止35.S3C2410处理器有哪几种中断类型,各自的入口地址是多少?S3C2410处理器支持两种中断类型IRQ 和FIQ。IRQ中断向量地址分别为0x00000018 、FIQ的中断向量地址为0x000000lc。36,多寄存器读写编程举例:LDMIA R0!,R3 - R9 ;加载R0指向地址上的多字数据,保存到R3R9中,R0值更新。STMIA R1!,R3 - R9;将R3R9的数据存储到R1指向的地址上,R1值更新 。STMFD SP!,R0 - R7,LR ;现场保存,将R0R7、LR入栈,SP值更新 。LDMFD SP!,R0 - R7,PC ARM处理器如何从管理模式切换到IRQ模式?MRSR0, CPSR ; BICR0,R0,#0x1f ORRR0,R0,#0x12 ; MSRCPSR_c, R037.汇编语言程序调用C函数EXPORT asmfileAREA asmfile, CODE, READONLYIMPORT cFunENTRY mov r0, #11 mov r1, #22 mov r2, #33 BL cFunEND/*C file, called by asmfile */int cFun(int a, int b, int c) return a + b + c;38.编写程序实现以字的方式进行数据拷贝。R0存放数据的源地址,R1存放目的地址,R2存放字的个数,每次只传输一个字。.global _start.text.equ NUM, 10_start:LDR R0, LDR R1, MOV R2, #NUMcopy:LDR R3, R0, STR R3, R2, SUBS R2, R2 , BNE copy.data.word src 0,1,2,3,4,5,6,7,8,9.word dst 0,0,0,0,0,0,0,0,0,0.end39.编写一段程序,实现从ARM到Thumb,再到ARM的状态切换。ARMADR r0,ThumbProg+1 BX r0 THUMB ThumbProg: .ADR r0,ARMProgBX r0 ARM ARMProg:MOV r4, #440.编写程序,实现将存储器中0x30000000开始的200字节的数据,传送到地址从0x10000000开始的某接口电路的存储区域。STARTLDR R0,=0X30000000LDR R1,=0X10000000MOV R4,#0LKMLDRB R2,R0,#1STRB R2,R1,#1ADD R4,R4,#1CMP R4,#200BLNE LKMEND 41.编写一具有完整汇编格式的程序,实现冒泡法排序功能。设无符号字数据存放在从0x400004开始的区域,字数据的数目字存放在0x400000中。AREA SORT,CODE,READONLYENTRYSTARTMOV R1,#0x400000LPSUBS R1,R1,#1BEQ EXITMOV R7,R1LDR R0,=0x400004LP1LDR R2,R0,#4LDR R3,R0CMP R2,R3STRLO R3,R0, # -4STRLO R2,R0SUBS R7,R7,#1BNE LP1B LPEXITEND -