嵌入式处理器课程复习参考习题3含答案.docx

上传人:b****5 文档编号:8216746 上传时间:2023-01-29 格式:DOCX 页数:36 大小:154.32KB
下载 相关 举报
嵌入式处理器课程复习参考习题3含答案.docx_第1页
第1页 / 共36页
嵌入式处理器课程复习参考习题3含答案.docx_第2页
第2页 / 共36页
嵌入式处理器课程复习参考习题3含答案.docx_第3页
第3页 / 共36页
嵌入式处理器课程复习参考习题3含答案.docx_第4页
第4页 / 共36页
嵌入式处理器课程复习参考习题3含答案.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

嵌入式处理器课程复习参考习题3含答案.docx

《嵌入式处理器课程复习参考习题3含答案.docx》由会员分享,可在线阅读,更多相关《嵌入式处理器课程复习参考习题3含答案.docx(36页珍藏版)》请在冰豆网上搜索。

嵌入式处理器课程复习参考习题3含答案.docx

嵌入式处理器课程复习参考习题3含答案

 

一、判断

 

1.嵌入式系统是看不见的计算机系统,其开发环境和运行环境一致。

()

2.PC机可包含在嵌入式系统中。

()

3.通常嵌入式系统是一个通用的计算平台,其软件是应用程序和操作系统两种软件的一体化程序。

()

4.嵌入式硬件系统的多样性不仅表现在嵌入式CPU的多样性、而且具有相同微处理器的硬件系统可能

会有多种不同的外围电路。

()

5.嵌入式硬件系统的核心是嵌入式微处理器,其主要体系架构有SPARC、Pentium、Itanium等。

()

6.AMBA总线是片内总线,包括高速总线AHB和低速总线APB。

()

7.NandFlash是一种FlashMemory它既可以做主存也可做外存使用。

()

8.NorFlash是一种FlashMemory它既可以做主存也可做外存使用。

()

9.在ARMCPU模式中System模式与User模式的运行环境一样,但是它可以不受任何限制地访问任何

资源。

()

10.在ARMCPU模式中除User模式外,其它模式都被称为特权模式,User模式可直接改变CPU的模式。

()

11.ARM处理器主要有两种工作状态:

ARM和Thumb,ARM和Thumb之间状态的切换将影响CPU的

模式或寄存器的内容。

()

12.ARM是32位嵌入式处理器,并可以进入16位运行模式,可支持大、小端数据格式()

13.X86CPU的异常向量与ARMCPU的异常向量的区别是:

在X86平台上,当有异常发生时CPU是到指定的向量地址读取要执行的程序的地址。

而ARMCPU是到向量地址的地方读取指令,也就是ARM的向量地址处存放的是一条指令(一般是一条跳转指令)。

()

14.存储器映射编址是指I/O端口的地址与内存地址统一编址,即I/O单元与内存单元在同一地址空间。

其优点是可采用丰富的内存操作指令访问I/O单元、无需单独的I/O地址译码电路、无需专用的I/O

指令。

()

15.ARM的中断处理方式与X86是一致的,当中断发生时CPU是到指定的向量地址读取要执行的程序的

地址。

()

16.AMBA中APB是低速总线,并可支持多个主单元。

()

 

17.在ARM的数据处理指令中使用立即数#0x101是合法的。

()

18.在CPSR中ARM处理器采用5位二进制位来表示处理器模式。

()

19.STRSB是带符号字节存储指令。

()

20.程序中可以通过MSR指令直接修改CPSR中的T位来实现ARM/Thumb状态的切换。

()

21.在C语言中可以通过关键字asm嵌入多条汇编语句。

()

22.交叉调试可以直接调试不同指令集的程序,不需要通过外部通信的方式来控制被调试程序。

()

23.ARM处理器的Thumb指令集是32位ARM指令集的一个子集,在执行前,通过芯片上的逻辑块,扩展

为标准的32位ARM指令来运行。

()

24.ARM处理器是典型的CISC体系。

()

25.嵌入式软件一般情况下调试器和被调试程序运行在相同的计算机上。

()

26.ARM处理器有37个寄存器,9种运行模式。

()

27.如果ARM处理器运行在User模式下,则程序不能访问有些受保护的资源,但能通过异常的形式来改

变CPU的当前运行模式。

()

28.异常和外部中断不能够引起ARM处理器工作模式的改变。

()

29.CPSR寄存器在所有的处理器模式下都是可以读/写的。

()

30.MIPS是一种很流行的RISC处理器。

()

31.交叉调试时,调试器和被调试程序运行在不同的计算机上。

()

 

二、单选或多选题

 

1.嵌入式系统的特点是()

(A)嵌入式系统通常是形式多样、面向特定应用的软硬件综合体;

(B)嵌入式系统得到多种类型的处理器和处理器体系结构的支持;

(C)嵌入式系统通常极其关注成本;

(D)嵌入式系统有实时性和可靠性的要求;

(E)嵌入式系统使用的操作系统一般是适应多种处理器、可剪裁、轻量型、实时可靠、可固化的嵌入

式操作系统;

 

(F)嵌入式系统开发不需要专门工具和特殊方法。

2.精简指令集系统RISC(ReducedInstructionSetComputer)的特点是()

(A)减少代码尺寸,增加指令的执行周期数

(B)简单的寻址模式,仅允许LOAD和STORE指令存取内存,其它所有的操作都基于寄存器到寄存器

(C)具有较多的寄存器

(D)由硬件完成部分软件功能,硬件复杂性增加,芯片成本高

3.嵌入式微处理器降低功耗的技术包括如下方面:

()

(A)提高工作电压

(B)提供不同的时钟频率:

通过软件设置

(C)关闭暂时不使用的功能块

(D)提供功耗管理机制

4.8.ARMCPU在FIQ模式下使用的寄存器集合是()

(A)PC,R14_fiqtoR8_fiq,R7toR0,CPSR,SPSR_fiq

(B)PC,R14toR8,R7toR0,CPSR,SPSR_fiq

(C)PC,R14_fiqtoR8_fiq,R7_fiqtoR0_fiq,CPSR,SPSR_fiq

(D)PC,R14toR8,R7toR0,CPSR

5.在ARM微处理器的AMBA总线结构中,AHB由()组成。

(A)主单元(B)从单元(C)仲裁器(D)译码器(E)APB桥

6.在ARM微处理器的AMBA总线结构中,APB桥具有以下()功能。

(A)AHB的从单元(B)仲裁器(C)译码器(D)APB中主单元

7.ARM有7种处理器模式和37个寄存器,所有模式共用的寄存器是()

(A)R0-R7

(B)R8-R13

(C)R14

8.嵌入式处理器的特点有()

(A)体积小

(B)集成度高

(C)可靠性低

(D)功耗低

(E)抗电磁干扰能力强

 

9.ARM处理器的数据类型有()

(A)字节型数据

(B)半字数据类型

(C)字数据类型

(D)双字数据类型

10.下列ARM处理器的寄存器中,有对应影子寄存器的寄存器是()

(A)R0,R1

(B)R0,R8

(C)R8,R9

(D)R8,R13

(E)R9,R3

11.在基于嵌入式操作系统的应用系统中,其初始化工作通常包括()

(A)板级初始化

(B)系统初始化

(C)创建所有应用任务所需资源

(D)应用初始化

(E)创建Idle任务

12.ARM7系列内核采用了三级流水线的内核结构,其中PC指向(

(A)正在被预取的指令

(B)正在执行的指令

(C)正被译码的指令

(D)正处于写回阶段的指令

13.以下()不属于ARM处理器工作模式。

)。

(A)未定义模式

(B)中断模式

(C)超级模式

(D)管理模式

14.在CPSR中,条件位N=0表示(

)。

(A)结果为负

(C)结果为0

(B)结果为正

(D)结果不为0

15.对于数据加载指令LDRR0,[R1],#4以下说法正确的是(

)。

(A)前变址回写

(C)后变址回写

(B)前变址不回写

(D)后变址不回写

16.满递减堆栈FD中LDMFD等价于(

)。

 

(A)LDMED

 

(B)LDMIA

 

(C)LDMDB

 

()LDMIB

17.CMN与ADDS两条指令的不同之处在于(

)。

(A)CMN指令的运算结果没有影响CPSR的值

(B)CMN指令的运算结果影响CPSR的Z位,而ADDS的运算结果同时影响Z位和C位

(C)CMN指令是进行的减法运算,而ADDS是进行的加法运算

(D)CMN指令的运算结果不需要保存到目标寄存器中

18.64位乘法指令UMULL

R1,R2,R3,R4表示两个32位的无符号数相乘,乘积结果的高32位和低

32位分别存放到两个相应的寄存器中。

其中R1中存放的数据为(

(A)被乘数

(B)乘数

(C)乘积结果的高32位

(D)乘积结果的低32位

19.在编译时,ARM小范围地址读取伪指令ADR被编译器替换成(

(A)一条ADD指令或者一条SUB指令

(B)两条ADD指令或者两条SUB指令

(C)一条SUB指令和一条MOV指令

(D)一条ADD指令和一条NOP指令

20.程序运行中被动态分配的内存段,分配在(

)中。

 

)。

)。

(A)代码段

(B)数据段

(C)栈

(D)堆

 

三、简答

 

1.ARMCPU有哪几种异常模式?

比较System模式与User模式的异同

答:

ARM处理器有5种异常工作模式:

异常模式(FIQ):

快速中断处理,用于支持高速数据传送或通道处理

异常模式(IRQ):

用于一般中断处理

异常模式(Supervisor):

特权模式,用于系统初始化或操作系统功能

异常模式(Abort):

存储器保护异常处理

异常模式(Undefined):

未定义指令异常处理

系统模式和用户模式均属于正常(非异常)工作模式,只不过系统模式也是一种特权模式,可以

访问系统中的所有资源。

 

2.ARMCPU有多少个栈寄存器?

与CPU模式的关系如何?

ARMCPU有6个栈寄存器,分别位于ARM处理器的6个寄存器分组中。

其中每种异常模式各有1

个堆栈寄存器,而系统模式和用户模式使用相同的堆栈寄存器。

 

3.广义上讲,ARM处理器的异常包括几种情况?

ARM处理器的异常包括以下几种情况:

·

 

·

 

·

外部中断:

由于CPU外部的原因而改变程序执行流程的过程,属于异步事件,又称为硬件中断,

可以被屏蔽。

软件中断(又称自陷):

表示通过处理器所拥有的软件指令、可预期地使处理器正在执行的程序

的执行流程发生变化,以执行特定的程序。

自陷是显式的事件,需要无条件地执行。

典型的自陷

指令如Motorola68000系列中的Trap指令、ARM中的SWI指令和Intel80x86中的INT指令。

异常:

由CPU内部的原因(比如遇到非法指令)或外部的原因(比如访存的错误)引起的事件。

 

4.何为可重入函数?

如果要使程序具有可重入性,在程序设计中应注意哪些问题?

答:

可重入函数是指函数可以被多个任务/线程调用。

要使程序具有可重入性,在程序设计中应注意:

如果使用全局变量、static变量,则应通过一定

的互斥机制如关中断、信号量P/V操作等对其加以保护。

 

5.在允许中断嵌套的情况下,如何使中断服务程序具有可重入性?

在允许中断嵌套的情况下,为了使中断服务程序具有可重入性,需要采取特殊步骤防止系统状态

的丢失。

比如在进入中断派发程序之后和调用用户级中断服务例程之前,保存LR_irq及SPSR_irq

的内容,以及在BL指令调用用户ISR之前切换至系统模式,以保证LR_irq的内容不被嵌套的中

断响应过程破坏。

 

6.简述Thumb指令集与ARM指令集的比较。

·

 

·

Thumb是一个16位的指令集

–从C代码得到最优的代码密度(约为ARM指令集65%左右)

–对窄内存系统有更好的指令性能

但是它有如下限制

–它是ARM指令集的一个功能子集

·

也许几条Thumb指令才能代替一条ARM指令

–有限制的条件执行

–数据处理指令只能使用低编号的寄存器(r0-r7)

 

–不能使用内嵌的桶型移位器.

–立即数的范围更小

–不能访问协处理器

·

所以,thumb指令集

–适合作为编译器的输出,而并非处理代码

 

7.带状态切换的跳转指令BX

 

Rm,如何来判断跳转到的Rm指定的目标地址处的指令是ARM指令,还

是Thumb指令?

答:

利用Rm寄存器的最低位(第0位):

如果该位为1,切换至THUMB状态,否则为ARM状态。

 

8.简述数据存储格式中的大端存储格式和小端存储格式(结合图示)。

参看课件第2章的有关内容。

 

9.什么是交叉开发环境?

答:

交叉开发环境是指用于嵌入式软件开发的所有工具软件的集合,一般包括文本编辑器、交叉

编译器、交叉调试器、仿真器、下载器等。

交叉开发环境由宿主机和目标机组成,宿主机与目标

机之间在物理连接的基础上建立起逻辑连接。

·

 

·

 

·

宿主机(Host):

是用于开发嵌入式系统的计算机。

一般为PC机(或者工作站),具备丰富的

软硬件资源,为嵌入式软件的开发提供全过程支持。

目标机(Target):

即所开发的嵌入式系统,是嵌入式软件的运行环境,其硬件软件是为特定应

用定制的。

在开发过程中,目标机端需接收和执行宿主机发出的各种命令如设置断点、读内存、写内存等,

将结果返回给宿主机,配合宿主机各方面的工作。

 

10.嵌入式软件运行流程在系统“引导/升级阶段”除了将系统软件从NorFlash中读取出来加载到RAM

中运行外还有哪两种引导方式?

并分析这三种引导方式中哪种方式引导速度最快?

哪种方式成

本更低?

参看课件“嵌入式系统启动程序开发”一章的内容。

 

11.分析有哪些技术用来降低嵌入式处理器的功耗?

参看课件第1章。

 

12.AMBA总线是ARM公司研发的一种总线规范,目前为3.0版本。

在AMBA总线规范中,定义了那几种

 

总线类型?

并说明这些总线中哪些是高速总线,哪些是低速总线?

参看课件第4章的内容。

 

13.ARM处理器有几种工作模式?

各种模式主要的用途是什么?

答:

ARM处理器有7种工作模式:

用户模式(User):

正常程序执行模式,用于应用程序

异常模式(FIQ):

快速中断处理,用于支持高速数据传送或通道处理

异常模式(IRQ):

用于一般中断处理

异常模式(Supervisor):

特权模式,用于系统初始化或操作系统功能

异常模式(Abort):

存储器保护异常处理

异常模式(Undefined):

未定义指令异常处理

系统模式(System):

运行特权操作系统任务

 

14.ARM处理器有多少寄存器?

各种工作模式下所使用的寄存器集合分别是什么?

答:

ARM处理器有37个寄存器。

各工作模式下所使用的寄存器集合如下表所示:

 

15.ARM处理器的异常响应和异常返回过程中,主要完成了哪些工作?

针对不同异常模式写出相应寄存器内容的变

化。

答:

ARM处理器在进行异常响应过程中,主要完成:

拷贝CPSR寄存器的内容至对应模式下的SPSR_寄存器中;

将返回地址保存到对应模式下的LR_寄存器中;

对CPSR寄存器的一些控制位进行设置:

无论发生异常时处理器处于Thumb状态还是ARM状态,响应异常后处理器都会切换到ARM状态,

即CPSR[5]=0;

将模式位CPSR[4:

0]设置为被响应异常的模式编码;

设置中断屏蔽位:

如果异常模式为Reset或FIQ则

CPSR[6]=1/*禁止快速中断*/

CPSR[7]=1/*禁止正常中断*/

 

将程序计数器(PC)设置为异常向量的地址

在异常返回过程中,主要完成:

将SPSR_中的内容恢复到CPSR中;

将PC设置为LR_的值

针对具体的异常模式,相应寄存器的变化情况如下:

(1)Reset异常

R14_svc

SPSR_svc

=

=

不确定的值

CPSR

CPSR[4:

0]

CPSR[5]

CPSR[6]

CPSR[7]

=

=

=

=

0b10011

0

1

1

//进入管理模式

//在ARM状态中执行

//禁止快速中断FIQ

//禁止普通中断IRQ

如果配置的是高端向量,则

PC=

否则

PC=

0xFFFF0000

 

0x00000000

 

(2)未定义指令(Undefinedinstruction)异常

R14_und

SPSR_und

=

=

未定义指令后的下一条指令地址

CPSR

CPSR[4:

0]

CPSR[5]

=

=

0b11011

0

//进入未定义模式

//在ARM状态中执行

//CPSR[6]不改变

CPSR[7]

=

1

//禁止普通中断IRQ

如果配置的是高端向量,则

PC=

否则

PC=

0xFFFF0004

 

0x00000004

 

(3)软件中断(SoftwareInterrupt)异常

R14_svc

SPSR_svc

=

=

SWI指令后的下一条指令地址

CPSR

CPSR[4:

0]

CPSR[5]

=

=

0b10011

0

//进入管理模式

//在ARM状态中执行

 

//CPSR[6]不改变

CPSR[7]

=

1

//禁止普通中断IRQ

如果配置的是高端向量,则

PC=

否则

PC=

0xFFFF0008

 

0x00000008

 

(4)指令预取(PrefetchAbort)异常

R14_abt

SPSR_abt

=

=

中止指令后下一条指令的地址

CPSR

CPSR[4:

0]

CPSR[5]

=

=

0b10111

0

//进入中止模式

//在ARM状态中执行

//CPSR[6]不改变

CPSR[7]

=

1

//禁止普通中断IRQ

如果配置的是高端向量,则

PC=

否则

PC=

0xFFFF000C

 

0x0000000C

 

(5)数据中止(DataAbort)异常

R14_abt

SPSR_abt

=

=

中止指令下一条指令的地址

CPSR

CPSR[4:

0]

CPSR[5]

=

=

0b10111

0

//进入中止模式

//在ARM状态中执行

//CPSR[6]不改变

CPSR[7]

=

1

//禁止普通中断IRQ

如果配置的是高端向量,则

PC=

否则

PC=

 

(6)IRQ

0xFFFF0010

 

0x00000010

R14_irq

SPSR_irq

=

=

下一条指令地址

CPSR

CPSR[4:

0]

CPSR[5]

=

=

0b10010

0

//进入IRQ模式

//在ARM状态中执行

//CPSR[6]不改变

CPSR[7]

=

1

//禁止普通中断IRQ

如果配置的是高端向量,则

PC=

否则

PC=

 

(7)FIQ

0xFFFF0018

 

0x00000018

R14_fiq

SPSR_fiq

=

=

下一条指令地址

CPSR

CPSR[4:

0]

CPSR[5]

CPSR[6]

=

=

=

0B10001

0

1

//进入FIQ模式

//在ARM状态中执行

//禁止快速中断FIQ

 

CPSR[7]

 

=

 

1

 

//禁止普通中断IRQ

如果配置的是高端向量,则

PC=

否则

PC=

0xFFFF001C

 

0x0000001C

 

16.嵌入式系统中的I/O设备主要有哪2种编址模式?

请对比各自的优缺点。

答:

嵌入式系统中的I/O设备主要有存储器映射编址和I/O映射编址两种模式,其优缺点对比如下表所示:

 

17.用一条ARM指令分别实现下面的语句:

a)r0=16

MOVr0,#16

b)r0=r1/16(带符号的数)

MOVr0,r1ASR4

c)r1=r2*3

ADDr1,r2,r2,LSL#1

d)r0=-r0

RSB

r0,r0,#0

18.BIC指令的作用是什么?

BIC是位清除指令,将寄存器Rn的值与operand2的值的反码按位作逻辑与操作,结果保存到Rd中。

指令格式如

下:

BIC{cond}{S}Rd,Rn,operand2

举例:

BICR1,R1,#0x0F;将R1的低4位清零,其它位不变

 

19.哪些数据处理指令总是设置条件标志位?

对于ARM指令集的所有数据处理指令,均可选择使用S后缀以影响状态标志。

比较指令CMP,CMN,TST和TEQ不

需要后缀S,它们会直接影响状态标志。

对于THUMB指令集的数据处理指令,除MOV和ADD指令访问寄存器R8~R15外,其它数据处理指令总是更新CPSR

中的ALU状态标志。

 

20.哪些指令可用于子程序调用的返回?

请举例说明。

B指令、BX指令、MOV指令、LDMFD指令等。

举例:

BLR

 

BXLR

MOVPC,LR

LDMFDsp!

{r0-r12,pc}

 

21.要打开或者屏蔽IRQ中断该使用哪些指令?

在低版本(比如V4版本)ARM指令集中,使用如下的指令序列完成IRQ中断的屏蔽/打开:

MRSr0,CPSR;将CPSR的内容读至r0

BICr0,r0,#0x80

MSRCPSR_c,r0

;将第7位清零以允许IRQ中断

;将修改后的值仅写入‘c’字节

而在高版本(比如V6版本)可直接使用改变处理器状态的指令CPS:

CPSIEIRQ

 

22.为了克服ARM分支指令只有±32MB范围的局限,应该使用哪些指令?

可以使用全范围地址读取指令LDR,实例:

LDR

pc,=const

使用pc寄存器作为目标寄存器,采用LDR伪指令,可以把一个任意的32位地址加载到PC中,以实现向任意地址

的跳转。

 

23.CLZ指令的用途是什么?

前导零计数指令,返回寄存器内容中第一个1之前的二进制0的个数。

可以利用此指令来规范化一个寄存器的内

容。

例如,

CLZR0,R1;计算R1中的前导零的个数

MOVR1,R1LSLR0;将R1寄存器左移若干位,使得最高位不再为零。

 

24.以下指令的结果是什么?

r1=0x7FFFFF0

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1