嵌入式系统应用教程 中国通信学会普通高等教育十二五 规划教材立项项目 习题答案 作者 赵宏 王小牛 任学惠 第二部分习题答案

上传人:w****i 文档编号:94402127 上传时间:2019-08-06 格式:DOC 页数:6 大小:75KB
返回 下载 相关 举报
嵌入式系统应用教程 中国通信学会普通高等教育十二五 规划教材立项项目 习题答案 作者 赵宏 王小牛 任学惠 第二部分习题答案_第1页
第1页 / 共6页
嵌入式系统应用教程 中国通信学会普通高等教育十二五 规划教材立项项目 习题答案 作者 赵宏 王小牛 任学惠 第二部分习题答案_第2页
第2页 / 共6页
嵌入式系统应用教程 中国通信学会普通高等教育十二五 规划教材立项项目 习题答案 作者 赵宏 王小牛 任学惠 第二部分习题答案_第3页
第3页 / 共6页
嵌入式系统应用教程 中国通信学会普通高等教育十二五 规划教材立项项目 习题答案 作者 赵宏 王小牛 任学惠 第二部分习题答案_第4页
第4页 / 共6页
嵌入式系统应用教程 中国通信学会普通高等教育十二五 规划教材立项项目 习题答案 作者 赵宏 王小牛 任学惠 第二部分习题答案_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《嵌入式系统应用教程 中国通信学会普通高等教育十二五 规划教材立项项目 习题答案 作者 赵宏 王小牛 任学惠 第二部分习题答案》由会员分享,可在线阅读,更多相关《嵌入式系统应用教程 中国通信学会普通高等教育十二五 规划教材立项项目 习题答案 作者 赵宏 王小牛 任学惠 第二部分习题答案(6页珍藏版)》请在金锄头文库上搜索。

1、第六章1、ARM处理器的特点是什么?答:ARM处理器立足于嵌入式市场,其设计思想并不单纯地追求处理器速度,而是着眼于系统的整体性能。具体来讲,主要包括以下几个方面。首先,低功耗是一个主要的考虑方面。其次,高代码密度是嵌入式系统的又一个重要需求。另外,嵌入式系统通常都是价格敏感的。还有一个影响嵌入式系统性能的因素就是处理器内核管芯(die)的面积,对于一个单片方案,处理器内核所占的面积越小,留给外设电路的空间就越大,这可以减少最终产品的外围芯片数目,从而降低设计和制造成本。在体系结构方面,ARM处理器采用精简指令系统计算机(RISC)结构,但ARM处理器又不是纯粹的RISC。为了能够更好地满足嵌

2、入式应用的需求,ARM处理器还增加了以下特点:l 一些特定指令的周期数可变,即并不是所有的ARM指令都是单周期的。l 内嵌桶形移位器产生了更为复杂的指令。l Thumb 16位指令集。l 条件执行。这个特性可以减少分支指令的数目,从而改善性能,提高代码密度。2、ARM处理器系列主要包括几大类?各自的特性是什么? ARM处理器系列属性的比较类型 属性ARM7ARM9ARM9EARM10EARM11Cortex处理器流水线深度3556813典型频率(MHz)2362504705406201100典型功耗(mw/MHz)0.030.25 (+cache)0.235 (+cache)0.45 (+ca

3、che)0.6 (+cache)0.45 (+cache)性能(MIPS)Dhrystone 2.11303003004006752000典型的指令集结构ARMv3ARMv4TARMv5TEARMv5TEJARMv6ARMv73、ARM处理器有哪些处理器模式?各自如何切换?答:ARM处理器有7种处理器模式,它们分别是:用户模式,快速中断模式,外部中断模式,管理模式,中止模式,未定义模式和系统模式。各模式之间的切换,可以通过软件控制来实现,也可以由外部中断或异常而引起。处理器复位之后,首先进入管理模式,操作系统内核通常处于这种模式。当运行用户程序时,进入用户模式。在用户模式下,应用程序不能访问一

4、些受操作系统保护的系统资源,应用程序也不能直接进行处理器模式的切换,只允许对CPSR(当前程序状态寄存器)的控制域进行读操作,但允许对CPSR条件标志的读/写访问,用户模式下执行软中断指令(SWI)时也进入管理模式。系统模式是一种特殊的用户模式,它使用和用户模式完全相同的寄存器,但允许对CPSR的完全访问,当操作系统任务需要访问系统资源但又想避免访问与异常模式相关的寄存器时进入该模式。当处理器访问存储器失败时,进入中止模式。当处理器遇到没有定义的指令或处理器不支持该指令时,进入未定义模式。快速中断模式和外部中断模式分别对ARM处理器两种不同级别的中断做出响应。4、“字节序”是指什么?ARM处理

5、器如何解决这一问题?答:当把一个多字节的数据存入以字节为单位编址的内存空间时,存在哪个字节定位在哪个地址单元的问题,在存储系统中称为字节序。一般有两种方案,big-endian和little-endian。在big-endian方案中,低字节在高地址单元中;在little-endian方案中,低字节在低地址单元中。ARM处理器支持两种方案的字节序,可以通过系统设置指定处理器支持那种方案。一般缺省为litter-endian,而且对于指令访问来说,总是little-endian。第七章1、试分析ARM处理器指令系统中对立即数进行预处理的好处。答:一般立即数寻址在指令系统中是必不可少的。ARM指令

6、系统是32位的RISC结构,每条指令的位数都固定为32位。因此在指令中能直接给出的立即数位数就会很少,使得立即数的使用受到很大限制。ARM对立即数进行预处理的技术,使得在12位的空间内可以表示部分32位的立即数,它突破了指令格式中位数的限制,使得立即数的范围大大扩大。虽然这样做只能表示部分立即数,但大部分常用的立即数因为小于8位,都能直接表示。而对于不能表示的立即数,又有伪指令LDR来处理。从计算机系统结构的角度来说,这种设计是非常优秀的。2、举例说明ARM指令系统中条件执行的好处。由于条件执行可以有效地减少分支指令的数目,从而减少指令流水线的暂停次数,因此条件执行既可以改善代码执行的性能,又

7、可以提高代码的密度。例如,求最大公约数的C语言代码片断为:while (a != b) if (a b) a -= b; else b -= a;不采用条件执行的ARM汇编代码为:gcdCMPR1,R2BEQcompleteBLTlessthanSUBR1,R1,R2BgcdlessthanSUBR2,R2,R1Bgcdcomplete而采用条件执行的ARM汇编代码为:gcdCMPR1,R2SUBGTR1,R1,R2SUBLTR2,R2,R1BNEgcd可见条件执行的优点是非常明显的。3、举例说明BX指令的功能。答:BX是一条跳转指令,其目标地址采用寄存器寻址。BX指令用Rm寄存器的最低位影响

8、CPSR中的T标志位,同时将计算后的目标地址保存在寄存器PC中。因此,BX指令既可以实现远距离(231)的绝对跳转,又可以实现ARM空间到Thumb空间的切换。指令的语法格式为:BX 其中,为指令执行的条件码,当忽略时指令为无条件执行;为跳转的目标地址,其计算方法为:使CPSR中T位等于Rm寄存器中最低位的值,然后将Rm寄存器中值与0xFFFFFFFE进行与操作,将结果传送到PC中。BX指令主要用于从ARM代码区跳转到Thumb代码区。ARM指令为32位,其指令地址的最低2位为0,Thumb指令为16位,其指令地址的最低1位为0。显然Thumb指令地址的最低2位也可以为0,因此不能单凭指令地址

9、的最低2位来区分指令类型。但由于两种指令的最低位都为0,因此指令系统允许用户通过人为的设置该位来标记目标地址,规定该位为1表示目标地址处为Thumb指令,该位为0表示目标地址处为ARM指令。正如前所示,如果指令地址的最低位为1,则为非法地址,因此必须将其与0xFFFFFFFE进行与操作来恢复其最初的值。事实上,处理器是根据CPSR的T位来决定是否按Thumb代码来执行,而不是单凭指令地址。当BX指令的目标地址不设置最低位时,可实现在ARM空间231范围的绝对跳转。4、举例说明SWI指令的功能。答:SWI指令用于产生软中断,ARM通过这种机制实现在用户模式对操作系统中特权模式的程序的调用。SWI

10、指令执行时,首先将该指令的下一条指令的地址保存在R14_svc寄存器中,将CPSR保存在SPSR_svc寄存器中。然后设置处理器模式为特权模式,并设置运行在ARM环境(而不是Thumb环境)。接着禁止一般中断,最后将PC值设置为0x00000008或0xFFFF0008。本指令主要用于用户程序调用操作系统的系统服务。操作系统在SWI的异常中断处理程序中提供相关的系统服务,并定义了参数传递的方法。通常有以下两种方法:其一,指令中24位立即数指定用户请求的服务类型,参数通过寄存器传递;其二,指令中的24位立即数被忽略,用户请求的服务类型由寄存器R0的数值决定,参数通过其它通用寄存器传递。在ADS1

11、.2中就采用第一种方法。例如,下面的代码段使程序正常返回系统。MOVR0, #0x18LDRR1, =0x20026SWI0x1234565、设x=123,y=-124,编写xy的ARM指令代码。MOV R0,#123MVNR1,#123SMULLR2,R3,R0,R1第八章 ARM汇编语言程序设计1、简述ADS1.2的基本组成。答:(1)代码生成工具(Code Generation Tools)包括armcc(ARM C编译器)、armcpp(ARM C+编译器)、tcc(Thumb C编译器)、tcpp(Thumb C+编译器)、armasm(ARM和Thumb汇编语言编译器)、armli

12、nk(ARM目标代码连接器)和armsd(ARM和Thumb符号调试器)。本章只用到armasm、armlink。(2)集成开发环境(CodeWarrior IDE from Metrowerks)ADS在其Windows版本中集成了Metrowerks公司比较有名的集成开发环境CodeWarrior IDE。CodeWarrior IDE包括工程管理器、代码生成接口、语法敏感编辑器、源文件和类浏览器、源代码版本控制系统接口、文本搜索引擎等。(3)调试器(Debuggers)包括ARM扩展调试器AXD(ARM eXtended Debugger)和ARM符号调试器armsd(ARM symbo

13、lic debugger)。AXD基于图形界面,具有一般意义上调试器的所有功能,包括简单和复杂断点设置、栈显示、寄存器和内存单元显示、命令行接口等。armsd为命令行调试工具。本章主要用到AXD。(4)指令集模拟器(Instruction Set Simulators)主要是ARMulator,使用户无需任何硬件即可完成大部分调试工作。(5)ARM 开发包(ARM Firmware Suite)包括fromelf(映像文件转换工具)、armprof(调试器运行时信息统计工具)、armar(库文件生成工具)和flash downloader等,其中fromelf可以将elf格式文件转换成多种二进

14、制文件格式,同时也可以生成elf文件内部的相应信息,flash downloader可以将可执行映像文件写入目标版的flash中。(6)ARM应用库(ARM Applications Library)包括标准C库和C+库例程。2、在ADS1.2命令行方式下调试ARM汇编程序的主要命令有哪些?其作用是什么?答:(1)、armasm:汇编源代码;(2)、armlink:连接目标代码;(3)、armsd:调试可执行文件;(4)、examine:检查内存单元;(5)、list:列出程序代码;(6)、register:检查寄存器等。3、ADS1.2的窗口调试工具是什么?它有什么特点?答:是AXD。AXD

15、调试环境既可以是ADP(调试代理协议)方式,即通过JTAG进行远程仿真调试;又可以是ARMUL方式,即无需任何硬件利用AXD嵌入的ARM软件模拟器ARMulator进行调试。 ADS软件功能非常强大,它既支持ARM汇编语言,又支持C、C+、Thumb汇编以及它们的混合编程;它既提供模拟环境,又提供远程仿真;嵌入的CodeWarrior能实现全面的项目管理;调试器支持断点调试和远程下载。4、简述LTORG伪操作的作用。答:LTORG伪操作用于声明一个数据缓冲区。当程序中使用某些指令时,需要有一个数据缓冲区,一般缺省的数据缓冲区被定义在段的末尾,这可能使得对数据缓冲池的使用产生越界。LTORG伪操可以将数据缓冲池的位置定义在当前位置(即LTORG伪操作所在的位置),从而避免数据缓冲区越界。LTORG伪操作通常放在无条件跳转指令之后,或者子程序返回指令之后,这样处理器就不会错误地将数据缓冲池中的数据当作指令来执行。5、LDR机器指令和LD

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号