ARM练习题.doc

上传人:h**** 文档编号:1082771 上传时间:2018-12-02 格式:DOC 页数:17 大小:139KB
下载 相关 举报
ARM练习题.doc_第1页
第1页 / 共17页
ARM练习题.doc_第2页
第2页 / 共17页
ARM练习题.doc_第3页
第3页 / 共17页
ARM练习题.doc_第4页
第4页 / 共17页
ARM练习题.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、 1 / 17简答题什么是嵌入式操作系统?答:嵌入式系统是以应用为中心,以计算机技术为基础,软/硬件可裁减,功能。可靠性,成本,体积,功耗要求严格的专用计算机系统。与通用计算机相比,嵌入式系统有哪些特点?答:(1) 嵌入式系统通常是面向特定应用的;(2) 嵌入式系统是将计算机技术,半导体技术和电子技术与各行各业的具体应用相结合的后的产物,是一门综合技术学科;(3).嵌入式系统和具体应用有机的结合在一起,它的升级换代也是和具体产品同步进行的,因此嵌入式产品一旦进入市场,就有较长的生命周期;(4).为了提高执行速度和可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存储于磁盘等

2、载体中;(5).嵌入式系统本身不具有自主开发能力,即使设计完成以后用户通常也不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。ARM 处理器有几种寻址方式,说明各种寻址的方式。答:立即寻址:操作数直接放在指令中。例如:ADD R0,R0,0x3f ;R0R0 0x3f寄存器寻址:操作数放在寄存器中。例如:ADD R0,R1,R2 ;R0R1 R2寄存器间接寻址:操作数在内存,以寄存器中的值作为操作数的地址。例如:LDR R0,R1 ;R0R1基址加偏移量寻址(基址变址寻址):基址寄存器的内容与指令中的偏移量相加形成操作数的有效地址 例如:LDR R0,R1,4 ;R0R14L

3、DR R0,R1,R2 ;R0 R1R2多寄存器寻址:一条指令可以完成多个寄存器值的传送。例如:LDMIA R0,R1,R2,R3, R4 ;R1R0;R2R04;R3R08;R4R012堆栈寻址:堆栈是一种数据结构,按先进后出(First In Last Out,FILO )的方式工作,使用一个称作堆栈指针的专用寄存器指示当前的操作位置,堆栈指针总是指向栈顶。例如:STMFD R13!,R0,R4-R12 ,LRLDMFD R13!,R0,R4-R12,PC举例介绍嵌入式处理器有哪几类?答:1.嵌入式微处理器(Embedded Microprocessor Unit,EMPU) ;2.嵌入式

4、微控制器;(Embedded Microcontroller Unit,EMCU)2 / 173.嵌入式 DSP 处理器(Embedded Digital Signal Processor,EDSP) ;4.嵌入式片上系统(Embedded System on Chip,EsoC) ;什么是立即数?请简要描述立即数在使用时有什么注意要点。立即数,主要是指寻址时直接在指令中出现的数,在使用时注意(1)立即数前需要加#(2)ARM 指令只有 32 位长,立即数在指令中占 12 位存储空间,ARM 用这 12 位空间 8位表示有效数字基数 B,4 位表示译为的数 M,按照把 B 循环右移 M*2 位

5、,构造成一个新的 32 位的数,其它位补 0,所以在使用立即数时,要注意其是否合法。请问 BL 指令跳转时 LR 寄存器保存的是什么内容?并请简述原因。BL 跳转时,LR 中保存的是执行 BL 跳转指令的下一条指令的地址,考虑流水线的情况,即当前的 PC-4。LR 用来在需要返回程序时从 LR 中还原程序执行的位置继续执行。ARM 内核有多少个寄存器,请列举出这些寄存器的名字和数量。ARM 有 37 个寄存器, (1)未分组寄存器:R0-R7,共 8 个;(2)分组寄存器 R8-R14,其中 FIQ 模式下有单独的一组 R8-R12 共 5 个,另外 6 种模式共用一组 R8-R12,共 5

6、个,USR 和 SYS 模式共用一组 R13-R14,共 2 个,另外 5 种模式下各有独自的一组 R13-R14,共 10 个;(3)程序计数器 PC 即 R15 寄存器,共 1 个;(4)状态寄存器 CPSR,和 5 个备份状态寄存器 SPSR,共 6 个;ARM 总计 37 个寄存器。ARM 通用寄存器中,有 3 个寄存器有特殊功能和作用,请写出它们的名字和作用。 (6 分)R13:SP 栈指针寄存器,用来保存程序执行时的栈指针位置;R14:LR 返回链接寄存器,用来保存程序执行 BL 指令或模式切换时的返回原程序继续执行的地址;R15 :PC 程序计数器,保存程序执行的当前地址。ARM

7、 的 CPSR 寄存器的位定义如图所示,试简述各位的功能。 (8 分)N Z C V保留I F T M 4 - 0 2 1345 03 1 3 0 2 9 2 8 2 7 678标志位含义 N N=1 表示运算的结果为负数;N=0 表示运算的结果为正数或零 Z Z=1 表示运算的结果为零;Z=0 表示运算的结果为非零 C C=1 表示有进位,C=0 表示没有进位 V V=1 表示符号位溢出,V=0 表示结果没有溢出 Q 在 ARM vTE/J 架构支持,指示 DSP 指令是否溢出 J 仅 ARM 5TE/J 架构支持,J = 1 表示处理器处于 Jazelle 状态 I I=1 表示禁止 IR

8、Q F F=1 表示禁止 FIQ T 仅 ARM xT 架构支持,T = 0 表示处理器处于 ARM 状态,T=1 表示处理器处于 Thumb 状态什么是伪指令和伪操作?在 ARM 汇编中有哪几种伪 指令?答:在 ARM 汇编语言程序中有些特殊助记符,这些助记符与一般指令的助记符的不同之处在于没有相对应的操作码或者机器码,通常称这些特殊指令助记符伪指令,他们多完成的操3 / 17作成为伪操作;在 ARM 汇编中,有如下几种伪指令:(1)符号定义伪指令;(2)数据定义伪指令;(3)汇编控制伪指令;(4)信息报告伪指令;(5)宏指令及其他伪指令。如何定义寄存器列表,试举一个使用寄存器列表的例子,要

9、求实现 4 个字的内存复制。答:AREA EXAMPLE1,CODE,READONLYENTRYLDR R0,=0XFF ;把地址 0XFF 赋给 R0LDR R5,=0X0F ;把地址 0X0F 赋给 R5STARTPBLOCK RLIST R1-R4 ;把 R1-R4 定义为 PBLOCKLDMIA R0,PBLOCK ;把 R0 为首地址的内存 4 个字单元装载至 R1 到 R4中STMIA R5,PBLOCK ;把 R1 到 R4 的值依次存至 R5 为首地址的内存字单元STOP B STOP ;死循环END如何定义一个宏,宏与子程序的区别是什么?答:宏的格式为:MARCO 和 MEN

10、D$标号 宏名 参数,参数 2.指令序列MENDMARCO 表示一个宏定义的开始,MEND 表示一个宏的结束,MARCO 和 MEND 前呼后应可以将一段代码定义为一个整体,又称宏,然后在程序中就可以在程序中通过宏的名称及参数调用该段代码。宏指令可以重复使用,这一点的使用方式与子程序有些相似,子程序可以节省存储空间,4 / 17提供模块化的程序设计。但使用子程序机构时需要保存/恢复现场,从而增加了系统的开销,因此,在代码传递的参数较多并且比较短时,可以使用宏代替子程序,宏在被调用的地方展开。ARM 汇编中如何定义一个段,段有几种属性?答:AREA 用于定义一个代码段,数据段,或者特定属性的段。

11、段的几种属性如下:READONLY 表示只读属性;READWRITE 表示本段可读写;CODE 定义代码段;DATA 定义数据段;ALIGN=表达式的对齐方式为 2 的表达式次方;COMMON:定义一个通用段,这个段不包含用户代码和数据。在一个汇编源文件中如何包含另一个文件中的内容?答:通常可以使用 GET/INCLUDE 指令,在某源文件中定义一些宏指令,用 MAP 和FIELD 定义结构化数据结构类型,用 EQU 定义常量的符号名称,然后用 GET/INCLUDE 将这个源文件包含到其他源文件中。1.ARM7TDMI 采用了几级流水线工作方式,简要说明。答:三级 1、取指令 2、译码 3、

12、执行2.ARM9 采用了几级流水线工作方式,简要说明。答:五级流水线工作方式,1.取指 2.指令译码 3.执行 4.数据存储访问 5.写寄存器3.哈佛体系结构和冯诺依曼体系结构有何不同。答:哈佛体系结构的两套地址总线和数据总线是分开的,冯诺依曼体系结构是复用的。1. 简述 ARM 发生异常时,ARM 核心会自动做哪些事情?从异常返回时,我们要做哪些事情?当异常产生时, ARM core:拷贝 CPSR 到 SPSR_设置适当的 CPSR 位: 改变处理器状态进入 ARM 状态改变处理器模式进入相应的异常模式设置中断禁止位禁止相应中断 (如果需要)保存返回地址到 LR_5 / 17设置 PC 为

13、相应的异常向量返回时, 异常处理需要:从 SPSR_恢复 CPSR从 LR_恢复 PC Note:这些操作只能在 ARM 态执行.2. 用 ARM 汇编指令写出实现 64 位加法和 64 位减法的代码段,使用的寄存器请自行分配。假定低 32 位数存放在 r0 和 r1 里面,高 32 位数存放在 r2 和 r3 里面。加法:ADDS r0, r0, r1 /加 S 是因为要让这个操作影响标志位ADC r2, r2, r3 /ADC 是带进位的加法,如果上一条指令产生进位则一起加进来减法:SUBS r0, r0, r1 /加 S 是因为要让这个操作影响标志位SBC r2, r2, r3 / SB

14、C 是带进位的减法指令3. 请列举 ARM 处理器的模式和异常,并说明各个发生异常时 ARM 处理器所处的模式异常: Reset Data AbortFIQIRQPrefetch AbortSWIUndefined instruction处理器模式User : 非特权模式,大部分任务执行在这种模式FIQ : 当一个高优先级(fast) 中断产生时将会进入这种模式IRQ : 当一个低优先级(normal) 中断产生时将会进入这种模式Supervisor :当复位或软中断指令执行时将会进入这种模式Abort : 当存取异常时将会进入这种模式Undef : 当执行未定义指令时会进入这种模式Syste

15、m : 使用和 User 模式相同寄存器集的特权模式4. FIQ 的什么特点使得它处理的速度比 IRQ 快?1)FIQ 优先级比 IRQ 高,不会被中断2)FIQ 有自己的专属寄存器:r8r12,不用对通用寄存器入栈保护,可以加快速度3)FIQ 位于异常向量表的末尾 0x1c,故无需跳转,可以在这里直接放置异常处理函数6 / 175. 什么指令可以放在中断向量表?跳转指令,给 PC 赋值的指令B,LDR,MOV6. ARM 处理器 中断向量表位于存储器的什么位置?默认:0x0也可以配置成:0Xffff00007. 下列 ARM 指令将做什么?a) LDRH r0,r1,#6 b) LDR r0

16、, =0x999a:将 r1 寄存器的值加上 6,然后把以这个值为地址的内存单元里的值取半字(低 16 位)赋给 r0b:将立即数 0x999 赋给 r0,注意这是一个伪指令8. SWP 指令的优势是什么?用来实现什么功能?功能:在寄存器和存储器之间,由一次存储器读和一次存储器写组成的原子操作。完成一个字节或字的交换。可以用来实现信号量9专业名词解释RISC (Reduce Instruct Set Computer) ; IP (Intellectual Property) ;ISR (Interrupt Servers Routine)JTAG (Join Test Active Grou

17、p)IDE (Integrate Development Environment)RTOS(实时操作系统) ;CISC(复杂指令集) ;Kernel(内核)Scheduler(调度)non-preemptive(非抢先式)初始化代码直接对 ARM 微处理器内核及硬件控制器编程,多采用汇编语言编程,初始化代码一般应包含如下典型任务:(1)定义程序入口点(2)设置异常向量;(3)初始化存储器系统;(4)初始化堆栈指针寄存器;(5)初始化临界 I/O 设备;(6)初始化 C 代码的运行环境;7 / 17(7)改变处理器的运行模式和状态;(8)使能中断;(9)进入 C 代码运行选择题1. ARM 属于

18、 RISC 架构2. ARM 指令集是 32 位宽,Thumb 指令集是 16 位宽的。3. ARM 指令集是 4 字节对齐,Thumb 指令集是 2 字节对齐的4. 复位后,ARM 处理器处于 SVC 模式,ARM 状态5. ARM 处理器总共 37 个寄存器,System 模式下使用 17 个寄存器,SVC 模式下使用 18 个寄存器。6. ARM 处理器中优先级别最高的异常为 RESET,FIQ,IRQ 异常可以用来相应中断7. ARM 数据处理指令中有效的立即数是( ACEGH )A 0X00AB0000 B 0X0000FFFF C 0XF000000F D 0X08000012E

19、0X00001F80 F 0XFFFFFFFF G 0 H 0XFF0000008. ATPCS 规定中,推荐子函数参数最大为 4 个9. ATPCS 规定中,栈是满减10. 在 ARM 汇编编程,寄存器有多个别名,通常 PC 是指 R15,LR 是指 R14,SP 是指R1311. CPSR 寄存器中反映处理器状态的位是 T 位12. 下面属于 ARM 子程序调用指令的是 BL13. ARM7 属于冯.诺依曼结构,ARM9 属于哈佛结构。14. ARM7 是 3 级流水线,ARM9 是 5 级流水线。15. ARM 中可以访问状态寄存器的指令是 MRS,能够访问内存的指令是 LDR16. 下

20、面哪种操作系统最方便移植到嵌入式设备中( D )A DOS B UNIX C WINDOWS XP D LINUX17. 以下哪项关于 SRAM 和 DRAM 的区别是不对( A )(A) SRAM 比 DRAM 慢 (B )SRAM 比 DRAM 耗电多(C) DRAM 存储密度比 SRAM 高得多 (D )DRM 需要周期性刷新18. 下面哪种嵌入式操作系统很少用于手机终端设备上(CE)(A) Symbian (B)WinCE (C) uc/os (D )linux (E) VxWorks19. S3C2410 采用的是 ARM920T 核心20. 下面哪点不是嵌入式操作系统的特点 ( C

21、 )A. 内核精简 B. 专用性强 C. 功能强大 D. 高实时性21. NAND FLASH 和 NOR FLASH 的叙述正确的是( D )8 / 17A. NOR 的读速度比 NAND 稍慢一些 B. NAND 的写入速度比 NOR 慢很多C. NAND 的擦除速度远比 NOR 的慢 D.大多数写入操作需要先进行擦除操作22. MMU 的作用有( AB )A 内存保护 B 地址转换 C 加快存取速度 D 安全保密 E 内存分配23. 以下属于 DMA 特点的有( BC )A 占用 CPU B 占用总线 C 不占用 CPU D 不占用总线24. 以下哪种方式不属于文件系统的格式 ( B )

22、(A) FAT (B)DOS (C) NTFS (D )Ext1.在 ARM 体系结构中,要从主动用户模式(User)切换到超级用户模式(Supervisor) ,采用何种方法?先修改程序状态备份寄存器(SPSR)到对应的模式,再更新 CPU 状态2.嵌入式系统加电或复位后,所有的 CPU 通常都从某个由 CPU 制造商预先安排的地址上取指令。例如:对于 S3C2410 来说,Boot Loader 会映射到 0x00000000 地址处。 3.CPSR 中的低 8 位称为控制位,下列不属于控制位的是【A】 。A、N B、I C、F D、T4.ARM 中可以访问状态寄存器的指令是 MRS,能够

23、访问内存的指令是 LDR。5.下列条件码中表示不相等的是 NE。EQ 相等NE 不相等CS/HS 无符号数大于或等于CC/LO 无符号数小于MI 负数PL 正数或零VS 溢出VC 没有溢出HI 无符号数大于LS 无符号数小于或等于GE 有符号数大于或等于 LT 有符号数小于 GT 有符号数大于 LE 有符号数小于或等于 AL 任何 无条件执行 (指令默认条件 ) NV 任何 从不执行(不要使用 )6.CPSR 中的低 8 位称为控制位,其中 I 位等于 1 表示禁止 IRQ 中断。7.ARM 微处理器支持 7 种工作模式。其中,除用户模式之外的其余 6 种称为特权模式,在这 6 种之中,除系统

24、模式之外的其余 5 种又称为异常模式。8.下列 ARM 指令中,可用于满递增堆栈操作的是 STMIB。9.ARM 伪指令中,可用于大范围地址读取的是 LDR。10.同 CISC 相比,下面哪一项不属于 RISC 处理器的特征。 【D】A、采用固定长度的指令格式,指令规整、简单、基本寻址方式有 23 种。B、减少指令数和寻址方式,使控制部件简化,加快执行速度。C、数据处理指令只对寄存器进行操作,只有加载/ 存储指令可以访问存储器,以提高指9 / 17令的执行效率,同时简化处理器的设计。D、RISC 处理器都采用哈佛结构11.以下叙述中,不符合 RISC 指令系统特点的是【B 】 。A、 指令长度

25、固定,指令种类少B、 寻址方式种类丰富,指令功能尽量增强C、 设置大量通用寄存器,访问存储器指令简单D、 选取使用频率较高的一些简单指令12.下面关于 ARM 处理器的体系结构描述哪一个是错误的。 【B】A、三地址指令格式B、所有的指令都是多周期执行C、指令长度固定D、Load-Store 结构1.相对于 ARM 指令集,Thumb 指令集的特点是【D】 。A、指令执行速度快B、16 位指令集,可以得到密度更高的代码,对于需要严格控制成本的设计非常有意义C、Thumb 模式有自己独立的寄存器D、16 位指令集,代码密度高,加密性能好2.在 ARM 寄存器结构中,栈指针使用 R13 寄存器。3.

26、32 位体系结构的 ARM 处理器有 7 种不同的处理器工作模式,和 6 个主要用来标识 CPU工作状态和程序运行状态的状态寄存器。4.在下列 ARM 处理器的各种模式中,只有用户模式不可以自由地改变处理器的工作模式。5.在 ARM 的汇编程序中,ADR、ADRL 、LDR、NOP 等被称为伪指令。填空题1常见的 ARM 处理器内核有 ARM7、ARM9 和【ARM11 】等。2按总线所传送的信息类型,总线分为【地址总线】 、 【数据总线】和【控制总线】 。3GPIO 的中文全称是【通用输入/输出口】 。4ARM 处理器有两种状态,分别是【ARM】和【Thumb】 。5.计算机结构分为【冯诺依

27、曼 】结构和【哈佛】结构。6.ARM 处理器支持的数据类型中,字节为【8】位、半字为【16】位、字为【32】位。7.ARM 体系结构版本中 V【4】版架构是目前应用最广的 ARM 体系架构,ARM7、 【ARM9】都采用该架构。8.常用的嵌入式操作系统有【嵌入式 Linux】 、 【VxWords】 等。9.ARM 嵌入式系统主要由【嵌入式硬件】 、 【嵌入式软件】和【开发工具】构成。10.S3C2410 支持两种引导方式,分别是【Nor-Flash】启动方式、 【Nand-Flash】启动方式。11.一个嵌入式系统由 3 部分组成,分别是【嵌入式硬件】 、 【嵌入式软件】和【开发工具】 。判

28、断题: 1、所有的电子设备都属于嵌入式设备。 ( F )2、冯诺依曼体系将被哈佛总线所取代。 ( F )3、嵌入式开发不需要硬件支持。 ( F )4、移植操作系统时需要修改操作系统中与处理器直接相关的程序。 F10 / 175、USB2.0 的最大通信速率为 12MB。 ( F )6、嵌入式开发需要专门的软件和硬件设备。( T )编程题;例三:ADR 伪指令AREA adrlabel1,CODE, READONLYENTRYstartBL funcB .LTORGfuncADR R0, startADR R1, DataArea;ADR R2, DataArea+4300ADRL R3, DataArea+4300MOV PC, LRDataAreaSPACE 8000END;例五:利用跳转表实现程序跳转AREA Jump, CODE, READONLYnum EQU 2ENTRYstartMOV R0, #0MOV R1, #3MOV R2, #2BL arithfuncB .arithfuncCMP R0, #numMOVHS PC, LRADR R3, JumpTableLDR PC, R3,R0,LSL #2JumpTableDCD DoAddDCD DoSubDoAddADD R0, R1, R2MOV PC, LRDoSubSUBR0, R1, R2

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

当前位置:首页 > 教育教学资料库 > 参考答案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。