周立功版嵌入式课后习题答案.doc

上传人:豆**** 文档编号:24055964 上传时间:2022-07-03 格式:DOC 页数:50 大小:192.50KB
返回 下载 相关 举报
周立功版嵌入式课后习题答案.doc_第1页
第1页 / 共50页
周立功版嵌入式课后习题答案.doc_第2页
第2页 / 共50页
点击查看更多>>
资源描述

《周立功版嵌入式课后习题答案.doc》由会员分享,可在线阅读,更多相关《周立功版嵌入式课后习题答案.doc(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date周立功版嵌入式课后习题答案周立功版嵌入式课后习题答案第一章 嵌入式系统概述一、举出3个课本中未提到的嵌入式系统的例子。(红绿灯控制、数字空调、机顶盒)二、什么是嵌入式系统?特点是?答:嵌入式系统是嵌入到对象体系中的专用计算机应用系统。英国电机工程师协会定义:嵌入式系统为控制、检测或辅助某个设备、机器或工厂运作的装置。 (1)以技术角度定义:以应用为中心、以计算机技术为

2、基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。(2)从系统角度的定义:嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。术语嵌入式反映了这些系统通常是大系统中的一个完整的部分,称为嵌入的系统。嵌入的系统中可以共存多个嵌入式系统。特点:1、嵌入式系统通常应用在为特定用户设计的系统中,具有功耗低、体积小、集成度高等特点。将通用CPU中由板卡完成的任务集成在了嵌入式CPU内部。2、嵌入式系统是将先进的计算机技术、半导体技术和电子技术于各个行业的具体应用相结合的产物。所以是技术密集、资金密集、高度分散、不断创新的知识集成系统。3、

3、嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣,去除冗余。4、为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或处理器芯片中,而不是存储于磁盘等载体中。由于嵌入式系统必须有较高的时实性,因此对程序的质量,特别是可靠性有较高的要求。5、嵌入式系统本身不具备自举开发能力,必须有一套专用的开发工具和环境才能进行开发。三、什么叫嵌入式处理器?嵌入式处理器分为哪几类?答:嵌入式处理器是嵌入式系统的核心,是控制、辅助系统运行的硬件单元,与普通台式计算机的微处理器相比,其工作稳定性更高,功耗较小,对环境(如温度、湿度、电磁场、震动等)的适应能力更强,体积更小,且集成的功能较多。嵌入

4、式处理器从应用角度,可以大致分为以下几类:1.注重嵌入式处理器的尺寸、能耗和价格。应用于新型电子娱乐等不注重计算的设备;2.注重嵌入式处理器的性能。应用于路由器等高速计算密集型的设备;3.注重嵌入式处理器的性能、尺寸、能耗和价格。应用于各种工业控制设备;按照结构分类:嵌入式微处理器(EMPU);嵌入式微控制器(MCU);嵌入式DSP处理器(DSP);嵌入式片上系统(SOC)。嵌入式系统的分类也是以上答案(P5)。四、什么是嵌入式操作系统?为何要使用嵌入式操作系统?答:操作系统是计算机中最基本的程序。操作系统负责计算机系统中全部软硬资源的分配与回收、控制与协调等并发的活动;操作系统提供用户接口,

5、使用户获得良好的工作环境;操作系统为用户扩展新的系统功能提供软件平台。 使用嵌入式操作系统原因之一就是因为其具有实时性。使用嵌入式实时操作系统具有以下优点:1. 嵌入式实时操作系统提高了系统的可靠性。2. 嵌入式实时操作系统提高了开发效率,缩短了开发周期。3. 嵌入式实时操作系统充分发挥了32位CPU的多任务潜力。第二章 ARM7体系结构一、基础知识(1)ARM7TDMI中的T、D、M、I的含义是什么?(P19)答:T后缀:高密度16位Thumb指令集扩展。 D后缀:支持片上调试。M后缀:64位乘法指令。 I后缀:Embedded ICE硬件仿真功能模块。(2)ARM7TDMI采用几级流水线?

6、(P20)使用何种存储器编址方式?答:采用三级流水线,三个阶段分别为:取指、译码、执行。使用了冯诺依曼结构,指令和数据共用一条32位总线。(3)ARM处理器模式和ARM处理器状态有何区别?(P24P26)答:处理器模式指的是处理器在执行程序时,在不同时刻所处的不同状态。处理器状态指的是处理器当前所执行的指令集。(4)分别列举ARM的处理器模式和状态。答:处理器模式:7种,:用户模式(usr)和特权模式,特权模式包括系统模式(sys)和异常模式,异常模式包括:管理模式(svc)、中止模式(abt)、未定义模式(und)、中断模式(irq)、快速中断模式(fiq)。 处理器状态:ARM状态为32位

7、,这种状态下执行的是字方式ARM指令,具有最完整的功能,处理器在系统上电时默认为ARM状态。Thumb状态为16位,这种状态下执行半字方式的Thumb指令。(5)PC和LR分别使用哪个寄存器?(P31P32)答:程序计数器(PC)使用R15寄存器,链接寄存器(LR)使用R14寄存器。(6)R13寄存器的通用功能是什么?(P29P30)答:ARM处理器通常将寄存器R13作为堆栈指针(SP),用于保存堆栈的出入口处地址。(7)CPSR寄存器中哪些位用来定义处理器状态?答:程序状态寄存器CPSR,(8)描述一下如何禁止IRQ和FIQ的中断?(P38)答:当控制位I置位时,IRQ中断被禁止,否则允许I

8、RQ中断使能;当控制位F置位时,FIQ中断被禁止,否则允许FIQ中断使能。二.存储器格式定义R0=0x12345678, 假设使用存储指令将R0的值存放在0x4000单元中。如果存储器格式为大端格式,请写出在执行加载指令将存储器0x4000单元的内容取出存放到R2寄存器操作后所得R2的值。如果存储器格式改为小端模式,所得R2值又为多少?低地址0x4000单元的字节内容分别是多少?(P49)三、处理器异常请描述一下ARM7TDMI产生异常的条件是什么?各种异常会使处理器进入哪种模式?进入异常时内核有何操作?各种异常的返回指令又是什么?答:只要正常的程序被暂时中止,处理器就进入异常模式。地址异常进

9、入时的模式进入时I的状态进入时F的状态返回指令0x0000 0000复位管理禁止禁止无0x0000 0004未定义指令未定义IFMOVS PC,R14_und0x0000 0008软件中断(SWI)管理禁止FMOVS PC,R14_svc0x0000 000C中止(预取)中止IFSUBS PC,R14_abt, # 40x0000 0010中止(数据)中止IFSUBS PC,R14_abt, # 80x0000 0014保留保留0x0000 0018IRQ中断禁止FSUBS PC,R14_irq, # 40x0000 001CFIQ快速中断禁止禁止SUBS PC,R14_fiq, # 4第三章

10、ARM7TDMI(-S)指令系统一、基础知识(1)ARM7TDMI(-S)有几种寻址方式(P53)?“LDR R1,R0, #0x08”属于哪种寻址方式?答:共有8种寻址方式:寄存器寻址、立即寻址、寄存器移位寻址、寄存器间接寻址、基址寻址、多寄存器寻址、堆栈寻址、相对寻址。LDR R1,R0, #0x08属于基址寻址,意思是读取R0+0x08地址上的存储单元的内容,存入R1。(2)ARM指令的条件码有多少个(P60)?默认条件码是什么?答:有16个,EQ、NE、CS/HS、CC/LO、MI、PL、VS、VC、HI、LS、GE、LT、GT、LE、AL、NV, 默认条件码是AL。(3)ARM指令中

11、第2个操作数有哪几种形式(P58)?列举5个8位图立即数。答:有3种形式:immed_8r常数表达式。Rm寄存器方式。Rm,shift寄存器移位方式。5个8位图立即数:0x3FC(0xFF2)、0、0xF0000000(0xF024)、200(0xC8)、0xF0000001(0x1F28)。(4)LDR/STR指令的偏移形式有哪4种(P62)?LDRB指令和LDRSB指令有何区别?答:LDR/STR指令的偏移形式有4种,分别是:零偏移、前索引偏移、程序相对偏移、后索引偏移。LDRB指令是加载无符号字节数据,LDRSB指令则是加载有符号字节数据。LDRB就是读出指定地址的数据并存入指定寄存器,

12、LDRSB读出指定地址的数据,高24位符号位用于扩展,再存入指定寄存器。(5)请指出MOV指令与LDR加载指令的区别及用途。答:MOV指令的源操作数是常数或(带偏移量的)寄存器,用于寄存器之间的数据传送;LDR指令的源操作数是地址,用于存储器到寄存器的数据传送。 (6)CMP指令是如何执行的?写一程序,判断R1的值是否大于0x30,是则将R1减去0x30。(P71)答:CMP 指令将寄存器Rn 的值减去operand2 的值,根据操作的结果更新CPSR 中的相应条 件标志位,以便后面的指令根据相应的条件标志来判断是否执行。CMP指令不保存运算结果,在进行两个数据的大小判断时,常用CMP指令及相

13、应的条码来操作。程序: CMP cond Rn, operand2 CMP R1,#0x30 ;将R1与常数0x30比较 LDRLE PC,LR ;如果小于或等于0x30,则程序返回 SUB R1,R1, #0x30 ;大于0x30,则将R1减去0x30,结果存回R1(7)调用子程序是用B指令还是用BL指令?请写出返回子程序的指令。(P73)答:BL 指令用于子程序调用。 MOV PC,LR 或者 BX LR(8)请指出LDR伪指令的用法。(P61)指令格式与LDR加载指令的区别是什么?答:LDR指令用于从内存中读取数据放入寄存器或者用于加载32位的立即数,还常用于加载芯片外围功能部件的寄存器

14、地址,指令格式与LDR加载指令的区别在于第二个数为地址表达式,伪指令的LDR的参数有“=”号。(9)ARM状态与Thumb状态的切换指令是什么?请举例说明。答:切换指令是BX指令。BX指令跳转到Rm指定的地址去执行程序。若Rm的bit0为1,则跳转时自动将CPSR中的标志T置位,即把目标地址的代码解释为Thumb代码;若Rm的bit0为0,则跳转时自动将CPSR中的标志T复位,即把目标地址的代码解释为ARM代码。(10)Thumb状态与ARM状态寄存器有区别吗(P28、P34、P35、P81)?Thumb指令对哪些寄存器的访问受到一定限制?答:Thumb状态与ARM状态的寄存器有区别:1、由于

15、Thumb指令集不包含MSR和MRS指令,如果用户需要修改CPSR的任何标志位,必须回到ARM模式。通过BX和BLX指令来改变指令集模式,而且当完成复位(Reset)或者进入到异常模式时,将会被自动切换到ARM模式。2、访问R8-R15的Thumb数据处理指令不能更新CPSR中的ALU状态标志。(Thumb指令集较ARM指令集有如下限制:只有B指令可以条件执行,其它指令都不能条件执行;分支指令的跳转范围有更多限制;数据处理指令的操作结果必须放入其中一个;单寄存器访问指令,只能操作R0R7;LDM和STM指令可以对R0R7的任何子集进行操作;)Thumb指令对R8-R15寄存器访问受限。(11)

16、Thumb指令集的堆栈入栈、出栈指令是哪两条?(P83)入栈指令PUSH,出栈指令POP(12)Thumb指令集的BL指令转移范围为何能达到4MB? 其指令编码是怎样的?(P85)Thumb 采用两条16 位指令组合成22 位半字偏移(符号扩展为32 位),使指令转移范围为4MB。BL label。 LRPC-4,PClabel2.有符号和无符号加法下面给出A和B的值,可以先手动计算A+B,并预测N、Z、V和C标志位的值。然后修改程序清单3.1中R0、R1的值,将这两个值装载到这两个寄存器中(使用LDR伪指令,如“LDR R0,=0xFFFF0000”),使其执行两个寄存器的加法操作。调试程序

17、,每执行一次加法操作就将标志位的状态记录下来,并将所得结果与预先计算得出的结果相比较。如果两个操作数看作有符号数,如何解释所得标志位的状态?同样,如果把两个操作数看作是无符号数,所得标志位又当如何理解?(1) 0xFFFF000F (A) +0x0000FFF1 (B) - 0x00000000 NZCV=0110如果两个操作数是有符号的,A是负数,B是正数,和是0,没有溢出,所以V=0。如果两个操作数是无符号数,和是0,有进位,所以C=1。(2) 0x7FFFFFFF (A) +0x02345678 (B) - 0x82345677 NZCV=1001如果两个操作数是有符号数,A是正数,B是

18、正数,和是负数,有溢出,所以V=1。如果两个操作数是无符号数,没有进位,所以C=0。(3) 67654321 (A) +23110000 (B) - 0x0568F421 NZCV=0000如果两个操作数是有符号数,A是正数,B是正数,和是正数,没有溢出,所以V=0。如果两个操作数是无符号数,没有进位,所以C=0。第四章 LPC2000系列ARM硬件结构一、基础知识1、LPC2114可使用的外部晶振频率范围是多少(P115)(提示使用/不使用PLL功能时(P116))?答:晶振频率范围:130 MHz,若使用PLL 或ISP 功能时,输入时钟的频率不超过:1025MHz。2、请描述LPC221

19、0/2220的PO.14、P1.20、P1.26、BOOT1和BOOT0引脚在芯片复位时分别有什么作用?(P95,P96,P119)并简单说明LPC2000系列ARM7微控制器的复位处理流程。答:P0.14 为低电平时,强制片内引导装载程序复位后控制器件的操作,即进入ISP 状态。P1.20 当RESET 为低电平,使 P1.25P1.16 复位后用作跟踪端口。P1.26当RESET 为低电平,使 P1.31P1.26 复位后用作一个调试端口。当RESET 为低时,BOOT0 与BOOT1 一同控制引导和内部操作。引脚的内部上拉确保了引脚未连接时呈现高电平。外部复位输入:当该引脚为低电平时,器

20、件复位,I/O口和外围功能进入默认状态,处理器从地址0 开始执行程序。复位信号是具有迟滞作用的TTL 电平。3、LPC2000系列ARM7微控制器对向量表有何要求(提示向量表中的保留字)?答:向量表所有数据32 位累加和为零(0x000000000x0000001C 的8 个字的机器码累加),才能脱机运行用户程序,这是LPC2114/2124/2212/2214 的特性。4、如何启动LPC2000系列ARM7微控制器的ISP功能?(P122)相关电路应该如何设计?答:有两种情况可以使芯片进入ISP状态:(1)将芯片的P0.14引脚拉低后,复位芯片,可以进入ISP状态;(2)在芯片内部无有效用户

21、代码时,Boot Block自动进入ISP状态。5、LPC2000系列ARM7微控制器片内Flash是多位宽度的接口?(P145)它是通过哪个功能模块来提高Flash的访问速度?答:128位宽度接口, 通过存储器加速模块(MAM)来提高Flash的访问速度。6、若LPC2210/2220的bank0存储块使用32位总线,访问bank0时,地址线A1、A0是否有效?EMC模块中的BLSOBLS4具有什么功能?(P159)答:无效,( 如果存储器组配置成 16 位宽,则不需要 A0;8 位宽的存储器组需要使用 A0 。);字节定位选择信号。7、LPC2000系列ARM7微控制器具有引脚功能复用特性

22、,那么如何设置某个引脚为指定功能?(P172)答:通过引脚功能选择寄存器的设定来设置某个引脚为指定功能。8、FIQ、IRQ有什么不同?向量IRQ和非向量IRQ有什么不同?(P189)答:FIQ为快速中断,具有最高优先级,中断响应最快,常用于处理非常重要、非常紧急的事件,IRQ为普通中断。向量IRQ具有中等优先级,对外部事件响应比较及时,常用于处理重要事件。非向量IRQ优先级最低,中断延迟时间比较长,常用于处理一般事件中断。9、在使能、禁止FIQ和IRQ时,为什么操作SPSR寄存器而不操作CPSR寄存器?(P75,P189,P200)答:在用户模式下,无法修改CPSR,只有在特权模式下修改SPS

23、R后,通过退出特权模式,然后恢复SPSR到CPSR,才能实现修改CPSR。 10、ARM内核对FIQ、向量IRQ和非向量IRQ有什么不同?(P200)FIQ优先级最高,中断响应最迅速。一旦发生FIQ中断,ARM处理器进入FIQ模式,而且ARM处理器为FIQ模式多设计了R8R12这5个私有寄存器,加速FIQ的处理;向量IRQ具有中等优先级,处理中断比较迅速;非IRQ中断优先级最低。11、向量中断能嵌套吗?请结合ARM体系结构进行阐述。答:能,但需要重新开中断。12、VIC的软件中断和ARM内核的软件中断一样吗?(188) ARM内核本身只有快速中断FIQ和普通中断IRQ这2条中断输入信号线,只能

24、接受2个中断。如果处理2个以上的中断事件,就需要借助向量中断控制器(VIC)。13、设置引脚为GPIO功能时,如何控制某个引脚单独输入/输出?(P181)当前要知道某个引脚当前的输出状态时,是读取IOPIN寄存器还是读取IOSET寄存器?答:通过GPIO方向寄存器来控制引脚单独输入/输出。比如某引脚作输出时,将IODIR寄存器的相应位设置为1。当前要知道某个引脚当前的输出状态时,读取IOPIN寄存器,因为IOSET寄存器控制引脚输出高电平。14、P0.2和P0.3口是IC接口,当设置它们为GPIO时,是否需要外接上拉电阻才能输出高电平?(P183)答:需要外接上拉电阻。15、写出至少3种GPI

25、O的应用实例。(P183-187)1、将P0.0设置为输出高电平。2、使用GPIO控制蜂鸣器。3、读取P0.0引脚的电平状态。4、读取按键状态。5、在多个I/O口线上输出数据。15、使用SPI主模式时,SSEL引脚是否可以作为GPIO?(P238) 若不能,SSEL引脚应如何处理?答:不能,SSEL引脚应接上拉电阻。16、LPC2114的2个UART符合什么标准?(P276)哪一个UART可用作ISP通信?(P278)哪一个UART具有Modem接口?答:符合16C550工业标准。UART0可用作ISP通信,UART1具有Modem接口。17、介绍IC和SPI总线的特点,并分别介绍几款基于这两

26、种总线的芯片。(P238,P250)答:IC BUS(Inter IC BUC)是NXP半导体公司推出的芯片间串行传输总线,它以2根连线实现了完善的双向数据传送,可以极为方便地构成多机系统和外围器件扩展系统。IC总线采用了器件地址的硬件设置方法,通过软件寻址完全避免了器件的片选线寻址方法。从而使硬件系统具有最简单而灵活的扩展方法。基于IC的芯片有FM24CL04和ZLG7290等。SPI总线(串行外设接口)总线系统是一种全双工同步串行外设接口,允许MCU与各种外围设备以串行方式进行通信、数据交换。一个SPI总线可以连接多个主机和多个从机,但是在同一时刻只允许有一个主机操作总线。基于SPI总线的

27、芯片有ISD4003语音芯片和电能计量芯片ATT7022等等。18、LPC2114具有几个32位定时器?(P222) PWM定时器是否可以作通用定时器使用?(没讲)答:有2个32位定时器,分别是定时器0和定时器1。PWM定时器不能用作通用定时器使用。19、LPC2000系列ARM7微控制器具有哪两种低耗模式?如何降低系统的功耗?(P89,P141)答:2个低功耗模式:空闲模式和掉电模式;可以通过个别使能/禁止外部功能来优化功耗。2计算PLL设置值假设有一个基于LPC2114的系统,所使用的晶振为11.0592MHZ石英晶振。请计算出最大的系统时钟(CCLK)频率为多少MHz?此时PLL的M值和

28、P值各为多少?请列出计算公式,并编写设置PLL的程序段。解:LPC2214最大的系统时钟频率是60MHz,FcclkM*Fosc=60MHZ Fosc11.0592MHz所以M=5 FcclkFosc*M=55.296MHz 又156MHzFcco320MHz P=Fcco/(Fcclk*2) 当Fcco取156MHZ时,P=1.3 当个Fcco取最高频率时即320时,P=2.67 所以P=2程序清单:Uint8 PLLSet(uint32 Fcclk,uint32 Fosc,uint32 Fcco) Uint8 i; Uint32 plldat; i = (Fcco/Fcclk); swit

29、ch(i) case 2: plldat=(Fcclk/Fosc)-1)|(05); break; case 4: plldat=(Fcclk/Fosc)-1)|(15); break; case 8: plldat=(Fcclk/Fosc)-1)|(25); break;case 16: plldat=(Fcclk/Fosc)-1)|(35); break; default: return(FALSE); break; PLLCON = 1; PLLCFG = plldat; PLLFEED = 0xaa; PLLFEED = 0x55; while(PLLSTAT & (110) = 0)

30、; PLLCON = 3; PLLFEED = 0xaa; PLLFEED = 0x55; return(TRUE);3、存储器重影射:(1)LPC2210/2220具有( D )种存储映射模式。(P106,P139) (A)3 (B)5 (C)1 (D)4(2)当程序已固化到片内Flash,向量表保存在0x00000000起始处,则MAP1:0的值应该为( B )。(P138-P139) (A)00 (B)01 (C)10 (D)11(3)LPC2000系列APM7微控制器存储器重映射的目标起始地址为( 0x00000000 ),共有( 16 )个字。 (A)0x00000000,8 (B)

31、0x40000000,8 (C)0x00000000,16 (D)0x7FFFE000,84、外部中断唤醒掉电设计以下代码是初始化外部中断0,用它来唤醒掉电的LPC2114,请填空。(P214) PINSEL0=0x00000000; PINSEL1=(PINSEL1 & 0XFFFFFFFC) | 0x01; /设置I/O口连接。P0.16设置为EINT0 EXTMODE=EXTMODE & 0x0E; /设置EINT0为电平触发模式 EXTPOLAR=EXTPOLAR & 0x0E; /设置EINT0为低电平触发 EXTWAKE= 0x01; /允许外部中断0唤醒掉电的CPU EXTINT=0x0F; /消除外部中断标志-

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

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁