《周立功版嵌入式课后习题答案》由会员分享,可在线阅读,更多相关《周立功版嵌入式课后习题答案(9页珍藏版)》请在金锄头文库上搜索。
1、第一章 嵌入式系统概述一、举出3个课本中未提到的嵌入式系统的例子。(红绿灯控制、数字空调、机顶盒)二、什么是嵌入式系统?特点是?答:嵌入式系统是嵌入到对象体系中的专用计算机应用系统。英国电机工程师协会定义:嵌入式系统为控制、检测或辅助某个设备、机器或工厂运作的装置。 (1)以技术角度定义:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。(2)从系统角度的定义:嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。术语嵌入式反映了这些系统通常是大系统中的一个完整的部分,称为嵌入的系统。嵌入的系统中可以共
2、存多个嵌入式系统。特点:1、嵌入式系统通常应用在为特定用户设计的系统中,具有功耗低、体积小、集成度高等特点。将通用CPU中由板卡完成的任务集成在了嵌入式CPU内部。2、嵌入式系统是将先进的计算机技术、半导体技术和电子技术于各个行业的具体应用相结合的产物。所以是技术密集、资金密集、高度分散、不断创新的知识集成系统。3、嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣,去除冗余。4、为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或处理器芯片中,而不是存储于磁盘等载体中。由于嵌入式系统必须有较高的时实性,因此对程序的质量,特别是可靠性有较高的要求。5、嵌入式系统本身不具备自
3、举开发能力,必须有一套专用的开发工具和环境才能进行开发。三、什么叫嵌入式处理器?嵌入式处理器分为哪几类?答:嵌入式处理器是嵌入式系统的核心,是控制、辅助系统运行的硬件单元,与普通台式计算机的微处理器相比,其工作稳定性更高,功耗较小,对环境(如温度、湿度、电磁场、震动等)的适应能力更强,体积更小,且集成的功能较多。嵌入式处理器从应用角度,可以大致分为以下几类:1.注重嵌入式处理器的尺寸、能耗和价格。应用于新型电子娱乐等不注重计算的设备;2.注重嵌入式处理器的性能。应用于路由器等高速计算密集型的设备;3.注重嵌入式处理器的性能、尺寸、能耗和价格。应用于各种工业控制设备;按照结构分类:嵌入式微处理器
4、(EMPU);嵌入式微控制器(MCU);嵌入式DSP处理器(DSP);嵌入式片上系统(SOC)。嵌入式系统的分类也是以上答案(P5)。四、什么是嵌入式操作系统?为何要使用嵌入式操作系统?答:操作系统是计算机中最基本的程序。操作系统负责计算机系统中全部软硬资源的分配与回收、控制与协调等并发的活动;操作系统提供用户接口,使用户获得良好的工作环境;操作系统为用户扩展新的系统功能提供软件平台。 使用嵌入式操作系统原因之一就是因为其具有实时性。使用嵌入式实时操作系统具有以下优点:1. 嵌入式实时操作系统提高了系统的可靠性。2. 嵌入式实时操作系统提高了开发效率,缩短了开发周期。3. 嵌入式实时操作系统充
5、分发挥了32位CPU的多任务潜力。第二章 ARM7体系结构一、基础知识(1)ARM7TDMI中的T、D、M、I的含义是什么?(P19)答:T后缀:高密度16位Thumb指令集扩展。 D后缀:支持片上调试。M后缀:64位乘法指令。 I后缀:Embedded ICE硬件仿真功能模块。(2)ARM7TDMI采用几级流水线?(P20)使用何种存储器编址方式?答:采用三级流水线,三个阶段分别为:取指、译码、执行。使用了冯诺依曼结构,指令和数据共用一条32位总线。(3)ARM处理器模式和ARM处理器状态有何区别?(P24P26)答:处理器模式指的是处理器在执行程序时,在不同时刻所处的不同状态。处理器状态指
6、的是处理器当前所执行的指令集。(4)分别列举ARM的处理器模式和状态。答:处理器模式:7种,:用户模式(usr)和特权模式,特权模式包括系统模式(sys)和异常模式,异常模式包括:管理模式(svc)、中止模式(abt)、未定义模式(und)、中断模式(irq)、快速中断模式(fiq)。 处理器状态:ARM状态为32位,这种状态下执行的是字方式ARM指令,具有最完整的功能,处理器在系统上电时默认为ARM状态。Thumb状态为16位,这种状态下执行半字方式的Thumb指令。(5)PC和LR分别使用哪个寄存器?(P31P32)答:程序计数器(PC)使用R15寄存器,链接寄存器(LR)使用R14寄存器
7、。(6)R13寄存器的通用功能是什么?(P29P30)答:ARM处理器通常将寄存器R13作为堆栈指针(SP),用于保存堆栈的出入口处地址。(7)CPSR寄存器中哪些位用来定义处理器状态?答:程序状态寄存器CPSR,(8)描述一下如何禁止IRQ和FIQ的中断?(P38)答:当控制位I置位时,IRQ中断被禁止,否则允许IRQ中断使能;当控制位F置位时,FIQ中断被禁止,否则允许FIQ中断使能。二.存储器格式定义R0=0x12345678, 假设使用存储指令将R0的值存放在0x4000单元中。如果存储器格式为大端格式,请写出在执行加载指令将存储器0x4000单元的内容取出存放到R2寄存器操作后所得R
8、2的值。如果存储器格式改为小端模式,所得R2值又为多少?低地址0x4000单元的字节内容分别是多少?(P49)三、处理器异常请描述一下ARM7TDMI产生异常的条件是什么?各种异常会使处理器进入哪种模式?进入异常时内核有何操作?各种异常的返回指令又是什么?答:只要正常的程序被暂时中止,处理器就进入异常模式。地址异常进入时的模式进入时I的状态进入时F的状态返回指令0x0000 0000复位管理禁止禁止无0x0000 0004未定义指令未定义IFMOVS PC,R14_und0x0000 0008软件中断(SWI)管理禁止FMOVS PC,R14_svc0x0000 000C中止(预取)中止IFS
9、UBS PC,R14_abt, # 40x0000 0010中止(数据)中止IFSUBS PC,R14_abt, # 80x0000 0014保留保留0x0000 0018IRQ中断禁止FSUBS PC,R14_irq, # 40x0000 001CFIQ快速中断禁止禁止SUBS PC,R14_fiq, # 4第三章ARM7TDMI(-S)指令系统一、基础知识(1)ARM7TDMI(-S)有几种寻址方式(P53)?“LDR R1,R0, #0x08”属于哪种寻址方式?答:共有8种寻址方式:寄存器寻址、立即寻址、寄存器移位寻址、寄存器间接寻址、基址寻址、多寄存器寻址、堆栈寻址、相对寻址。LDR
10、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指令中第2个操作数有哪几种形式(P58)?列举5个8位图立即数。答:有3种形式:immed_8r常数表达式。Rm寄存器方式。Rm,shift寄存器移位方式。5个8位图立即数:0x3FC(0xFF2)、0、0xF0000000(0xF024)、200(0xC8)、0xF0000001(0x
11、1F28)。(4)LDR/STR指令的偏移形式有哪4种(P62)?LDRB指令和LDRSB指令有何区别?答:LDR/STR指令的偏移形式有4种,分别是:零偏移、前索引偏移、程序相对偏移、后索引偏移。LDRB指令是加载无符号字节数据,LDRSB指令则是加载有符号字节数据。LDRB就是读出指定地址的数据并存入指定寄存器,LDRSB读出指定地址的数据,高24位符号位用于扩展,再存入指定寄存器。(5)请指出MOV指令与LDR加载指令的区别及用途。答:MOV指令的源操作数是常数或(带偏移量的)寄存器,用于寄存器之间的数据传送;LDR指令的源操作数是地址,用于存储器到寄存器的数据传送。 (6)CMP指令是
12、如何执行的?写一程序,判断R1的值是否大于0x30,是则将R1减去0x30。(P71)答:CMP 指令将寄存器Rn 的值减去operand2 的值,根据操作的结果更新CPSR 中的相应条 件标志位,以便后面的指令根据相应的条件标志来判断是否执行。CMP指令不保存运算结果,在进行两个数据的大小判断时,常用CMP指令及相应的条码来操作。程序: CMP cond Rn, operand2 CMP R1,#0x30 ;将R1与常数0x30比较 LDRLE PC,LR ;如果小于或等于0x30,则程序返回 SUB R1,R1, #0x30 ;大于0x30,则将R1减去0x30,结果存回R1(7)调用子程
13、序是用B指令还是用BL指令?请写出返回子程序的指令。(P73)答:BL 指令用于子程序调用。 MOV PC,LR 或者 BX LR(8)请指出LDR伪指令的用法。(P61)指令格式与LDR加载指令的区别是什么?答:LDR指令用于从内存中读取数据放入寄存器或者用于加载32位的立即数,还常用于加载芯片外围功能部件的寄存器地址,指令格式与LDR加载指令的区别在于第二个数为地址表达式,伪指令的LDR的参数有“=”号。(9)ARM状态与Thumb状态的切换指令是什么?请举例说明。答:切换指令是BX指令。BX指令跳转到Rm指定的地址去执行程序。若Rm的bit0为1,则跳转时自动将CPSR中的标志T置位,即
14、把目标地址的代码解释为Thumb代码;若Rm的bit0为0,则跳转时自动将CPSR中的标志T复位,即把目标地址的代码解释为ARM代码。(10)Thumb状态与ARM状态寄存器有区别吗(P28、P34、P35、P81)?Thumb指令对哪些寄存器的访问受到一定限制?答:Thumb状态与ARM状态的寄存器有区别:1、由于Thumb指令集不包含MSR和MRS指令,如果用户需要修改CPSR的任何标志位,必须回到ARM模式。通过BX和BLX指令来改变指令集模式,而且当完成复位(Reset)或者进入到异常模式时,将会被自动切换到ARM模式。2、访问R8-R15的Thumb数据处理指令不能更新CPSR中的A
15、LU状态标志。(Thumb指令集较ARM指令集有如下限制:只有B指令可以条件执行,其它指令都不能条件执行;分支指令的跳转范围有更多限制;数据处理指令的操作结果必须放入其中一个;单寄存器访问指令,只能操作R0R7;LDM和STM指令可以对R0R7的任何子集进行操作;)Thumb指令对R8-R15寄存器访问受限。(11)Thumb指令集的堆栈入栈、出栈指令是哪两条?(P83)入栈指令PUSH,出栈指令POP(12)Thumb指令集的BL指令转移范围为何能达到4MB? 其指令编码是怎样的?(P85)Thumb 采用两条16 位指令组合成22 位半字偏移(符号扩展为32 位),使指令转移范围为4MB。BL label。 LRPC-4,PClabel2.有符号和无符号加法下面给出A和B的值,可以先手动计算A+B,并