您好,欢迎访问三七文档
二、全书练习题答案第1章:答案-填空题1.T、D、M、I2.存储空间管理单元(MMU)和8KCache片内缓存(提高CPU性能)3.QFP、TQFP、PQFP、LQFP、BGA、LBGA4.37、32、31、65.大端格式和小端格式6.片内的MMU、指令和数据缓存(IDC)、写缓冲(WriteBuffer)答案-问答题1.ARM内核有四个功能模块T、D、M、I,可供生产厂商根据不同用户的要求来配置生产ARM芯片。其中T功能模块表示16位Thumb,可以在兼顾性能的同时减少代码尺寸。M功能模块表示8位乘法器。D功能模块表示Debug,该内核中放置了用于调试的结构,通常它为一个边界扫描链JTAG,可使CPU进入调试模式,从而可方便地进行断点设置、单步调试。I功能模块表示EmbeddedICELogic,用于实现断点观测及变量观测的逻辑电路部分,其中的TAP控制器可接入到边界扫描链。2.一个ARM720T内核基本由以下四部分组成。(1)ARM7TDMICPU核。该CPU核支持Thumb指令集、核调试、增强的乘法器、JTAG及嵌入式ICE。它的时钟速率可编程为18MHz、36MHz、49MHz、74MHz。(2)内存管理单元(MMU)与ARM710核兼容,并增加了对WindowsCE的支持。该内存管理单元提供了地址转换和一个有64个项的转换旁路缓冲器。(3)8KB单一指令和数据高速缓冲存储器,以及一个四路相联高速缓冲存储器控制器。(4)写缓冲器WriteBuffer。3.通用寄存器包括R0~R15,可以分为三类:(1)未分组寄存器R0~R7;(2)分组寄存器R8~R14;(3)程序计数器PC(R15)。4.Thumb状态下的寄存器与ARM状态下的寄存器有如下关系:(1)Thumb状态下和ARM状态下的R0~R7是相同的。(2)Thumb状态下和ARM状态下的CPSR和所有的SPSR是相同的。(3)Thumb状态下的SP对应于ARM状态下的R13。(4)Thumb状态下的LR对应于ARM状态下的R14。(5)Thumb状态下的程序计数器对应于ARM状态下的R15。5.当一个异常出现以后,ARM微处理器会执行以下几步操作。(1)将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。若异常是从ARM状态进入,则LR寄存器中保存的是下一条指令的地址(当前PC+4或PC+8,与异常的类型有关);若异常是从Thumb状态进入,则在LR寄存器中保存当前PC的偏移量,这样,异常处理程序就不需要确定异常是从何种状态进入的。例如:在软件中断异常SWI,指令MOVPC,R14_svc总是返回到下一条指令,不管SWI是在ARM状态执行,还是在Thumb状态执行。(2)将CPSR复制到相应的SPSR中。(3)根据异常类型,强制设置CPSR的运行模式位。(4)强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。第2章:答案-填空题1.ARM指令集、Thumb指令集2.寄存器寻址、立即寻址、寄存器偏移寻址、寄存器间接寻址、基址寻址、多寄存器寻址、堆栈寻址、块拷贝寻址、相对寻址3.跳转指令、数据处理指令、程序状态寄存器(PSR)传输指令、Load/Store指令、协处理器指令、异常中断产生指令4.符号定义伪指令、数据定义伪指令、汇编控制伪指令、宏指令、其他伪指令5.在C/C++代码中嵌入汇编指令;从汇编程序中访问C程序变量;汇编程序、C/C++程序间的相互调用6.filename.c源文件、filename.h头文件、filename.o目标文件、filename.s汇编代码文件、filename.lst列表文件答案-问答题1.一条典型的ARM指令语法格式如下所示:opcode{cond}{S}Rd,Rn,shifter_operand其中:opcode是指令操作符编码;cond是指令执行的条件编码;S决定指令的操作是否影响CPSR的值;Rd是目标寄存器编码;Rn是包含第1个操作数的寄存器编码;shifter_operand表示第2个操作数。2.有4种类型的堆栈,表示递增和递减的满堆栈和空堆栈的各种组合。满递增:堆栈通过增大存储器的地址向上增长,堆栈指针指向内含有效数据项的最高地址。指令如LDMFA,STMFA等。空递增:堆栈通过增大存储器的地址向上增长,堆栈指针指向堆栈上的第一个空地址。指令如LDMEA,STMEA等。满递减:堆栈通过减小存储器的地址向下增长,堆栈指针指向内含有效数据项的最低地址。指令如LDMFD,STMFD等。空递增:堆栈通过减小存储器的地址向下增长,堆栈指针指向堆栈下的第一个空地址。指令如LDMED,STMED等。3.ARM协处理器指令包括以下3类:用于ARM处理器初始化ARM协处理器的数据处理操作。用于ARM处理器的寄存器和ARM协处理器的寄存器间的数据传送操作。用于在ARM协处理器的寄存器和内存单元之间传送数据。4.常见的符号定义伪指令有如下几种。用于定义全局变量的GBLA、GBLL和GBLS。用于定义局部变量的LCLA、LCLL和LCLS。用于对变量赋值的SETA、SETL、SETS。为通用寄存器列表定义名称的RLIST。5.汇编语言程序中常用的符号,必须遵循以下的约定。符号区分大小写,同名的大、小写符号会被编译器认为是两个不同的符号。符号在其作用范围内必须唯一。自定义的符号名不能与系统的保留字相同。符号名不应与指令或伪指令同名。6.可执行映像文件通常由以下几部分构成。一个或多个代码段,代码段的属性为只读。零个或多个包含初始化数据的数据段,数据段的属性为可读写。零个或多个不包含初始化数据的数据段,数据段的属性为可读写。第3章:答案-填空题1.装载映像文件、程序执行、查看寄存器和内存空间2.基本的调试功能、C语言库的支持、通信支持、任务管理功能、异常中断处理3.在ARMulator或开发板上开发应用程序;建立严重依赖Angel的应用程序;建立很少依赖Angel的应用程序;生成最终的产品4.FD(满且地址递减)5.测试访问端口TAP(TestAccessPort)控制器、旁路(bypass)寄存器、指令寄存器和数据寄存器、ARM架构处理器答案-问答题1.初始化存储器就是设置ARM处理器的某些寄存器,这可以通过两种方法完成:第一种,如果ARM处理器内部有SRAM,则可以建立一个简单的工程,该工程对涉及存储器映射的寄存器初始化;第二种,利用AXD的命令行配置那些寄存器,具体步骤如下:首先在C:\下建立文本文件memory_map.txt,该文件设置寄存器的值,其格式为:setmemADDRESS,DATA,SIZE其中,ADDRESS是寄存器的地址,DATA是该寄存器要设置的值,SIZE是数据宽度,一般为32,可以设置多个寄存器;然后打开AXDDebugger的命令行窗口,执行下面的命令,配置对应的控制寄存器。obeyC:\memory_map.txt执行完毕后,memory_map.txt中的寄存器就配置完毕,存储器就映射到预定的地址空间了。2.基于Angel的调试系统由下面两部分组成,这两部分之间通过一定的通信信道连接起来,通常使用的信道是串行口。位于主机上的调试器(debugger)。它接受用户命令,将其发送到目标机上的Angel,使其执行一定的操作,并将目标机上Angel返回的数据以一定的格式显示用户。ARM公司提供的各调试器都支持Angel。对于其他的调试器,如果它支持Angel所使用的调试协议ADP,则也可以支持Angel。位于目标机上的Angel调试监控程序。它接受主机上调试器传来的命令,返回相应的数据。通常Angel有两个版本:完整版本包含所有的Angel功能,主要可以用于调试应用系统;最小版本包含一些有限的功能,可以包含在最终的产品中。3.使用Angel所需要的资源包括:系统资源。Angel使用的系统资源包括可配置的系统资源和不可配置的系统资源。可配置的系统资源包括一个ARM程序的SWI号和一个Thumb程序的SWI号;不可配置的资源包括两条未定义的ARM指令和一条未定义的Thumb指令。ROM和RAM资源。Angel需要使用ROM来保存其代码,使用RAM来保存其数据。当需要下载一个新版本的Angel时,还需要使用额外的RAM资源。异常中断向量。Angel通过初始化系统的异常中断向量表来安装自己,从而使得Angel有机会接管系统的控制权,来完成相应的功能。FIQ及IRQ异常中断。Angel需要使用下面的异常中断来实现主机和目标机之间的通信功能。推荐使用IRQ异常中断。FIQ异常中断;IRQ异常中断;同时使用FIQ异常中断和IRQ异常中断。数据栈。Angel需要使用自己的特权模式的数据栈。如果用户应用程序需要调用Angel功能,则用户需要建立自己的数据栈。4.在使用完整版本的Angel开发应用程序时,由于Angel需要一定的资源,给程序设计带来了一定的限制。这些限制包括:Angel需要使用自己的处理器特权模式下的数据栈,因此在Angel和实时操作系统RTOS一起使用时,必须确保在Angel运行时,RTOS不会切换处理器的模式。否则可能造成死机。用户应用程序尽量避免使用SWI0x123456以及SWI0xab。这两个SWI异常中断号保留给Angel使用。Angel使用它们来实现目标程序中C语言运行时库的semihosting请求。如果用户应用程序中使用了SWI,则在退出SWI时必须将各寄存器的值还原成进入SWI时的值。如果应用程序中需要使用未定义的指令异常中断,必须注意Angel使用了未定义的指令异常中断。5.JTAG测试信号由下面五个信号组成,分别描述如下。TRST:测试复位输入信号,测试接口初始化。TCK:测试时钟,在TCK时钟的同步作用下,通过TDI和TDO引脚串行移入/移出数据或指令;同时,也为测试访问端口TAP控制器的状态机提供时钟。TMS:测试模式选择信号,控制测试接口状态机的操作。TDI:测试数据输入线,其串行输入数据至边界扫描寄存器或指令寄存器(由TAP控制器的当前状态及已保存在指令寄存器中的指令来控制)。TDO:测试数据输出线,把从边界扫描链采样的数据传播至串行测试电路中的下一个芯片。第4章:答案-填空题1.嵌入式处理器、相关支撑硬件、嵌入式软件系统2.存储设备、通信设备、显示设备3.数据总线、地址总线、控制总线4.Vxwork、WinCE、Linux、pSOS5.操作系统、应用程序答案-问答题1.嵌入式Linux作为嵌入式操作系统,与其他嵌入式操作系统相比,优点有:开放源代码、免费、开发周期短等;缺点是实时性较差。2.在高频电路设计中,首先要注意电源的质量与分配,其次要注意信号线的分布和地线的布线,布线时最好使电源线、地线的走线方向与数据线的走线方向一致。3.(1)新型的和适合应用场合的ARM提高系统的程序效率;(2)低功耗器件和贴片封装,降低功耗和提高抗干扰;(3)通用型平台,减小开发成本和开发周期;(4)充分利用富余端口,有利于产品的升级;(5)单芯片解决方案;(6)LED方便调试。第5章:答案-填空题1.交流、直流2.运行、睡眠、空闲3.5V、3.3V、2.5V、1.8V4.地线、电源线、信号线答案-问答题1.软启动时,处理器被复位,但是SDRAM里面的内容仍旧保持。2.显示设备的耗电最多,如TFTLCD/LED。3.系统中的模拟电源一般由数字电源产生,可以通过:(1)数字电源与模拟电源,以及数字地与模拟地之间加铁氧体磁珠或电感构成无源滤波电路;(2)采用多路稳压器的方法将模拟地和数字地连接。第6章:答案-填空题1.SRAM、DRAM、FlashROM2.SDRAM、DDR3.SDRAM、ROM答案-问答题1.SDRAM具有高速、大容量等优点,是一种具有同步接口的高速动态随机存储器,在ARM系统中主要用作程序的运行空间、数据及堆栈
本文标题:ARM复习题二答案
链接地址:https://www.777doc.com/doc-2901805 .html