《ARM嵌入式系统试题及答案解析.docx》由会员分享,可在线阅读,更多相关《ARM嵌入式系统试题及答案解析.docx(27页珍藏版)》请在课桌文档上搜索。
1、ARM嵌入式系统基础教程期中开卷专业:软件1002班姓名:王世伟学号:04103060(24)一、嵌入式系统基本概念1、什么是嵌入式系统?有何特点?答:所谓嵌入式,事实上是“嵌入式计算机系统”,的简称,它是相对于通用计算机系统而言,留意于发展独立的单芯片技术。嵌入式系统是“限制、监视或者帮助装置、机器和设备运行的装置”。特点:(1)嵌入式系统是将先进的计算机技术,半导体技术以与电子技术与各行业的具体应用相结合的产物,这一点就确定了他必定是一个技术密集,资金密集,高度分散,不断创新的学问集成系统。(2)系统内核小(3)专用性强(4)系统精简(5)系统软件要求(6)嵌入式软件开发要走向标准化,须要
2、运用多任务的操作系统。(7)嵌入式系统本身并不具备在其上进行进一步开发的实力。2、举例在你的身边常见到的嵌入式系统产品,谈一谈你对“嵌入式系统”的初步理解。答:产品有:洗衣机,空调,手机。嵌入式系统就是内置小计算机系,可以对机器进行智能限制的系统。3、嵌入式系统的3个基本特点?答:(1)专用性(2)嵌入型(3)计算机系统4、什么是嵌入式处理器,嵌入式处理器可以分为几大类?答:嵌入式处理机是嵌入式的核心,是限制,帮助系统运行的硬件单元。分类:四大类(1)嵌入式微处理器(2)嵌入式微限制器(3)嵌入式DSP处理器(4)SoC片上系统5、广泛运用的三种类型的操作系统?答:多道批处理操作系统、分时操作
3、系统以与实时操作系统。6、列举常见的4种嵌入式操作系统?说明你对嵌入式操作系统的基本相识,嵌入式操作系统在嵌入式系统开发中的必要性。答:嵌入式LinUx、WinCE、VXWOrks、uC/OS-II没有操作系统的计算机效率特殊底下,把操作系统嵌入到计算机中,可以提高系统的牢靠性,开发效率,缩短了开发周期。二、ARM7体系结构1、ARM是什么样的公司?答:它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC处理器。特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并供应服务。2、什么是RISC?什么是CISC?答:RlSC是精简指令集计
4、算机的缩写。ClSC是困难指令集计算机的缩写。3、举出2个ARM公司当前应用比较多的ARM处理器核?答:ARM7系列、ARM9系歹!|、ARMlO系歹(、ARMll系列、intel的Xscale系列和MPCore系列。4、ARM7TDMI中的T、D、S、I分别表示什么含义?答:T:支持高密度16位的ThUmb指令集D:支持片上调试S:ARM7TDMI的可综合(SyntheSiZabIe)版本(软核)I:支持EmbededlCE视察硬件M:支持64位乘法5、ARM7TDMI处理器接受什么样的体系结构,其可寻址地址空间多大?答:ARM处理器运用冯诺依曼结构运用单个平面的232个8位字节地址空间。地
5、址空间可以看作是包含230个32位字,或2同个16位半字。6、ARM7TDMI处理器接受几级流水线处理,运用何种存储器编址方式?答:ARM7TDMI处理器接受三级流水线。ARM处理器将存储器看做是一个从O起先的线性递增的字节集合。7、ARM处理器哪几种状态和模式?答:共7种。(1)用户模式(2)快速中断模式(3)外部中断模式(4)管理模式(5)数据访问中断模式(6)系统模式(7)未定义指令模式8、简述ARM处理器两种状态的应用特点。答:ARM状态:处理器执行32位字对齐方式的ARM指令,每条ARM指令长度为32位,指令的功能强大,处理器默认为此状态。Thumb状态:处理机执行16位半字对齐方式
6、的Thumbo每条ThUmb指令长度为16位,是ARM指令功能的子集。9、简述ARM处理器7种模式的应用特点。答:(1)用户模式:ARM处理器正常的程序执行模式。(2)快速中断模式:用于高速数据传输或通道处理。(3)外部中断模式:用于通用的中断处理。(4)管理模式:操作系统运用的爱惜模式。(5)数据访问中断模式:当数据或指令预取终止时进入该模式,可用于虚拟存储与存储爱惜。(6)系统模式:运行具有特权的操作系统任务。(7)未定义指令模式:当未定义的指令执行时进入该模式,可用于支持硬件处理器的软件仿真。10、结合CPSR的结构,说明其中的M4:0的作用和T位的作用。答:M4:0是模式限制位,这些位
7、确定处理器的工作模式。T位:T位标记限制处理器依据ARM指令集运行,还是依据ThUmb指令集运行。3130292827876543210NZCVIFTM4M3M2MlMO11、结合CPSR的结构,说明其中的I位和F位的作用。答:I位和F位都是中断禁止标记位,用来时能或禁止ARM的两种外部中断。3130292827876543210NZCVIFTM4M3M2M1MO12、简述ARM7TDMI内部有哪些寄存器与特点。答:分别为31个通用32位寄存器和6个状态寄存器。它们不能在同一用劲同时被访问,对其的访问取决于处理器状态和处理器模式。13、结合下表简述FIQ模式下有哪几个私有寄存器,这些私有寄存器
8、有何运用特点?.存类JN中的冬春各,式下实BW间的用户中止朱定义中新快中,R0(a1)ROR1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8.flqR9(SB,v6)R9R9-qR10(SLtv7)R10R10-fkjR11(FP,v)R11RlulqR12(IP)R12R12JlqR13(SP)R13R13-scvR13_abtRI3JndR13JrqR13_fqR14(LR)R14R14-vcR14-abtR14_undR13-lrqR14JqR15(PC)R15CPSRCPSRSPSR-SPSR_vcSPS
9、R_abtSPSR_undSPSRJrqSPSRJIq答:FIQ模式下私有寄存器有R8-fiq,R9-fiq,R10-fiq,Rll-fiq,R12-fiq,R13-fiq,R14-fiq,和SPSR-fiq。这些寄存器使得在发生FIQ中断,处理器不必为爱惜寄存器而奢侈时间,从而加速了FlQ的处理速度。14、ARM7TDMI中的PC指向的是下一条将要执行的指令,这句话对吗?为什么?答:不对,PC中的内容总是指向正在“取指”指令的地址。15、简述ARM处理器的CPSR和SPSR的功能、作用和工作方式。答:CPSR是当前状态寄存器,他可以在任何运行模式下被访问,它包括条件标志位,中断标记位,当前处
10、理器模式标记位,以与其他的一些相关的限制盒状态位。ARM内核就是通过运用CPSR来监视和限制内部操作的。SPSR用于保存CPSR的当前值,从异样退出时则可由SPSR来复原CPSRo16、简述ARM7的内部寄存器RI3、RI4、R15的主要功能、作用和工作方式。答:R13作为堆栈指针SP,用于指定堆栈操作出入口的地址。其他6个R13寄存器为堆栈寄存器。为用户模式和系统模式共用一个。R14可以用作通用寄存器,也可以用作链接寄存器。链接寄存器用于保存子程序地址或者返回地址。R15:程序寄存器,总是指向正在“取指”的指令17、什么是计算机的寻址方式?ARM7TDMI有几种寻址方式?答:寄存器寻址、立刻
11、寻址、寄存器移位寻址、寄存器间接寻址、基址寻址、多寄存器寻址、堆栈寻址、相对寻址。18、什么是堆栈?ARM中的堆栈是如何定义和运用的?答:堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top)对数据项进行插入和删除。ARM处理器将RB作为堆栈指针SP,用于保存堆栈的出入口处地址。19、何谓存储的“大端模式”、“小端模式”?写出数据0x12345678在0x20000000字单元中“小端模式”下的存储微小环节。答:大端模式:依据数据的低字节存放在高地址中的依次进行存储。小端模式:依据数据的高字节存放在高地址中的依次进行存储。OX存放0x78,Oxl存放0x56,0x2存放0x340
12、x3存放0xl2o20、什么是“字对齐”和“半字对齐”?ARM指令必需字对齐存放,ThUmb指令必需半字对齐存放,这句话正确吗?答:假如一个字数据的访问存储地址A能被4整除,即地址的低两位为零,则为字对齐的存储器访问。假如一个半数据的访问的存储地址A能被2整除,即地址的最低位为零,则为半字对齐的存储器访问,假如ThUmb状态下将一个非字对齐的地址写入PC,则数据在写入PC时第0位被忽视,最终PC的bit为0,将会产生不行预料的结果。21、ARM指令长度和ThUnlb指令长度固定位长吗?位长分别是多少?答:固定,ARM为一个字(32bit),ThUnIb为一个半字(16bit)22、ARM7TD
13、MI中的中断分为那两类?在CPU级别如何分别屏蔽?答:分别为IRQ,FIQ,在cpu级别通过状态寄存器CPSR中的I和F位置位来屏蔽。23、什么是ARM7TDMI中的异样?简述ARM7TDMI中的复位、IRQ、FIQ和软中断等几种主要异样的限制原理。答:异样是指正常的程序被短暂中止的状态模式。复位异样时处理器进行管理模式执行相应操作,I和F均为禁止;软中断异样也进入管理模式,I位禁止;IRQ异样时进入中断模式,I位禁止;FIQ异样进入快速中断模式,I和F位均为禁止,都是通过异样向量表。24、简述ARM7TDMI中产生复位、IRQ、FlQ和软中断等几种主要异样的条件,这几种异样会使ARM分别进入
14、到哪种模式?ARM核响应异样的过程,以与这几种异样地返回指令是什么?答:复位异样:当nRESET信号被拉低时,ARM处理器放弃正在执行时的指令,等到nRESET下信号再次变高时,ARM执行下列操作:(1)强制M4:0复为IOoI1,进入管理模式;(2)将CPSR中的I和F置位;(3)将CPSR中的T位清零(4)强制pc从地址0x00起先对下一条指令进行取值;(5)返回ARM状态并回复执行,无返回指令。IRQ:只有CPSR中相应的I位被清除时,才可能发生IRQ异样,进入中断模式,内核自动作如下处理:(1)将异样处理的返回地址保存到R14-irq中(2)用户模式的CPSR被保存到SPSRVrq中;
15、(3)修改CPSR,禁止新的IRQ中断产生,进入ARM状态,IRQ模式(4)置IRQ模式下的IRQ异样处理程序的中断入口地址向量。地址OXooooOO18。返回指令:subspc,R14-irq,#4FIQ:只有CPSR中的想用下位被清零时,才发生下IQ异样进入FlQ模式,FIQ中的8个专用寄存器用来爱惜中断地址。其返回指令:subspc,R14-fiq,#4软中断SWi:用于进入“管理模式”,通常用于请求一个特定的管理函数。返回指令:movspc,R14-svc三、ARM7TDMI指令系统1、ARM7TDMI支持哪几种指令集,各有什么特点?答:支持ARM指令集和ThUnIb指令集两种。ARM
16、指令集:指令32位,效率高,代码密度低,全部ARM指令都是可以有条件执行的。Thumb指令集:指令16位,代码密度较高,Thumb指令仅有一条指令具备条件执行功2、ARM汇编指令的基本格式?答:基本指令:在ARM指令集中,每条指令占有4个字节,即指令长度为32位。3、何谓ARM指令的条件码?默认的条件码是什么?举例说明ARM指令的条件码对指令执行的影响。答:条件码是依据指定条件执行的操作条件:默认条件码是AL(无条件执行)例子:比较两值大小,并进行相应加1处理:CmPRO,RI;ADDHIRO,R0,#1;ADDLSRl,Rl,#14、说明何为“满堆栈”、“空堆栈”、“递增堆栈”和“递减堆栈”
17、?ARM指令系统中是如何支持的?答:满堆栈:堆栈指针指向最终压入栈的有效数据项。空堆栈:堆栈指针指向下一个待压入数据的空位置。递增堆栈:在向堆栈写入数据后,堆栈指针的值变大,即向高地址方向生长。递减堆栈:在想堆栈写入数据后,堆栈指针的值变小,即向低地址方向生长。ARM指令支持四种对战类型:满递增,空递增,满递减,空递减。5、请说明MOV指令与LDR加载指令的区分和用途。答:LDR的操作数既可以来源于寄存器也可以来源于存储器,MOV的操作数能来源于寄存器。1.DR指令从内存中读取数据放入寄存器,用于对内存变量和数据的访问、查表、程序的跳转、外围部件的限制操作等;MOV指令将8位立刻数或寄存器传送
18、到目标寄存器(Rd),可用于移位运算等操作。6、说明B指令、BL指令与BX指令的功能差别?简述他们的应用场合。答:B指令:是分支指令,跳转到标号指定的地址程序。Bl指令:带连接的分支指令,跳转到指定的地址程序,同时还将程序计数器PC的值保存到LR寄存器中。BX指令:带状态切换的分支指令,跳转到Rm指定的地址处执行程序,依据跳转地址的最低位来切换处理器状态。B/BL指令跳转范围限制在当前指令的+-32MB地址内。7、说明SWl(软中断)指令的执行过程和典型应用。答:SWl指令用于产生软中断,从而实现先从用户模式到管理模式的变换。在切换时,CPSR寄存器内容将保存到管理模式的SPSR中,同时程序跳
19、转到SWI异样向量入口处。SWI用于系统功能调用。8、ARM汇编指令条件码如下表,分析下两段程序片断的功能,写出其等价的类C语言功能描述:条件助记符标记含义EQZ=I相等NEZ=O不相等CS/HSC=I无符号数大于或等于CC/LOC=O无符号数小于MIN=I负数PLN=O正数或零VSV=I溢出VCV=O没有溢出HIC=l,Z=O无符号数大于LSC=0,Z=I无符号数小于或等于GEN=V有符号数大于或等于LTNl=V有符号数小于GTZ=0,N=V有符号数大于LEZ=l,Ni=V有符号数小于或等于AL任何无条件执行(指令默认条件)NV任何从不执行(不要运用)程序片断1:CMPRO,RlDDHIRO
20、,RO,#1DDLSRl,Rl,#1程序片断2:CMPRO,#10CMPNERl,#20DDNE RO , RO ,Rl答:if (ROR1)if(R0!=10)RO+;if(Rl!=20)RO+=R1;elseRl+;9、结合ARM7TDMI结构中的流水线结构,说明IRQ中断返回指令:SUBSPC,R14_irq,#4的原理答:ARMTTDMI接受三级流水线结构,PC指向正在取值的指令,产生IRQ时,保存在R14-IRQ中的是PC的值,在返回时为保证正确性应返回到PC-4即中断前“正在译码”的指令地址。所以返回指令为:subspc,R14-irq,#4;四、LPC2000系列ARM硬件资源原
21、理与运用1、LPC2000系列器件有几种常见的封装形式和其封装特点?答:常见的封装有64脚封装,144脚封装特点:功耗低,有多个32位定时器,多达9个外部中断,16K字节静态RAM,l128256k字节片FlaSh存储器,128为宽度接口加速器,4路10位ADC或8路10位ADC(64脚和144脚封装),46或76112个GPlO(64脚和144脚封装)。2、简要说明一下LPC2000系列器件片内存储器的特点?答:片内存储器分为片内Flash和片内静态RAM。片内Flash通过128位宽度的总线与ARM内核相连,具有很高的速度,特有的存储器加速功能,可以将程序干脆放在Flash上运行。SRAM
22、支持8位、16位和32位的读写访问。3、 在LPC2000系列ARM芯片中,内Flash有哪几种写入方式?答:(1)运用JTAG仿真/调试器,通过芯片的JTAG借口下载程序。(2)运用在系统编程技术,通过UARTo接口下载程序。(3)运用在应用编程技术,在用户程序运行时对FIaSh进行擦出和/或编程操作,实现数据的存储和固件的现场升级。4、ARM寄存器PC、CPSRSPSR分别有什么用?答:PC是CUP中的程序计数器,内容总是指向正在“取指”指令的地址。CPSR是当前程序状态寄存器,用来监视和限制内部操作的。SPSR是物理状态寄存,用于保存CPSR的当前值,从异样退出时则由它来复原CPSRo5
23、、什么是ARM处理器的异样?ARM处理器是如何处理异样的?答:异样:在执行正常程序过程中,当发生某种异样事务或某种外部请求时,处理器就暂停执行当前的程序,进入异样模式。如何处理异样:1)保存执行状态:将CPSR复制到发生的异样模式下的SPSR中。2)模式切换:将CPSR模式位强制设置为与异样类型相对应的值,同时处理器进入到ARM执行模式,禁止全部IRQ中断,当进入FlQ快速中断模式时禁止FlQ中断。3)保存返回地址:将下一条指令的地址(被打断程序)保存在LR(异样模式下LR_excep)中。4)跳入异样向量表:强制设置PC的值为相应异样向量地址,跳转到异样处理程序中。6、什么是ARM体系结构中
24、的异样向量表?在应用中有何作用?答:处理器规定了异样处理程序入口的地址区间,并规定了地址的存放依次,一般称为异样向量表。在异样处理过程中,可以加快异样服务的响应速度。7、在ARM体系结构中,异样向量表中存放的是什么内容?答:异样处理程序的程序入口地址。8、在ARM体系结构中,异样向量表中OXO014(保留字)单元存放的是什么内容?有何用途?答:保留的异样入口,早期的ARM结构中会被用到,而在ARM7中是保留的,以确保软件能与不同的ARM结构兼容。而在有些处理器芯片中,这4个字节已经有了特殊特殊的用特。9、什么是ISP技术?IAP技术?在实际应用中有何实际意义?答:ISP:在系统可编程指电路板上
25、的空白器件可以编程写入最终用户代码而不须要从电路板上取下器件已经编程的器件也可以用ISP方式擦除或再编程。IAP:是指在应用编程,即在程序运行中编程,就是片子供应一系列的机制(硬件/软件上的)当片子在运行程序的时候可以供应一种变更flash数据的方法。10、LPC2000系列器件中,许多芯片的引脚具有多种功能,应用中如何运用其特定的功能?答:设置寄存器PINSEL0、PINSEL1、PlNSEL2为特定功能的值。11、简述LPC2000系列芯片的引脚设置寄存器PlNSEL0、PINSEL1、PINSEL2的具体功能?答:PINSELO限制引脚PO(PO15的连接状态,每两位限制一个引脚。PIN
26、SEL1限制引脚PO.限P0.31的连接状态,每两位限制一个引脚。PINSEL2限制PI端口和P2端口。12、简述LPC2000系列芯片内部GPIO的功能特点?答:(1)可以独立限制每个GPlo口的方向;(2)可以独立设置每个GPK)的输出状态;(3)全部GPIO口在复位后默认位输入状态。13、结合GPIO结构原理图,简述GPlO的工作方式设置内容。芯片引脚答:芯片某个管脚首先经过UniX功能选择,对应PINSELX寄存器选择其功能,如果选择GPIO功能,在经过MUX2中IOxDIR寄存器对应位选择,限制管脚输入输出方向,GPIO管脚输入时通过IoXPIN寄存器读入,输出时通过IoXSET或I
27、OXCLR寄存器限制输出实现对应GPIO管脚的限制。14、设计编程:LPC2131的P0.7引脚连接了一个蜂鸣器,编程发出等周期的滴滴声。答:#defineVoidDelayNS(intm)inti;for(;m0;m一)for(i=0;i向量旧Q%硬件优先级选提VlCSoftIntCIear18、ARM芯片中定时器结构原理如下图,试设计一个周期为2秒的方波发生器。(假设该系统的外围设备时钟频率FPCIk=IOMHz)答:intmianPinselo=Pinselo&(i(310)I(2o);toctcr=Oxoo;TOTC=O;T0PR=99;T0MCR=0x023;T0MRl=Fpclk1
28、00;TOEMRI=0xc2;TOTCR=OxO1;While(I);)19、运用学过的学问设计设计一个汽车用“车速表”,写出你的设计方案并编程实现。提示:可用霍尔元件将车轮的转动转换为脉冲。车轮每转动一圈会产生一个方波脉冲。答:转动脉冲:void_irqIRQ_TimerO(void)(if(100SET&BEEP)=0)100SET=BEEP;*关闭BEEP*/else100CLR=BEEP;TOIR=0x01;*清除中断标记*/VICVectAddr=0x00;*通知VlC中断处理结束*/)intmain(void)intspped-1;PINSEL1=0x00000000;/*设置管脚
29、连接GPK)*/100DIR=BEEP;/*设置BEEP限制口输出*/IRQEnableO;*IRQ中断使能*/*定时器0初始化*/TOTC=0;/*定时器设置为0*/TOPR=0;/*时钟不分频*/TOMCR=0x03;/*设置ToMRo匹配后复位ToTC,并产生中断标记*/TOMRO=Fpclk/spped;/*0.5秒钟定时*/TOTCR=0x01;/*启动定时器*/*设置定时器0中断IRQ*/VICIntSelect=0x00;/*全部中断通道设置为IRQ中断*/VlCVectCntlO=0x20IoXO4;/*设置定时器0中断通道支配最高优先级*/VICVectAddrO=(uint
30、32)IRQ_TimerO;/*设置中断服务程序地址*/VICIntEnable=10x04;/*使能定时器0中断*/while(1)if(100PIN&KEYl)=0)spped-10;TOMRO=Fpclk/spped;*O.5秒钟定时*/TOTC=O;/*定时器设置为O*/elseif(100PIN&KEY2)=0)spped=20;TOMRO=Fpclk/spped;*0.5秒钟定时*/TOTC=O;/*定时器设置为0*/elseif(100PIN&KEY3)=O)spped=30;TOMRO=Fpclk/spped;*0.5秒钟定时*/TOTC=O;/*定时器设置为0*/)elsei
31、f(100PIN&KEY4)=O)spped-40;TOMRO=Fpclk/spped;*0.5秒钟定时*/TOTC=O;/*定时器设置为0*/);returnO;汽车车速:intmain(void)intVx;PINSELO=(PINSEL0C(320)(220);PINSELO=PINSEL0&(024);TOCTCR&=OxfO;TOTC=O;TOPR=99;TOMCR=0x03;TOMRO=Fpclk/300;TlCTCR=(TICTCR&COxOf)0xfl);TlTC=O;TlMCR=0x00;TlCCR&=0x07;TOTCR=0x01;TlTCR=0x01;while(1)(if(TOIR&OxOl)=1)(TOIR=0x01;Vx=TlTC;TlTC=O;VtotalLen+=Vx;VthisLen+=Vx;Vspeed=(Vx*L*3.6)/HrN;)if(100PIN&KClr)=O)VthisLen=O;)returnO;)