好文档 - 专业文书写作范文服务资料分享网站

嵌入式习题答案汇总

天下 分享 时间: 加入收藏 我要投稿 点赞

12. 当处理异常时,ARM内核会做哪些处理? 答:ARM 处理器对异常中断的响应过程如下:

(1) 保存处理器当前状态、中断屏蔽位以及各条件标志位。这是通过将当前程序状态寄存器CPSR 的内容保存到将要执行的异常中断对应的SPSR 寄存器中实现的。各异常中断有自己的物理SPSR 寄存器。

(2) 设置当前程序状态寄存器CPSR中相应的位。包括设置CPSR中的控制模式位,使处理器进入相应的执行模式;设置CPSR中的中断禁止位,如果进入IRQ 模式时,禁止IRQ 中断,如果当进入FIQ 模式时,禁止FIQ 中断。 (3) 将寄存器LR_mode设置成返回地址。

(4) 将程序计数器值(PC)设置成该异常中断的中断向量地址,从而跳转到相应的异常中断处理程序执行。

13. 当异常结束时,ARM内核会做哪些处理?

答:ARM 系统处理完中断后从异常中断处理程序中返回包括下面的步骤: (1) 恢复被中断的程序的处理状态,即将SPSR_mode 寄存器内容复制到当前程序状态寄存器CPSR 中。 (2)返回到发生异常中断的指令的下一条指令处执行。即将LR_mode 寄存器的

内容复制程序计数器PC 中。因为整个应用系统是从复位异常中断处理程序执行的,所以复位异常中断处理程序不需要返回。

第四章习题答案

1. 请列举ARM处理器的指令寻址方式。哪种寻址方式是ARM指令集特有的

寻址方式?

答:ARM处理器具有9种基本寻址方式,分别为立即寻址、寄存器寻址、寄存器移位寻址、寄存器间接寻址、基址寻址、多寄存器寻址、堆栈寻址、块拷贝寻址、相对寻址。寄存器移位寻址是ARM指令集特有的寻址方式。 2. 在ARM数据处理指令中,第二个操作数都有哪几种形式?

答:第2 个操作数的三种形式如下。立即数,例如:MOV R0,#0x0000F200 ;寄存器方式,例如:ADD R1,R1,R2;寄存器移位方式,例如:ANDS R1,R1,R2,LSL R3。

3. 请分别写出调用子程序、子程序返回所使用的指令,并简述所用指令的工

作过程。

答:用BL指令调用子程序。BL指令先将下一条指令的地址拷贝到R14(即LR)连接寄存器中,然后跳转到指定地址运行指令。子程序返回的指令是:MOV PC, LR。

4. 如图:存储器地址4010H,4014H,4018H的内容分别为1,2,3。寄存器R1,R2,R3的值都为0。R0的值为0x4010。

问:给出指令执行后,寄存器R0,R1,R2,R3的结果。(IA:每次传送后地址加4)

LDMIA R0!,{R1-R3} 答:

5. 阅读下面程序,并回答问题。

AREA Example1,CODE,READONLY ; 声明代码段Example1

ENTRY ; 标识程序入口 CODE32 START MOV R0,#20 ----------------------- (1) MOV R1,#10 LDR R5,=0x12345678 ----------------------- (2) ANDS R2,R5,#0x20 ----------------------- (3) CMP R2,#0 ----------------------- (4)

ADDEQ R0,R0,#1 ----------------------- (5) ADDNE R1,R1,#1 ----------------------- (6) HALT B HALT END ; 文件结束 a) 请回答汇编语句(1)(2)(3)(4)(5)(6)的含义。 b) 此程序实现什么功能? 答:

a) 语句(1)把常数20送到R0;语句(2)使用LDR伪指令把常数0x12345678

送到R5;语句(3)将R5中的数据与0x20相与,影响标志位;语句(4)将R2的数据与0比较;语句(5)如果相等R0加1;语句(6)不相等R1加1(6分)

测试数据0x12345678的bit[4](第五位)。如果是0,R0中的数据20加1。如果是1,R1中的数据10加1。(2分)

6. 用汇编语言编写程序,求1到50的累加和。 答: AREA Example1,CODE,READONLY ENTRY CODE32 START LDR R5,=0x40003005 MOV R0,#0 MOV R1,#1 LOOP BL SUM B LOOP

SUM ADDS R0,R0,R1 ADD R1,R1,#1 CMP R1,#50 BLHI HALT MOV PC,LR

HALT STR R0,[R5] B . END

7. 请说明汇编语句STRB R2,[R0,#4]和STR R2,[R0,#4]!的区别。 答:mem8[R0+4]=R2;R0不变 mem32[R0+4]= R2;R0=R0+4

mem32[]表示存储器的存储单元中存放的32位字数据,mem16[]表示存储器的存储单元中存放的16位半字数据,mem8[]表示存储器的存储单元中存放的8位字节数据

8. 请说明MOV指令和LDR指令在传送立即数时,使用方法的区别。

答:MOV传送8位位图数据,例如:MOV R1,#0xFF000000;

LDR伪指令传送32位立即数,例如:LDR R0,=0x12345678。 9. 请列举ARM处理器的四种堆栈类型,并说明它们的特点和区别。 答:(1)满递增堆栈 FA:堆栈指针指向最后压入的数据,且由低地址向高地址生长。

(2)满递减堆栈 FD:堆栈指针指向最后压入的数据,且由高地址向低地址生长。

(3)空递增堆栈EA:堆栈指针指向下一个将要放入数据的空位置,且由低地址向高地址生长。

(4)空递减堆栈ED:堆栈指针指向下一个将要放入数据的空位置,且由高地址向低地址生长。

10. 可以对状态寄存器操作的指令都有哪些,如何使用。 答:ARM指令集提供了2条指令,可直接控制程序状态寄存器(psr,Program State Register)。MRS指令用于将CPSR或SPSR的值传送到通用寄存器中。MSR指令与之相反,用于将通用寄存器的内容或者立即数传送到到CPSR或SPSR中。

例如: MRS R1,CPSR

BIC Rl,Rl,#0x80 ;0b0l000000

MSR CPSR_c,Rl

练习题

阅读下面程序,并回答问题。

AREA Example1,CODE,READONLY ; 声明代码段Example1

ENTRY CODE32

START LDR R0,=0x40001000 ----------------------- (1) MOV R1,#0x2000 ----------------------- (2) STR R1,[R0] ----------------------- (3) SUB R2,R1,#2 ----------------------- (4) STRB R2,[R0,#4] ----------------------- (5) B . END ; 文件结束 a) 程序中分号的作用是什么?

b) 请回答汇编语句(1)(2)(3)(4)(5)的含义。

c) 如果将汇编语句(5)STRB R2,[R0,#4]改为STRB R2,[R0,#4]!,有什么不

同? 答案

分号后面的内容是对程序的注释。

语句(1)使用LDR伪指令将地址数据0x40001000送入R0;

语句(2)将常数0x2000送入R1;

语句(3)将数据0x2000存储到地址为0x40001000的存储空间中; 语句(4)将R1中的数据减2,结果0x1FFE送到R2;

语句(5)将数据0x1FFE的低位字节数据0xFE存储到地址为0x40001004的存储

空间中。

STRB R2,[R0,#4]执行后,R0的值为0x40001000;STRB R2,[R0,#4]执行后,R0

的值为0x40001004。

第五章习题答案

1. 简述Xscale内核的特点。

答:ARM 的体系结构是基于RISC 的,XSCALE 是ARM 处理器的一种,所以XSCLAE具有RISC 的基本特性。XScale 的超流水线(SuperPipeline)技术,主频高达600MHz 以上。高效的存储器体系结构,主要包括32KB D-Cache、32KB I-Cache、2KB Mini Dcache、Fill Buffers、ending Buffers以及4.8GB/s带宽的存储总线,使处理器可以高效访问存储器。实现了基于统计分析的分支预测功能部件。XScale对ARM的乘加逻辑进行了增强,增加了8 条 DSP 指令。 2. 简述PAX270处理器的结构和主要的通信模块。

答:CPU 520M 运行能力;XSCALE 构架,并带有无线MMX 指令集;7 级流水线;32KB的指令cache , 32KB 的数据 cache, 2KB微型数据cache;外部扩充存储器控制器;256KB 内部 SRAM;丰富的串行接口: AC97 AUDIO PORT; IIS PORT;USB HOST,USB DEVICE;USB OTG;3个UART,红外通讯接口;标准IEEE JTAG,支持边界扫描;实时时钟 和系统时钟;中断控制器;LCD 控制器;SDRAM

controller, 支持4 个 BANK,最高可以运行在104M。外部SDRAM可以是2.5V 3.0V 或3.3V;支持PCMCIA and Compact Flash;SD Card / MMC Controller (with SPI mode support);2个IIC Controllers;3 个SSP Controllers;CAMERA接口;121 个多功能GPIO;4种LOWPOWER模式;4个PWM 3. 简述GPIO模块的特点。

答:PXA270处理器提供121个多功能输入/输出引脚,除了可以选择作为基本输入/输出使用外,还可以选择它的复用功能,复用功能包括串口通信接口,定时器输出,外部中断等。当多功能输入/输出引脚作为高速的通用GPIO接口时,可以用来生成和捕捉外设的输出和输入信号。每个GPIO引脚通过编程控制可实现输出或输入功能。 当GPIO引脚作为输入时,通过设置上升或下降沿检测,可作为一个中断源来使用。

4. GPIO模块中如何选择引脚的功能,举例说明。

答:通过寄存器GPDR和GAFR来选择引脚功能,在使用寄存器GAFR设置GPIO引脚功能之前,必须先通过寄存器GPDR设置引脚的方向。

例如:设定将GPIO118为SDA输出引脚,首先利用寄存器GPDR3设定 GPIO118是输出引脚,当GAFR3的Bit[13:12]=01时,将GPIO118复用为SDA输出引脚。代码如下:

嵌入式习题答案汇总

12.当处理异常时,ARM内核会做哪些处理?答:ARM处理器对异常中断的响应过程如下:(1)保存处理器当前状态、中断屏蔽位以及各条件标志位。这是通过将当前程序状态寄存器CPSR的内容保存到将要执行的异常中断对应的SPSR寄存器中实现的。各异常中断有自己的物理SPSR寄存器。(2)设置当前程序状态寄存器CPSR中相
推荐度:
点击下载文档文档为doc格式
55vej3baeb0fluh9boav3qhtz4wh9l00twg
领取福利

微信扫码领取福利

微信扫码分享