老师修改过得嵌入式系统复习提纲 1.docx

上传人:b****5 文档编号:8241367 上传时间:2023-01-30 格式:DOCX 页数:20 大小:57.97KB
下载 相关 举报
老师修改过得嵌入式系统复习提纲 1.docx_第1页
第1页 / 共20页
老师修改过得嵌入式系统复习提纲 1.docx_第2页
第2页 / 共20页
老师修改过得嵌入式系统复习提纲 1.docx_第3页
第3页 / 共20页
老师修改过得嵌入式系统复习提纲 1.docx_第4页
第4页 / 共20页
老师修改过得嵌入式系统复习提纲 1.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

老师修改过得嵌入式系统复习提纲 1.docx

《老师修改过得嵌入式系统复习提纲 1.docx》由会员分享,可在线阅读,更多相关《老师修改过得嵌入式系统复习提纲 1.docx(20页珍藏版)》请在冰豆网上搜索。

老师修改过得嵌入式系统复习提纲 1.docx

老师修改过得嵌入式系统复习提纲1

2011年《嵌入式系统原理及应用考试提纲》

一、填空题

1.JTAG是英文JointTestActionGroup-联合测试行为组织的缩写,该组织成立于1985年,是由几家主要的电子制造商发起制订的PCB和IC测试标准。

该标准规定了进行边界扫描所需要的硬件和软件。

JTAG主要应用于电路的边界扫描测试和可编程芯片的在系统编程。

2.ARM三级流水结构中,三个流水级执行的操作分别是指令获取、指令译码和指令执行。

2.在现代电子系统应用中,Philips开发了一种用于内部IC控制的、简单的双向两线串行总线I2C――IntelIC总线。

作为一个专用的控制总线,I2C已经成为世界性的工业标准。

3.ARM微处理器有七种工作模式,其中,正常应用程序执行的模式是用户模式

3.每个I2C器件都有一个惟一的地址,I2C是一个多主总线,即它可以由多个连接在总线上的器件控制。

I2C总线低速模式传输速率为100kb/s,采用7位寻址。

I2C总线快速模式传输速率为400kb/s和10位寻址。

I2C总线高速模式,其速度可达3.4Mb/s。

使得I2C总线能够支持现有的以及将来的高速串行传输应用,例如EEPROM和Flash存储器。

4.串行外围设备接口SPI――SerialPeripheralInterface总线技术是Motorola公司推出的一种同步串行接口。

SPI总线是一种三线同步总线,总线上可以连接多个可作为主机的MCU。

但在任一瞬间只允许有一个MCU作为主机。

总线的时钟线SCK由主机控制,另外两根分别是:

主机输入/从机输出线MISO和主机输出/从机输入线MOSI。

SPI是全双工的,即主机在发送的同时也在接收数据,传送的速率由主机编程决定。

5.CAN,全称为ControllerAreaNetwork,即控制器局域网,是应用最广泛的现场总线之一。

作为汽车环境中的微控制器总线,可形成汽车电子控制网络。

例如,发动机管理系统、变速箱控制器、仪表装备和电子主干系统中,均嵌入CAN控制装置。

CAN是一种多主方式的串行通信总线,有高的速率,高抗电磁干扰性,而且能够检测出产生的任何错误。

当信号传输距离达到10km时,CAN仍可提供高达50kb/s的数据传输速率。

9.ARM处理器的特点是:

采用RISC架构:

体积小、低功耗、低成本、高性能,支持Thumb/ARM双指令集,大量使用寄存器,大多数数据操作都在寄存器中完成。

寻址方式灵活简单,执行效率高。

指令长度固定。

为32BIT位

10.ARM7系列微处理器为低功耗的32位RISC处理器,具有如下特点:

具有嵌入式ICE-RT逻辑,调试开发方便。

极低的功耗,适合对功耗要求较高的应用,如便携式产品,能够提供0.9MIPS/MHz的三级流水线结构。

代码密度高,对操作系统的支持广泛,

主频最高可达130MIPS,高速的运算处理能力使其能胜任绝大多数的复杂应用。

ARM7系列微处理器包括如下几种类型的核:

ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。

其中,ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,

11.ARM微处理器支持这4种类型的堆栈工作方式。

它们是满递增堆栈:

堆栈指针指向最后压入的数据,且由低地址向高地址生成;满递减堆栈:

堆栈指针指向最后压入的数据,且由高地址向低地址生成;空递增堆栈:

堆栈指针指向下一个将要放入数据的空位置,且由低地址向高地址生成;空递减堆栈:

堆栈指针指向下一个将要放入数据的空位置,且由高地址向低地址生成。

12.所谓ARM寻址方式就是ARM处理器根据指令中给出的地址信息来寻找物理地址的方式。

二、简答题

1.与通用型计算机相比,嵌入式系统有那些特点。

嵌入式系统以应用为中心,以计算机技术为基础,软硬件可裁剪,是对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。

嵌入式系统的硬件一般包括处理器、存储器、外设器件和电源等。

软件一般由移植代码、操作系统、应用软件等构成。

1.什么是地址重映射。

为什么要进行地址重映射

答:

地址映射就是为每一个存储单元分配特定的逻辑地址空间,从而使嵌入式系统中的存储空间与逻辑地址空间一一对应,地址重映射就是重新改变存储空间的逻辑地址。

为了减少异常处理过程中的CPU等待时间,ARM单片机引入了地址重映射的概念,地址重映射就是在ARM单片机启动后,将低速非易失性存储器中的异常向量复制到高速存储器中,然后执行地址重映射指令,当系统发生异常时,CPU将从高速存储器中读取异常向量。

2.根据嵌入式系统的复杂程度,嵌入式系统可以分为哪四类。

(1)嵌入式微处理器,EmbeddedMicroprocessorUnit,简称EMPU。

在应用中,将微处理器装配在专门设计的电路板上,只保留与嵌入式应用有关的功能。

(2)嵌入式微控制器,MicrocontrollerUnit,简称MCU,又称单片机,顾名思义,就是将整个计算机系统集成到一块芯片中。

(3)嵌入式DSP处理器,EmbeddedDigitalSignalProcessor,简称EDSP,DSP处理器对系统结构和指令进行了特殊设计,使其适合于执行数字滤波、FFT和谱分析等DSP算法,编译效率较高,指令执行速度也较高。

(4)嵌入式片上系统,SystemOnChip,简称SOC。

除个别无法集成的器件以外,整个嵌入式系统大部分均可集成到一块或几块芯片中去,应用系统电路板将变得很简洁,对于减小体积和功耗、提高可靠性非常有利。

3.ARM存储系统可以使用小端存储或者大端存储两种方法,写出下两个图的存储格式,分别指出它们是大端存储还是小端存储格式。

大端存储格式

小端存储格式

1)模式中有多少通用寄存器

2)CPSR的作用是什么

3)Z的作用是什么

4)程序计数器保存在何处

8.请简述FLASH存储器的特点。

答:

1、区块结构:

在物理上分成若干个区块,区块之间相互独立。

2、先擦后写:

Flash的写操作只能将数据位从1写成0,不能从0写成1,所以在对存储器进行写入之前必须先执行擦除操作,将预写入的数据位初始化为1。

擦除操作的最小单位是一个区块,而不是单个字节。

3、操作指令:

执行写操作,它必须输入一串特殊指令(NORFlash)或者完成一段时序(NANDFlash)才能将数据写入。

4、位反转:

由于Flash的固有特性,在读写过程中偶尔会产生一位或几位的数据错误。

位反转无法避免,只能通过其他手段对结果进行事后处理。

5、坏块:

区块一旦损坏,将无法进行修复。

对已损坏的区块操作其结果不可预测。

8.简单说明ARM7TDMI的含义。

答:

T:

支持16为压缩指令集Thumb。

D:

支持片上Debug。

M:

内嵌硬件乘法器(Multiplier)。

I:

嵌入式ICE,支持片上断点和调试点

9.简单叙述CPSR寄存器和(SPSR寄存器的作用,以及CPSR各状态位的作用是什么。

ARM体系结构包含一个当前程序状态寄存器(CPSR)和5个备份的程序状态寄存器(SPSRs)。

备份的程序状态寄存器用来进行异常处理,其功能如下:

保存ALU中的当前操作信息。

控制允许和禁止中断。

设置处理器的运行模式。

程序状态寄存器的每一位的安排如下图所示。

程序状态寄存器格式

10.简述CPSR寄存器的各条件码标志位作用是什么。

CPSR中的N、Z、C、V均为条件码标志位。

它们的内容可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行。

条件码标志位各位的具体含义如下表所示。

条件码标志位的具体含义

标志位

含义

N

当用两个补码表示的带符号数进行运算时,N=1表示运算的结果为负数;N=0表示运算的结果为正数或零

Z

Z=1表示运算的结果为零;Z=0表示运算的结果为非零

C

可以有4种方法设置C的值:

●加法运算(包括比较指令CMN):

当运算结果产生了进位时(无符号数溢出),C=1,否则C=0

●减法运算(包括比较指令CMP):

当运算时产生了借位(无符号数溢出),C=1,否则C=0

●对于包含移位操作的非加/减运算指令,C为移出值的最后一位

●对于其他的非加/减运算指令,C的值通常不改变

V

可以有两种方法设置V的值:

● 对于加/减法运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,V=1表示符号位溢出

● 对于其他的非加/减运算指令,V的值通常不改变

Q

● 在ARMv5及以上版本的E系列处理器中,用Q标志位指示增强的DSP运算指令是否发生了溢出

● 在其他版本的处理器中,Q标志位无定义

11.简述CPSR寄存器控制位的作用

CPSR寄存器的低8位(包括I、F、T和M[4:

0])称为控制位,当发生异常时这些位可以被改变。

如果处理器运行特权模式,这些位也可以由程序修改。

(1)中断禁止位I、F:

I=1禁止IRQ中断;F=1禁止FIQ中断。

(2)T标志位:

该位反映处理器的运行状态。

当该位为1时,程序运行于Thumb状态,当该位为0时,表示运行于ARM状态。

(3)运行模式位M[4:

0]:

M0、M1、M2、M3、M4是模式位。

这些位决定了处理器的运行模式。

具体含义如下表所示。

运行模式位M[4:

0]的具体含义

M[4:

0]

处理器模式

0b10000

用户模式

0b10001

FIQ模式

0b10010

IRQ模式

0b10011

管理模式

0b10111

中止模式

0b11011

未定义模式

0b11111

系统模式

由上表可知,并不是所有的运行模式位的组合都是有效的,其他的组合结果会导致处理器进入一个不可恢复的状态。

12.简述,什么是ARM异常

在ARM应用系统中,当正常的程序执行流程发生暂时的停止时,称之为异常(Exceptions),例如,一个ARM的外部的中断请求就是一个典型的异常。

在处理异常之前,当前处理器的状态必须保留,这样当异常处理完成之后,当前程序可以继续执行。

处理器允许多个异常同时发生,它们将会按固定的优先级进行处理。

ARM体系结构中的异常,与51单片机体系结构的中断有很大的相似之处,但异常与中断的概念并不完全等同。

13.ARM体系结构所支持的异常类型有几种?

,各种异常的含义是什么?

ARM体系结构所支持的异常及具体含义如下表所示。

ARM体系结构所支持的异常类型

异常类型

具体含义

复位

当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行

未定义指令

当ARM处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。

可使用该异常机制进行软件仿真

软件中断

该异常由执行SWI指令产生,可用于用户模式下的程序调用特权操作指令。

可使用该异常机制实现系统功能调用

指令预取中止

若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出中止信号,但当预取的指令被执行时,才会产生指令预取中止异常

数据中止

若处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常

IRQ(外部中断请求)

当处理器的外部中断请求引脚有效,且CPSR中的I位为0时,产生IRQ异常。

系统的外设可通过该异常请求中断服务

FIQ(快速中断请求)

当处理器的快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常

14.试述ARM处理器对异常的响应过程。

当一个异常出现以后,ARM微处理器会执行以下几步操作。

(1)将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。

(2)将CPSR复制到相应的SPSR中。

(3)根据异常类型,强制设置CPSR的运行模式位。

(4)强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。

还可以设置中断禁止位,以禁止中断发生。

如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM状态。

ARM微处理器对异常的响应过程可用如下的伪码进行描述:

R14_=ReturnLink

SPSR_=CPSR

CPSR[4:

0]=ExceptionModeNumber

CPSR[5]=0;当运行于ARM工作状态时

If==ResetorFIQthen   

              ;当响应FIQ异常时,禁止新的FIQ异常

CPSR[6]=1

CPSR[7]=1

PC=ExceptionVectorAddress

15.简述ARM处理器异常返回的步骤?

异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回。

(1)将连接寄存器LR的值减去相应的偏移量后送到PC中。

(2)将SPSR复制回CPSR中。

(3)若在进入异常处理时设置了中断禁止位,要在此清除。

可以认为应用程序总是从复位异常处理程序开始执行的,因此复位异常处理程序不需要返回。

16.请写出异常向量表

下表所示为异常向量(ExceptionVectors)地址表。

异常向量表

地址

异常

进入模式

0x0000,0000

复位

管理模式

0x0000,0004

未定义指令

未定义模式

0x0000,0008

软件中断

管理模式

0x0000,000C

中止(预取指令)

中止模式

0x0000,0010

中止(数据)

中止模式

0x0000,0014

保留

保留

0x0000,0018

IRQ

IRQ

0x0000,001C

FIQ

FIQ

17.请写出ARM的异常优先级。

当多个异常同时发生时,系统根据固定的优先级决定异常的处理次序。

异常优先级(ExceptionPriorities)由高到低的排列次序如下表所示。

异常优先级表

优先级

异常

1(最高)

复位

2

数据中止

3

FIQ

4

IRQ

5

预取指令中止

6(最低)

未定义指令、SWI

18.在ARM应用程序中,是如何进行异常处理的。

当系统运行时,异常可能会随时发生,为保证在ARM处理器发生异常时不至于处于未知状态,在应用程序的设计中,首先要进行异常处理,异常处理的方式是在异常向量表中的特定位置放置一条跳转指令,跳转到异常处理程序,当ARM处理器发生异常时,程序计数器PC会被强制设置为对应的异常向量,从而跳转到异常处理程序,当异常处理完成以后,返回到主程序继续执行。

三、ARM语法题

1.简单叙述B、BL、BLX、BX各调转指令的使用方法。

●B跳转指令。

●BL带返回的跳转指令。

●BLX带返回和状态切换的跳转指令。

●BX带状态切换的跳转指令。

2.批量数据加载指令格式如下:

LDM{}{}{!

},{^};

指令中type字段有以下几种,分别表述其含义。

IA每次传送后地址加1。

IB每次传送前地址加1。

DA每次传送后地址减1。

DB每次传送前地址减1。

FD满递减堆栈。

ED空递减堆栈。

FA满递增堆栈。

EA空递增堆栈。

3.下列ARM的条件码含义是什么。

1)EQZ=1相等

2)NEZ=0不相等

3)MIN=1负数

4)VSV=1溢出

5)GEN=V带符号数大于或等于

6)LTN!

=V带符号数小于

4.采用多寄存器寻址方式,可以用一条指令完成传送最多16个通用寄存器的值。

请解释以下指令的含义:

LDMIAR0,{R1,R2,R3,R4};

该指令的后缀IA表示在每次执行完加载/存储操作后,R0按字长度增加,因此,指令可将R0所指的连续存储单元的值传送到R1~R4。

指令执行过程如下:

R1←[R0]

R2←[R0+4]

R3←[R0+8]

R4←[R0+12]

5.寄存器间接寻址就是以寄存器中的值作为操作数的地址,而操作数本身存放在存储器中。

解释以下指令:

LDRR0,[R1];R0←[R1]

STRR0,[R1];[R1]←R0

第一条指令将以R1的值为地址的存储器中的数据传送到R0中。

第二条指令将R0的值传送到以R1的值为地址的存储器中。

6.基址变址寻址就是将寄存器(该寄存器一般称作基址寄存器)的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址。

变址寻址方式常用于访问某基地址附近的地址单元。

解释以下几条指令的用法:

LDRR0,[R1,#4];R0←[R1+4]

LDRR0,[R1,#4]!

;R0←[R1+4]、R1←R1+4

LDRR0,[R1],#4;R0←[R1]、R1←R1+4

LDRR0,[R1,R2];R0←[R1+R2]

第一条指令中,将寄存器R1的内容加上4形成操作数的有效地址,从而取得操作数存入寄存器R0中。

第二条指令中,将寄存器R1的内容加上4形成操作数的有效地址,从而取得操作数存入寄存器R0中,然后,R1的内容自增4个字节。

第三条指令中,以寄存器R1的内容作为操作数的有效地址,从而取得操作数存入寄存器R0中,然后,R1的内容自增4个字节。

第四条指令中,将寄存器R1的内容加上寄存器R2的内容形成操作数的有效地址,从而取得操作数存入寄存器R0中。

7.MVN与MOV指令不同之处是在传送之前按位被取反了,即把一个被取反的值传送到目的寄存器中。

其中S定指令的操作是否影响CPSR中条件标志位的值,当没有S时指令不更新CPSR中条件标志位的值。

解释如下指令示例的含义:

MVNR0,#0;

解释:

将立即数0取反传送到寄存器R0中,这里执行后R0=-1。

8.CMN指令用于把一个寄存器的内容和另一个寄存器的内容或立即数取反后进行比较,同时更新CPSR中条件标志位的值。

该指令实际完成操作数1和操作数2相加,并根据结果更改条件标志位。

请解释如下指令:

CMNR1,#100;

解释:

将寄存器R1的值与立即数100相加,并根据结果设置CPSR的标志位

9.RSB指令称为逆向减法指令,用于把操作数2减去操作数1,并将结果存放到目的寄存器中。

操作数1应是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即数。

该指令可用于有符号数或无符号数的减法运算。

请解释如下指令:

RSBR0,R1,#256;R0=256–R1

RSBR0,R2,R3,LSL#1;R0=(R3<<1)-R2

10.EOR指令用于在两个操作数上进行逻辑异或运算,并把结果放置到目的寄存器中。

操作数1应是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即数。

该指令常用于反转操作数1的某些位。

解释如下指令:

EORR0,R0,#3;

解释:

该指令反转R0的0、1位,其余位保持不变

11.BIC指令用于清除操作数1的某些位,并把结果放置到目的寄存器中。

操作数1应是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即数。

操作数2为32位的掩码,如果在掩码中设置了某一位,则清除这一位。

未设置的掩码位保持不变。

请解释如下指令:

BICR0,R0,#1011;

解释:

该指令清除R0中的位0、1、和3,其余的位保持不变

12.MLA指令完成将操作数1与操作数2的乘法运算,再将乘积加上操作数3,并把结果放置到目的寄存器中,同时可以根据运算结果设置CPSR中相应的条件标志位。

其中,操作数1和操作数2均为32位的有符号数或无符号数。

请解释指令如下:

MLAR0,R1,R2,R3;R0=R1×R2+R3

13.MRS指令用于将程序状态寄存器的内容传送到通用寄存器中。

该指令一般用在以下两种情况。

请解释如下指令示例:

MRSR0,CPSR;

解释:

传送CPSR的内容到R0

14.MSR指令用于将操作数的内容传送到程序状态寄存器的特定域中。

其中,操作数可以为通用寄存器或立即数。

<域>用于设置程序状态寄存器中需要操作的位,32位的程序状态寄存器可分为4个域:

●位[31:

24]为条件标志位域,用f表示。

●位[23:

16]为状态位域,用s表示。

●位[15:

8]为扩展位域,用x表示。

●位[7:

0]为控制位域,用c表示。

该指令通常用于恢复或改变程序状态寄存器的内容,在使用时,一般要在MSR指令中指明将要操作的域。

解释如下指令:

MSRCPSR,R0;

解释:

传送R0的内容到CPSR

MSRCPSR_c,R0;

解释:

传送R0的内容到CPSR,但仅仅修改CPSR中的控制位域

15.STR指令用于从源寄存器中将一个32位的字数据传送到存储器中。

该指令在程序设计中比较常用,且寻址方式灵活多样。

解释如下指令:

STRR0,[R1],#8;

解释:

将R0中的字数据写入以R1为地址的存储器中,并将新地址R1+8写入R1

STRR0,[R1,#8];

解释:

将R0中的字数据写入以R1+8为地址的存储器中

16.LSR可完成对通用寄存器中的内容进行右移的操作,按操作数所指定的数量向右移位,左端用零来填充。

其中,操作数可以是通用寄存器,也可以是立即数(0~31)。

解释如下指令示例:

MOVR0,R1,LSR#2;

解释:

将R1中的内容右移两位后传送到R0中,左端用零来填充

四:

ARM编程题

1.用STMFD/LDMFD,MUL指令编写一个整数乘方的子程序,然后使用BL指令调用子程序计算Xn的值。

原理:

Xn=X*X*………*X,其中相乘的X个数为n个,先将X的值装入R0和R1中,使用R2作计数器,循环次数n-1次R0=R0*R1,运算结果保存在R0中:

编程如下:

;MAINROUTINE

XEQU9

nEQU8

AREAMyPro,CODE,READONLY

ENTRY

CODE32

START

LDRSP,=0x40003F00

LDRR0,=X

LDRR1,=n

BLPOW

HALTBHALT

 

;POWSUBROUTINE

;INPUTR0,R1

;OUTPUTR0

POW

STMFDSP!

{R1-R12,LR}

MOVSR2,R1

MOVEQR0,#1

BEQPOW_END

MOVR1,R0

SUBR2,R2,#1

POW_CONTI

BLDO_MUL

SUBSR2,R2,#1

BNEPOW_CONTI

POW_END

LDMFDSP!

{R1-R12,LR}

;DO_MULSUBROUTINE

;INPUTR0,R1

;OUTPUTR0

DO_MUL

MULR0,R1,R0

MOVPC,LR

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

当前位置:首页 > 外语学习 > 法语学习

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

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