ARM嵌入式系统试题及答案(2)

2019-06-11 16:59

3、 何谓ARM指令的条件码?默认的条件码是什么?举例说明ARM指令的条件码对指

令执行的影响。

答:条件码是按照指定条件执行的操作条件:默认条件码是AL(无条件执行) 例子:比较两值大小,并进行相应加1处理:

cmp R0,R1;ADDHI R0,R0,#1;ADDLS R1,R1,#1

4、 解释何为“满堆栈”、“空堆栈”、“递增堆栈”和“递减堆栈”? ARM指令系统中是如何支

持的?

答:满堆栈:堆栈指针指向最后压入栈的有效数据项。 空堆栈:堆栈指针指向下一个待压入数据的空位置。

递增堆栈:在向堆栈写入数据后,堆栈指针的值变大,即向高地址方向生长。 递减堆栈:在想堆栈写入数据后,堆栈指针的值变小,即向低地址方向生长。 ARM指令支持四种对战类型:满递增,空递增,满递减,空递减。

5、 请说明MOV指令与LDR加载指令的区别和用途。

答:LDR的操作数既可以来源于寄存器也可以来源于存储器,MOV的操作数能来源 于寄存器。

LDR指令从内存中读取数据放入寄存器,用于对内存变量和数据的访问、查表、

程序的跳转、外围部件的控制操作等;MOV指令将8位立即数或寄存器传送到目 标寄存器(Rd),可用于移位运算等操作。

6、 解释 B指令、BL指令与BX指令的功能差别?简述他们的应用场合。

答:B指令:是分支指令,跳转到标号指定的地址程序。 Bl指令:带连接的分支指令,跳转到指定的地址程序,同时还将程序计数器PC的值保存到LR寄存器中。 BX指令:带状态切换的分支指令,跳转到Rm指定的地址处执行程序,根据跳转地址的最低位 来切换处理器状态。 B/BL指令跳转范围限制在当前指令的+-32MB地址内。

7、 解释SWI(软中断)指令的执行过程和典型应用。

答:SWI指令用于产生软中断,从而实现先从用户模式到管理模式的变换。在切换时,CPSR寄存器内容将保存到管理模式的SPSR中,同时程序跳转到SWI异常向量入口处。 SWI用于系统功能调用。

8、 ARM汇编指令条件码如下表,分析下两段程序片断的功能,写出其等价的类C语

言功能描述: 条件助记符 EQ NE CS/HS CC/LO MI

标志 Z=1 Z=0 C=1 C=0 N=1 相等 不相等 含义 无符号数大于或等于 无符号数小于 负数 6

PL VS VC HI LS GE LT GT LE AL NV

N=0 V=1 V=0 C=1,Z=0 C=0,Z=1 N=V N!=V Z=0,N=V Z=1,N!=V 任何 任何 正数或零 溢出 没有溢出 无符号数大于 无符号数小于或等于 有符号数大于或等于 有符号数小于 有符号数大于 有符号数小于或等于 无条件执行 (指令默认条件) 从不执行(不要使用) 程序片断1:

CMP R0, R1 ADDHI R0 , R0 , #1 ADDLS R1 , R1 , #1

程序片断2:

CMP R0 , #10 CMPNE R1 , #20 ADDNE R0 , R0 , R1

答:if(R0>R1) R0++; else R1++;

if(R0!=10) if(R1!=20) R0+=R1;

9、 结合ARM7TDMI结构中的流水线结构,解释IRQ中断返回指令:

SUBS PC , R14_irq , #4 的原理

答:ARMTTDMI采用三级流水线结构,PC指向正在取值的指令,产生IRQ时,保存在R14-IRQ中的是PC的值,在返回时为保证正确性应返回到PC-4即中断前“正在译码”的指令地址。所以返回指令为:subs pc,R14-irq,#4;

四、LPC2000系列ARM硬件资源原理与使用

1、 LPC2000系列器件有几种常见的封装形式和其封装特点?

答:常见的封装有64脚封装,144脚封装

特点:功耗低,有多个32位定时器,多达9个外部中断,16K字节静态RAM,

1/128/256k字节片Flash存储器,128为宽度接口加速器,4路10位ADC或8路10 位ADC(64脚和144脚封装),46或76~112个GPIO(64脚和144脚封装)。

2、 简要说明一下LPC2000系列器件片内存储器的特点?

7

答:片内存储器分为片内Flash和片内静态RAM。片内Flash通过128位宽度的总线 与ARM内核相连,具有很高的速度,特有的存储器加速功能,可以将程序直接放 在Flash上运行。SRAM支持8位、16位和32位的读写访问。

3、 在LPC2000系列ARM芯片中,内Flash有哪几种写入方式?

答:(1)使用JTAG仿真/调试器,通过芯片的JTAG借口下载程序。 (2)使用在系统编程技术,通过UART0接口下载程序。

(3)使用在应用编程技术,在用户程序运行时对Flash进行擦出和/或编程操作, 实现数据的存储和固件的现场升级。

4、 ARM寄存器PC、CPSR、SPSR分别有什么用?

答:PC是CUP中的程序计数器,内容总是指向正在“取指”指令的地址。 CPSR是当前程序状态寄存器,用来监视和控制内部操作的。

SPSR是物理状态寄存,用于保存CPSR的当前值,从异常退出时则由它来恢复 CPSR。

5、 什么是ARM处理器的异常?ARM处理器是如何处理异常的?

答:异常:在执行正常程序过程中,当发生某种异常事件或某种外部请求时,处理器就暂停执行当前的程序,进入异常模式。 如何处理异常:

1) 保存执行状态:将CPSR复制到发生的异常模式下的SPSR中。

2) 模式切换:将CPSR模式位强制设置为与异常类型相对应的值,同时处理器进入到ARM执行模式,禁止所有IRQ中断,当进入FIQ快速中断模式时禁止FIQ中断。

3) 保存返回地址:将下一条指令的地址(被打断程序)保存在LR(异常模式下LR_excep)中。

4) 跳入异常向量表:强制设置PC的值为相应异常向量地址,跳转到异常处理程序中。

6、 什么是ARM体系结构中的异常向量表?在应用中有何作用?

答:处理器规定了异常处理程序入口的地址区间,并规定了地址的存放顺序,一般称为异常向量表。

在异常处理过程中,可以加快异常服务的响应速度。

7、 在ARM体系结构中,异常向量表中存放的是什么内容?

答:异常处理程序的程序入口地址。

8、 在ARM体系结构中,异常向量表中0x0014(保留字)单元存放的是什么内容?有何

用途?

答:保留的异常入口,早期的ARM结构中会被用到,而在ARM7中是保留的,以确保软件能与不同的ARM结构兼容。而在有些处理器芯片中,这4个字节已经有了非常特殊的用特。

8

9、 什么是ISP技术?IAP技术?在实际应用中有何实际意义?

答:ISP:在系统可编程指电路板上的空白器件可以编程写入最终用户代码而不需要从电路板上取下器件已经编程的器件也可以用ISP方式擦除或再编程。

IAP:是指在应用编程,即在程序运行中编程,就是片子提供一系列的机制(硬件/软件上的)当片子在运行程序的时候可以提供一种改变flash数据的方法。

10、 LPC2000系列器件中,许多芯片的引脚具有多种功能,应用中如何使用其特定的功

能?

答:设置寄存器PINSEL0、PINSEL1、PINSEL2为特定功能的值。

11、 简述LPC2000系列芯片的引脚设置寄存器PINSEL0、PINSEL1、PINSEL2的具体功能?

答:PINSEL0控制引脚P0.0~P0.15的连接状态,每两位控制一个引脚。 PINSEL1控制引脚P0.16~P0.31的连接状态,每两位控制一个引脚。 PINSEL2控制P1端口和P2端口。

12、 简述LPC2000系列芯片内部GPIO的功能特点?

答:(1)可以独立控制每个GPIO口的方向; (2)可以独立设置每个GPIO的输出状态; (3)所有GPIO口在复位后默认位输入状态。

13、 结合GPIO 结构原理图,简述GPIO的工作方式设置内容。

芯片引脚outinIOxDIRIOxCLRIOxSET10

答:芯片某个管脚首先经过unix功能选择,对应PINSELx寄存器选择其功能,如 果选择GPIO功能,在经过MUX2中IOxDIR寄存器对应位选择,控制管脚输入输 出方向,GPIO管脚输入时通过IOxPIN寄存器读入,输出时通过IOxSET或IOxCLR 寄存器控制输出实现对应GPIO管脚的控制。

14、 设计编程:LPC2131的P0.7引脚连接了一个蜂鸣器,编程发出等周期的滴滴声。

答: #define

Void DelayNS(int m) { int i; for(;m>0;m--) for(i = 0;i<50000;i++) }

main() {

9

PINSELxIOxPIN

}

PINSEL0 = 0x00000000; IO0DIR = 1 << 7; while (1) {

IO0SET = 1 << 7; DelayNS(50); IO0CLR = 1 << 7; DelayNS(50); }

15、 设计编程:LPC2131的P0[1:0] 两引脚分别连接了2个按键K1和K4;P0[7:6] 两引脚

#define LED1 1<<7 #define LED2 1<<8 main() {

PINSEL0=0x00000000; IO0DIR=IO0DIR & (~k1); IO0DIR=IO0DIR & (~k2); IO0DIR=IO0DIR|LED1; IO0DIR=IO0DIR|LED2;

IO0CLR=IO0CLR|LED1|LED2; While(1) {

If((IO0PIN & k1)==0) IO0SET=LED1; else IO0SET=LED1; If((IO0PIN & k2)==0) IO0SET=LED2; else IO0SET=LED2; } }

分别连接了2个指示灯LED1和LED2;请编制驱动程序,使Kx 按键时,LEDx 灯亮。 答:

#define k1 1<<0 #define k2 1<<1

16、 名词解释:中断、中断源、中断优先级、中断屏蔽、中断向量、中断响应、中断控

制。

答:中断:CPU在执行一个程序时,对系统发生的某个事件(程序自身或外界的原因)作出的一种反应:CPU暂停正在执行的程序,保留现场后自动转去处理相应的事件,处理完该事件后,到适当的时候返回断点,继续完成被打断的程序。 中断源:把引起中断的原因,或者能够发出中断请求信号的来源统称为中断源。

10


ARM嵌入式系统试题及答案(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:赵国大事年表

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: