1嵌入式系统2011作业第1章嵌入式系统概述1、什么是嵌入式系统?答:嵌入式系统指的是以应用为中心和以计算机技术为基础的,并且软硬件是可裁剪的,能满足应用系统对功能、可靠性、成本、体积、功耗等指标严格要求的专用计算机系统。2、与通用计算机相比,嵌入式系统有哪些特点?答:1:嵌入式系统通常是面向特定应用的;2:嵌入式系统功耗低、体积小、集成度高、成本低;3:嵌入式系统具有较长的生命周期;4:嵌入式系统具有固化的代码;5:嵌入式系统开发需要专用开发工具和环境;6:嵌入式系统软件需要RTOS开发平台;7:嵌入式系统开发人员以应用专家为主;8:嵌入式系统是知识集成系统。3、根据嵌入式系统的复杂程度,嵌入式系统可分为哪4类?答:1:单个微处理器;2:嵌入式处理器可扩展的系统;3:复杂的嵌入式系统;4:在制造或过程控制中使用的计算机系统。4、嵌入式微处理器有哪几类?试举例说明。答:嵌入式微处理器,例如:Am186/88、386EX、SC-400.嵌入式微控制器,例如:8051、P51XA、MCS-251.嵌入式DSP处理器,例如:TMS320系列、DSP56000系列.嵌入式片上系统,例如:TriCore、M-Core、Smarrt-XA。5、从硬件系统来看,嵌入式系统由哪几部份组成?画出简图。答:P11图1-42电源模块Flash时钟复位微处理器RAMROMMPU外设其他键盘LCDUSB外围电路6、嵌入式微处理器和嵌入式微控制器分别由哪些部件组成?两者有何区别?答:(1)组成:嵌入式微处理器:包括指令执行部件与总线接口部件。嵌入式微控制器(单片机):将整个系统集成到一个芯片上。(2)两者区别:嵌入式微处理器:如果要构成一个系统,完成特定功能必须扩展Rom、RAM、总线接口等器件.并且将系统集成在一块板上。嵌入式微控制器:一个芯片就是一个系统,芯片包括Rom、RAM、I/O接口、通用接口(比如UART)特殊接口(比如网络接口、Can接口).不用外扩接口电路,即可完成一定功能。3第2章ARM微处理器硬件结构2.1哈佛体系结构和冯·诺依曼体系结构有何不同?答:冯·诺依曼结构:处理器使用一组总线(数据总线、地址总线、控制总线)连接程序存储器、数据存储器、接口器件。所有器件共享一个地址空间。并且程序存储单元与数据存储单元存储位数一致。冯·诺依曼结构由于总线瓶颈,不适合流水线作业。哈佛体系结构:有两组总线。一组总线用于访问程序存储器;一组总线用于访问数据存储器。程序与数据各自有自己独立的存储空间。程序存储单元与数据存储单元存储位数可以不一致。哈佛体系结构非常适合流水线作业。2.2回答下列关于ARM编程模式的问题(1)在该模式下有多少通用寄存器(2)CPSR的作用是什么(3)Z位的作用是什么(4)程序计数器保存在何处答(1)31个通用寄存器(2)为状态寄存器条件标志位:保存指令执行的状态N=0结果正数=1结果负数C借位进位标志Z=0结果非0=1结果0O=0结果未溢出=1结果溢出控制标志位:控制程序的执行T=0ARM状态=1Thumb状态I=0允许普通中断=1不允许普通中断Q=0允许快速中断=1不允许快速中断M4..M0:工作模式(3)Z=1运算结果为0Z=0运算结果不为0(4)R15(PC)42.3下列的arm条件码的含义是什么(1)EQ(2)NE(3)MI(4)VS(5)GE(6)LT答(1)z=1相等(2)z=0不相等(3)n=1负数(4)v=1溢出(5)n=v带符号数大于或等于(6)nv带符号数小于2.4arm处理器有几种工作模式?各种工作模式有什么特点?5答有七种工作模式,用户模式(usr)正常的程序执行状态快速中断模式(fiq)用于高速数据处理或通道处理外部中断模式(irq)用于通用的中断处理管理模式(svc)操作系统的保护模式中止模式(abt)用于虚拟存储及存储保护未定义模式(und)用于支持硬件协处理器的软件仿真系统模式(sys)运行特权级的操作系统任务2.5arm处理器共有多少个寄存器?这些寄存器按其在用户编程中的功能如何进行划分?这些寄存器在使用中有什么特殊之处?答37个寄存器,其中有31个通用寄存器,其中包括程序计数器pc,6个状态寄存器寄存器均为32位在七种模式中R0~R7不分组,R8~R14按模式分组,R15为程序计数器,CPSR为状态寄存器,SPSR为保存程序状态寄存器。R13为堆栈指针寄存器,R14为链接寄存器。CPSR在各种模式下多可以访问,而在用户模式及系统模式下SPSR不可以被访问。2.6若寄存器R1=0x01020304,分别按照大端模式和小端模式存储在0x30000字单元中,试分别写出两种模式下内存存储内容,并标出内存地址答大端模式[0x30000]=0x01[0x30001]=0x02[0x30002]=0x03[0x30003]=0x04小端模式[0x30000]=0x04[0x30001]=0x03[0x30002]=0x02[0x30003]=0x012.7ARM存储器的存储周期有几种类型?对应于Cache访问和存储器访问是何存储周期?答:ARM存储器有4种存储周期:空闲周期,非顺序周期,顺序周期,协处理器寄存器传送周期。一般地,对应于Cache访问的存储周期是:非顺序周期。对应于存储器访问的存储周期是:顺序周期和非顺序周期。2.8何谓Cache?简述Cache的工作原理。答:高速缓存器:弥补主存速度,在CPU与主存之间设置的高速,小容量存储器,构成Cache-主存存储6层次,速度是Cache的,容量是主存的。工作原理:当CPU要访问Cache时,CPU送来主存地址,放到主存地址寄存器中。然后通过地址变换部件把主存地址中的块号M变成Cache的块号m,并放到Cache地址寄存器中;同时将主存地址中的块内地址N直接作为Cache的块内地址n装入到Cache地址寄存器中。如果地址变换成功,就用得到的Cache地址去访问Cache,从Cache中取出数据送到CPU中。如果地址变换不成功,则产生Cache失效信息,接着使用主存地址直接去访问主存储器,从主存储器中读出一个字送到CPU,同时将从主存储器中读出来的数据装入到Cache中去。此时如果Cache已经满了,则需要采用某种Cache替换策略把不常用的块先调出到主存储器中相应的块中,以便腾出空间来存放新调入的块。教材:图2-12Cache工作原理图2.9何谓写通Cache和写回Cache?两者有何区别?答:写通法:write-throught,指CPU在执行写操作时,必须把数据同时写入Cache和主存。写回法:write-back,指CPU在执行写操作时,被写的数据只写入Cache,不写入主存。仅当需要替换时,才把已经修改的Cache块写回到主存中。区别在于写通法在Cache中的内容发生改变时,相应的存储器中的内容会立即被修改,而写回法则是等到替换时才会使存储器中的内容发生改变。2.10ARM的MMU主要实现什么功能?答:ARM的MMU主要实现的功能:(1)虚拟存储空间到物理存储空间的映射。(2)存储器访问权限的控制。(3)设置虚拟存储空间的缓冲特性。2.11简述MMU使能时存储访问过程。答:当ARM处理器请求存储访问时,对于允许缓存的存储访问,如果Cache命中,直接操作数据即可。对于允许缓存且Cache不命中或不允许缓存的存储访问,首先在TLB中查找虚拟地址。如果该虚拟地址对应的地址变换条目不在TLB中,CPU将从位于内存中的页表中查询对应于该虚拟地址的地址变换条目,并把相应的结果添加到TLB中。如果TLB已经满了,则需要根据一定的替换算法进行替换。当得到了需要的地址变换条目后,将进行以下操作。(1)得到该虚拟地址对应的物理地址。(2)根据条目中C控制位和B控制位决定是否缓存该内存访问的结果。(3)根据存储权限控制位和域访问控制位确定该内存访问是否被允许。如果该内存访问不被允许,CP15将向ARM处理器报告存储访问中止。(4)对于不允许缓存的存储访问,使用步骤(1)中得到的物理地址访问内存。对于允许缓存的存储访问,如果Cache命中,则忽略物理地址;如果Cache没有命中,则使用步骤(1)中得到的物理地址访问内存,并将该块数据读取到Cache中。2.12ARM支持的物理页有几种类型?其容量为何值?答:ARM支持的物理页通常有4种类型,其容量值如下:段:大小为1MB的存储块。7大页:大小为64KB的存储块。小页:大小为4KB的存储块。极小页:大小为1KB的存储块。2.13简述基于段的地址变换过程。答:ARM基于段的地址变换过程如图所示。(教材:图2-19基于段地址的地址变换)第3章ARM寻址方式与指令系统1.试述ARM处理器对异常中断的响应过程。答:异常处理过程:当异常发生时,(1)将返回地址存入对应异常模式下寄存器R14。(2)当前寄存器CPSR存入对应异常模式下的SPSR.(3)自动修改CPSR[4:0],进入相应的异常模式(4)如果异常模式为复位或快速中断(FIQ),则设置CPSRF=1禁止所有FIQ中断设置CPSRI=1禁止所有IRQ中断(5)转到中断服务程序去执行2.如何从异常中断处理程序中返回?需要注意哪些问题?答:(1)中断处理完成后返回指令:LDMFDSP!,{other_registers,RPC}(2)注意的问题进入中断时,如果屏蔽了所有FIQ或IRQ中断,中断返回前要开放所有FIQ或IRQ中断进入异常时,如果断点保护的是PCLR,依据3流水线技术,恢复时LR-#4=〉PC3114130页表基地址为0CP15中的寄存器C23120190虚拟地址31141321031201912111098543210一级页表内偏移序号段内地址偏移量页表基地址一级页表内偏移序号00物理基地址0AP用户定义3120190段对应的物理基地址段内地址偏移量一级描述符段的物理地址一级描述符地址0域BC108状态保持寄存器SPSRCPSR3.ARM指令的寻址方式有几种?试分别叙述其各自的特点并举例说明。答:9种寻址方式。(1)立即数寻址:操作数本身直接在指令中给出,取出指令也就获得了操作数,这个操作数也称为立即数。例:ADDR0,R1,#5;R0=R1+5(2)寄存器寻址:所有操作数都为寄存器例:ADDR0,R1,R2;R0=R1+R2(3)寄存器移位寻址:操作数由寄存器的数值做相应移位而得到,移位的方式在指令中以助记符的形式给出,而移位的位数可用立即数或寄存器寻址方式表示。例:MOVR0,R1,LSLR3;R0=R1逻辑左移R3位(4)寄存器间接寻址:寄存器中的值为存储器地址,存储单元的内容为实际的操作数例如:LDRR0,[R1](5)基址加变址寻址:将寄存器(称为基址寄存器)的值与指令中给出的偏移地址量相加,所得结果作为操作数的存储器地址例如:LDRR0,[R1,#5];//存储器地址=R1+#5(6)相对寻址:PC作为基址寄存器,操作数地址=PC+偏移量例如:BEQprocess1……process1(7)多寄存器寻址:在多寄存器寻址方式中,一条指令可实现一组寄存器值的传送。例如:LDMIAR0,{R1-R5};R1=[R0];R2=[R0+4];R3=[R0+8];R4=[R0+12];R5=[R0+16](8)块拷贝寻址块:可实现连续地址数据从存储器的某一位置拷贝到另一位置例:LDRR0,=0x40003000LDRR1,=0x40003200LDMIAR0,{R2-R6};STMIAR1,{R2-R6};(9)堆栈寻址:按照“后进先出”(“先进后出”)的原则进行数据存储的寻址方式例如:STMFDR13!,{R0,R1,R2,R3,R4};//进栈指令9LDMFDR13!,{R0,R1,R2,R3,R4};//出栈指令4.假设R0的内容为0x8000,寄存器R1,R2的内容分别为0x01与0x10,存储器内容为0.连续执行下述指令后,说明每条指令执行后PC如何变化?存储器及寄存器的内容如何变化?STMIBR0!,{R1