1.嵌入式系统的定义是什么?IEEE(国际电气和电子工程师协会)的定义:嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”(devicesusedtocontrol,monitor,orassisttheoperationofequipment,machineryorplants)。国内定义:应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统特点,三要素:嵌入、专用、计算机(1)嵌入到对象体系中,有对象环境要求(2)软、硬件按对象要求裁减(3)实现对象的智能化功能2.什么是实时操作系统,如何分类?能够对外部事件做出及时响应的系统。响应时间要有保证。对外部事件的响应包括:(1)事件发生时要识别出来(2)在给定时间约束内必须输出结果实时操作系统必须有以下特征:(1)多任务(2)有线程优先级(3)多种中断级别实时操作系统又分为:(1)硬实时系统。对系统响应时间有严格的要求,如果系统响应时间不能满足,就会引起系统崩溃或致命的错误。(2)软实时系统:对系统响应时间有要求,但是如果系统响应时间不能满足,它并不会导致系统出现致命的错误或崩溃,只是降低系统的吞吐量。3.常见嵌入式操作系统有哪些?µC/OS-II:教学的免费、面向中小型嵌入式系统应用。Vxworks:美国WindRiver公司于1983年开发,具有可靠、实时、可裁减特性。WinCE:微软针对个人电脑以外的电脑产品所研发的嵌入式操作系统,CE为CustomerEmbedded的缩写Linux/µCLinux:免费、源码开放的操作系统,µclinux面向没有MMU的硬件平台。PalmOS:Com公司产品,在PDA市场占据很大份额,具有开放的操作系统应用程序接口(API),可让用户灵活方便地定制操作系统。4.嵌入式系统开发一般采用什么模式?采用宿主机-目标机的交叉开发模式,需要交叉编译环境。5、ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S}含义是什么?x——系列号,例如ARM7中的“7”、ARM9中的“9”;y——内部存储管理/保护单元,例如ARM72中的“2”、ARM94中的“4”;z——内含有高速缓存Cache;T——技持16位的Thumb指令集;D——支持JTAG片上调试;M——支持用于长乘法操作(64位结果)的ARM指令,包含快速乘法器;I——带有嵌入式追踪宏单元ETM(EmbeddedTraceMacro),用来设置断点和观察点的调试硬件;E——增强型DSP指令(基于TDMI);J——含有Java加速器Jazelle,与Java虚拟机相比,Java加速器Jazelle使Java代码运行速度提高了8倍,功耗降低到原来的80%;F——向量浮点单元;S——可综合版本,意味着处理器内核是以源代码形式提供的。这种源代码形式又可以被编译成一种易于EDA工具使用的形式6.ARM7TDMI和ARM920T的区别与联系是什么?ARM7TDMI和ARM920T的体系结构都是V4T,二者区别如下:ARM7TDMI采用的冯·诺依曼VonNeumann结构,三级流水线:取指,译码,执行。ARM920T采用哈佛(Harvard)结构,程序存储器与数据存储器分开,提供了较大的存储器带宽,采用五级流水线:取指,译码,执行,缓冲/数据,回写)7、ARMCortex系列处理器包括哪几个系列?Cotex-A、Cotex-R、Cotex-M三个系列,Cotex-A面向高端的复杂操作系统,Cotex-R面向需要运行实时操作系统来进行控制应用的系统,Cotex-M面向低成本高性能的嵌入式应用设计。8.ARM异常处理的流程是什么?(1)保存返回地址(2)保存当前状态寄存器CPSR的内容(3)设置当前状态寄存器CPSR中的相应位(4)转去执行中断处理程序(5)异常返回9.ARM异常的优先级如何划分?ARM异常的优先级从高到低分别是:复位、数据终止、FIQ、IRQ、欲取指令终止、未定指令和SWI10.什么是RISC,采用RISC结构的ARM处理器有何特点?采用RISC结构的ARM处理器特点:固定长度的指令格式,指令归整、简单、基本寻址方式有2~3种;使用单周期指令,便于流水线操作执行;大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率11.ARM7TDMI中的各字母的含义是什么?TDMI的基本含义为(对其它系列也适用):T:支持16为压缩指令集ThumbD:支持片上DebugM:内嵌硬件乘法器MultiplierI:嵌入式ICE,支持片上断点和调试12.ARM处理器有几种工作模式和工作状态ARM处理器的两种工作状态:ARM状态和THUMB状态7种工作模式:(1)用户模式(usr):ARM处理器正常的程序执行状态,大部分任务执行在这种模式。(2)快速中断模式(fiq):当一个高优先级(fast)中断产生时将会进入这种模式,用于高速数据传输或通道处理(3)外部中断模式(irq):当一个低优先级(normal)中断产生时将会进入这种模式。用于通用的中断处理(4)管理模式(svc):当复位或软中断指令执行时将会进入这种模式,供操作系统使用的一种保护模式。(5)中止模式(abt):当存取异常时将会进入这种模式,用于虚拟存储及存储保护。(6)未定义模式(und):当执行未定义指令时会进入这种模式,软件仿真硬件协处理器。(7)系统模式(sys):供需要访问系统资源的操作系统任务使用,运行具有特权的操作系统任务13.ARM状态下分组寄存器R13,R14,R15的功能是什么?R13在ARM指令中常用作堆栈指针R14也称作子程序连接寄存器,保存子程序的返回地址R15用作程序计数器14.ARM异常处理的流程是什么?(1)保存返回地址(2)保存当前状态寄存器CPSR的内容(3)设置当前状态寄存器CPSR中的相应位(4)转去执行中断处理程序(5)异常返回15.ARM异常的优先级顺序是什么?ARM异常的优先级从高到低分别是:复位、数据终止、FIQ、IRQ、欲取指令终止、未定指令和SWI16.CPSR和SPSR各有什么功能?CPSR(当前程序状态寄存器),CPSR可在任何运行模式下被访问,它包括条件标志位、中断禁止位、当前处理器模式标志位,以及其他一些相关的控制和状态位。kSPSR(备份的程序状态寄存器),异常发生时,SPSR用于保存CPSR的值,从异常退出时则可由SPSR来恢复CPSR。17.什么叫小端存储格式,什么叫大端存储格式?小端存储格式:低字节存低地址,高字节存高地址大端存储格式:低字节存高地址,高字节存低地址18、读ARM指令ADDR3,R2,R1,LSR#2;R3←R2+(R1右移2位)ADDR3,R2,R1,LSRR0;R3←R2+(R1右移R0位)SUBR3,R2,R1,RRXR0;R3←R2-(R1带进位位循环右移R0位)LDRR0,[R1];R0←[R1]STRR0,[R1];[R1]←R0LDRR0,[R1,#4];R0←mem32[R1+4]LDRR0,[R1,#4]!;R0←mem32[R1+4];R1←R1+4STRr0,[r1],#12;MEM32[r1]R0;R1-R1+12ADDSR3,R1,R2,LSL#2;R3=R1+R22,修改CPSR的值ADDSR4,R0,R2;使用ADC实现64位加法ADCR5,R1,R3;(R5、R4)=(R1、R0)+(R3、R2)RSBR3,R1,#0xFF00;R3=0xFF00-R1RSBSR1,R2,R2,LSL#2;R1-R22-R2UMULLR0,R1,R5,R8;(R1,R0)R5×R8UMLALR0,R1,R5,R8;(R1,R0)R5×R8+(R1,R0)SMLALR2,R3,R7,R6;(R3,R2)R7×R6+(R3,R2)LDRr0,[r1];将R1地址中的值存到r0中LDRr1,[r2,#16];将(r2+16)地址中的内容存到r1中LDRr1,[r2],#4;将r2地址中的内容存到r1中,同时r2=r2+4STRr1,[r2];将r1中的值存到r2所指定的地址中STRr1,[r2,#-4];将r1中的值存到r2-4所指定的地址中STRr1,[r2],#4;将r1中的值存到r2所指定的地址中,同时r2=r2+4STRSBR0,[R1];将存储器地址为R1的有符号字节数据读入寄存器R0,并将R0的高24位清零LDRBR0,[R1];将存储器地址为R1的字节数据读入寄存器R0,并将R0的高24位清零LDRBR0,[R1,#8];将存储器地址为R1+8的字节数据读入寄存器R0,并将R0的24位清零19、什么是前变址寻址方法,什么是后变址寻址方法?前变址法:基地址寄存器中的值和地址偏移量先作加减运算,生成的操作数作为内存访问的地址。后变址法:将基地址寄存器中的值直接作为内存访问的地址进行操作,内存访问完毕后基地址寄存器中的值和地址偏移量作加减运算,并更新基地址寄存器。20.ARM的LOAD/STORE指令有何功能,有哪几类?ARM微处理器用加载/存储(Load/Store)指令访问存储器,实现在寄存器和存储器之间传送数据,LOAD/STORE指分类:单字和无符号字节的加载/存储指令:LDR/STR半字加载/存储指令:LDRH/STRH有符号字节加载/存储指令:LDRSB、LDRSH/STRSB、STRSH21.ARM逻辑运算指令各有什么功能AND指令可用于提取寄存器中某些位的值ORR指令用于将寄存器中某些位的值设置成1。BIC指令可用于将寄存器中某些位的值设置成0EOR指令可用于将寄存器中某些位的值取反21.ARM指令中的IA,IB,DA,DB,FD,ED,FA,EA分别是什么含义?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、分析下面指令执行的结果MOVR1,#0x9000MOVR0,#0x11MOVR2,#0x22MOVR3,#0x33MOVR4,#0x44MOVR5,#0x55STMDBR1!,{R0,R2-R5}23.设置CPSR进位C标志MRSR0,CPSR;R0CPSRORRR0,R0,#0x20000000;置1进位位CMSRCPSR_f,R0;CPSR_fR0[31:24]从管理模式切换到IRQ模式MRSR0,CPSR;R0CPSRBICR0,R0,#0x1f;低5位清零ORRR0,R0,#0x12;设置为IRQ模式MSRCPSR_c,R0;传送回CPSR24.ARM软中断指令和断点中断指令是什么?SWI、BKPT25.常用的ARM开发编译环境有哪些?1、ADS/SDT、RealViewMDK等ARM公司推出的开发工具2、GNU26.ARM汇编语言的伪指令有几条,各有什么功能?ADR:小范围的地址读取伪指令。将基于PC相对偏移的地址值或基于寄存器相对偏移的地址值读取到寄存器中ADRL:中等范围的地址读取伪指令。将基于PC相对偏移的地址值或基于寄存器相对偏移的地址值读取到寄存器中,比ADR伪指令可以读取更大范围的地址。LDR:大范围的地址读取伪指令。用于加载32位立即数或一个地址值到指定的寄存器。NOP:空操作伪指令。27.ADS/SDT环境下常用伪操作的含义全局变量定义GCLA、GCLL及GCLS变量赋值伪操作SETA、SETL及SETS分配字节存储单元DCB分配半字存储单元DCW及DCWU分配字存储单元DCD及DCDU声明数据缓冲池LTORGAREA:定义一个代码段或数