当前位置:文档之家› 嵌入式复习题(含全部答案).doc

嵌入式复习题(含全部答案).doc

嵌入式复习题(含全部答案).doc
嵌入式复习题(含全部答案).doc

嵌入式系统ii习题

一、填空题:

1、试列举三种主流的嵌入式处理器:(ARM )、( MIPS )、(PowerPC) o

2、ARM处理器共冇(37)个寄存器,其屮包拈(31个通用寄存器)和(6个状态寄存器)。

3、寄存器R13在ARM指令中(堆栈指针SP )。R14也称(程序连接寄存器LR)在程序里的作用是(程序计数器PC的备份)。当发生屮断或异常时,对应分俎寄存器分別是(R14_svc、R14_irq、R14_fiq、

R14_abt 和R14_und用來保存R15的返回值)。

4、ARM微处理器支持两种指令集:(ARM)和(Thumb)。

5、寄存器R15用作(程序计数器PC)。该寄存器在ARM状态下,

(位[1:0]为00),位[31:2]用于保存PC;在Thumb状态下,(位[0]为0),位[31:1]用于保存PC。

6、CPSR用作(状态寄存器),CPSR 可在任何运行模式卜'被访问。每一种运行模式下又都冇一个专用的物理状态寄存器,称为

(程序状态保存寄存器SPSR)。7、Thumb状态下的寄存器集是ARM 状态下寄存器集的一个子集,程序可以直接访M的通用寄存器是(R0 — R7,PC,SP,LR,CPSR)。

8、ARM指令中条件执行功能是通过(指令中添加条件码)来实现的,包含的条件码位于指令的最髙(四)位。

9、试列举五种以上常见的嵌入式操作系统:(UC/OS-TT)、(Vxworks) , (WinCE)> (Linux/ pCLinux)、(PalmOS)。

10、计算机结构中,哈佛结构和冯?诺依曼结构的主要区别是

(指令与数据分开),ARM7采用(冯?诺依曼结构),ARM9采用(哈佛结构)。

11、ARM处理器采用(Thumb指令)操作来访问SFRo

(指令的条件码)、(B标寄存器编码)和(包含第一个操作数的寄存器编码)组成。

二、名词解释:

1、ARM处理器:先进的RISC指令集处理器。广泛地使用在许多嵌入式系统没计。

2、交叉编译:在-?种计算机环境屮运行的编译程序,能编译出

在另外一种环境卜*运行的代码,这个编译过程就叫交叉编译。3、异常:异是导致程序中断运行

的-?种指令流。(是指CPU在执行

指令吋出现的错误,即不正常的情

况。异常是与当前所执行的程序有

关的,如存取数据或指令错误、计

算结果溢出等,)

4、人端格式:字数据的髙字节存

储在低地址屮,而字数据的低字节

则存放在髙地址中。

5、小端格式:低地址中存放的是

字数据的低字节,高地址存放的是

字数据的髙字节。

6、寻址方式:处理器根据指令中

给出的(地址)信息,寻找操作数

(物理地址)的方式,

7、嵌入式系统:广义上:凡是不

用于通用B的的可编程计算机没

备,就可以算是嵌入式计算机系统。

狭义上而言,嵌入式系统是指以应

用为核心,以计算机技术为基础,

软硬件可裁剪,对功能、可靠性、

成本、体积和功耗严格要求的专用

计算机系统、

8、GNU: GNU (GNU’ s Not Unix),

它的B标是建立可自由发布和可移

植的类Unix操作系统。

9、伪指令:是汇编语言稃序里的

特殊指令助记符,在汇编吋被合适

的机器指令替代、

10、伪操作:为汇编程序所用,在

源程序进行汇编吋由汇编程序处

理,只在汇编过程起作用,不参与

程序运行,

11、R TOS :实吋系统,能够对外部

事件做出及吋响应的系统、

12、微控制器:俗称“单片机",仑

将狼个计算机系统集成到一块芯片

中。

三、简答题:

1、谘从广义和狭义两个方而简述

嵌入式系统的含义。

答:嵌入式系统:Embedded System

广义上:凡是不用于通用0 的

的可编程计算机没各,就可以算

是嵌入式计算机系统。

狭义上:,嵌入式系统是指以

应用为核心,以计算机技术为基

础,软硬件可裁剪,对功能、可靠

性、成本、体积和功耗严格要求

的专用计算机系统。

2、简述采用RTSC架构的ARM微处

理器的特点。

a.采用固定长度的指令格式,指

令规幣,简单,基本寻址2~3 种。

b.使用单周期指令,便于流水多

戈樹乍。

c.人量使用寄存器,提高指令的

执行效率。

d.所有的指令都可以根据前而

的执行后,决定是否执行从而提

髙指令的执行效率。

e.可以加载/存储指令,批量传

输数据,以提高数据的传输效率。

3、选择嵌入式微处理器吋,应考

虑那些因素?

a,调齊市场上己有的CPU供应商。

b,CPU的处理速度c,技术指标。

山处理器的低功耗。e,处理器的软

件支持工具。f,处理器是否内置调

试工具。g,处理器供应商是否提供

评估板。

h,片内存储容量。

4、简述嵌入式系统的特点。

(1)软硬件一体化,集计算机技

术、微电子技术、行业技术于一

体;

(2)需要操作系统支持,代码

少,执行速度快;

(3)系统内核小、专用性强、

6、比较ARM920T 和ARM720T 的主

耍异同。

ARM9 5级流水线独立的指令

总线哈佛结构

ARM7 3级流水线数据与指令一起冯

?诺依曼结构

7、ARM9指令是几级流水线,各阶

段执行什么操作?

答:ARM9采用5级流水线。

取指:从指令Cache屮读取

指令。

译码:对指令进行译码,识别

出是对哪个寄存器进行操作并从通

用寄存器屮读取操作数。

执行:进行ALU运算和移位操

作,如果是对存储器操作的指令,

则在ALU中计算出耍访问的存储器

地址。

数据缓冲:如果是对存储器访

问的指令,用來实现数据缓冲功能

(通过数据Cache)

回写:将指令运算或操作结果

写回到目标寄存器中。

8、写出不少于12类嵌入式产品中

的常用接n。

UART 接门、SPI 接口、I2C 接口、ADC

和触摸屏接门、USB接门、以太网

接n、外存接n、LCD接口、吋钟接

口、PWM接口、中断接口、JTAG 接

口、VGA 接口、咅频接口

9、若允许FTQ、TRQ中断,CPSR 如

何设置?

FTQ: CPSR[4:0]=0B10001 IRQ:

CPSR[4:0]=0B10010 CPSR[5]=0

CPSR[6]=0 CPSR[7]=0

10、举例说明ARM的各种寻址方式。

寄存器寻址:LDR R1,R2 寄存器间接

寻址:LDR Rl,[R2] 寄存器偏移寻址:

LDR Rl,[R2,-R4, LSL#3]

立即寻址:LDR, R3, #34 多寄存寻址:

LDMTA R0, {R1,R3,R4,R5}

11、对比说明ADR、ADRL与LDR 的

R别勹联系。

I、范围的地hl)读取伪指令. 屮等

范围的地址读取伪指

读取伪指令。

基于PC相对

相对偏移的地址禮读取到寄存器

中,比ADR伪指令可以读取更人范

围的地址。

LDR伪指令功能:用于加载32位立

即数或一个地址值到指定的寄存

器。

12、(没找到)

13、简述S3C2410 Nand flash 存储

器的启动过程。

(1)完成釔位

(2)如果L1动启动模式使能,NAND

Flash存储器的前4KB自动賓制至

lj Steppings tone内部缓冲器中

(3)Stcppingstone 映射到nGCSO

⑷CPU 在Steppingstone 的4KB 闪部

缓冲器屮开始执行启动代码

14、简述Bootloader启动过程。第

一阶段

(1)、基本的硬件设备初始化

(2)、为阶段2代码准备RAM

空间

(3)、拷贝阶段2代码到RAM

空间

(4)、设置好堆栈

(5)、跳转到阶段2的C程序

入门点

第二阶段

(1)、初始化本阶段耍

使用到的硬件

(2)、检测系统内存映射(memory

map)

(3)、将kernel和根文件系统

LDR:人范围的地hl:

ADR伪指令功能:掮;

偏移的地址值或L于寄存器相对偏

移的地址值取到寄存器中。

电源AD

将基于PC相I:值或

莶于寄存器

映像从flash读到RAM空间

(4)、为kernel设置启动参数

(5)、调用内核

15、请简述嵌入式软件Bootloader 的两种工作模式。

(1)启动加载模式:启动加载模式称为“自準”(Autonomous ) 模式。即Bootloader从目标机上的某个固态存储没备上将操作系统加载到RAM中运行,整个过程并没有用户的介入启动加载模式是Bootloader 的正常工作模式,在嵌入式产品发布的吋侯,Bootloader必须工作在这种模式下。

(2)下载模式:在这种模式下,目标机上的Bootloader将通过中口连接或网络连接等通信手段从卞机下载文件。下载内容及存储:卞要是下载内核映像和根文件系统映像等。从主机下载的文件通常首先被Bootloader保存?到目标机的RAM 中,然后再被Bootloader写到B标机上的FLASH类固态存储没各中。

16、简述ARM9处理器的7种运行模式。

(1)用户模式(tksr):非特权模式,人部分任务执行在这种模式。(正常程序执行的模式)

⑵快速中断模式(fiq):当一个髙优先级(fast)中断产生吋将会进入这种模式。(高速数据传输或通道处理)

(3)外部中断換式(irq):当一个低优先级(normal)中断产生吋将会进入这种模式。(通常的中断处理) (4)管理模式Csvc):当复位或软中断指令执行吋将会进入这种模式,(供操作系统使用的一种保护模式) (5)中止模式(abt):当存取异常吋将会进入这种模式。(虚拟存储及存储保护)

(6)未定义模式(und):当执行未定义指令时会进入这种模式、 (软件仿真硬件协处理器)

(7)系统模式(sys):供需要访问系统资源的操作系统任务使用。(特权级的操作系统任务)

17、A RM9处理器的寻址方式有那些?

立即寻址、寄存器寻址、寄存器间接寻址、基址寻址、堆栈寻址、块拷贝寻址、相对寻址

18、A RM9有哪些处理器模式?哪些是特权模式?哪些是异常模式?

异常模式:除用户模式、系统模式之外的五种模式称为异常模式,特点:以各自的中断或异常方式进入,并且处理各自的中断或异常、

特权模式:除用户模式之外的

工作模式乂称为特权模式特点:应

用程序可以访问所有的系统资源,

可以任意地进行处理器模式的切换

19、A RM9的7种工作模式中用户模

式为非特权模式,与特权模式相比

有哪些权限限制?

(1)在用户模式下,应用程序不

能访M受操作系统保护的系统资

源,不能进行处理器模式的切换。

(2)在特权模式下,应用程序可

以访问所有的系统资源,可以仟意

进行处理器模式的切换。

20、S3C2410存储器组织及地址分

配。

S3C2410X的存储器管理器提供

访问外部存储器的所有控制信号:

26位地址信号、32位数据信号、8

个片选信号、以及读/写控制信号

等。

S3C2410X的存储空间分成8 组,

最人容量是1GB , bankObank5 为固定

128MB,bank6和bank7的容量可编程

改变,可以是2、4、8、16、32、64、

128MB,并且bank7的开始地址与

bank6的结束地址相连接,但是二

者的容量必须相等。

bankO可以作为引导ROM, 其数

据线宽只能是16位和32 位,复位

时由OMO、0M1引脚确定;其它存储

器的数据线宽可以是8位、16位和

32位。

S3C2410X的存储器格式,可以

编程设置为人端格式,也可以没置

为小端格式。

21、ARM7在ARM状态下有多少个寄

存器?通常堆栈指针使用哪个寄存

器?连接寄存器LR有什么功能?

答:有37个32位的寄存器其中31

个为通用寄存器;6个为状态寄存

器。

R13:寄存器R13在ARM指令屮

常用作堆栈指针SP。而往Thumb指

令集中,某些指令强制性的要求使

用R13作为堆栈指针。

R14:寄存器R14也称作子程序

链接寄存蔣(Subroutine Link

Register)或链接寄存器LR。当执行

BL子程序调用指令吋,R14中得到

R15 (程序计数器PC)的各份。其他

情况下,R14 用作通用寄存器。

22、嵌入式处理器ARM7/9TDMT 中

TDMT的基本含义是什么?

TDMT的基本含义为(对其它系

列也适用):

T:支持16位压缩指令集

Thumb,称为T变种

D:支持片上Debug, 称为

D变种

M : A嵌硬件乘法器

Multiplier,称为M变种

T:嵌入式TCE,支持片上

断点和调试,称为T变种

23、简述冯-诺伊曼、哈佛结构的

特点

(1)朽?诺曼结构特点:

必须有一个存储器;必须有

一个控制器;必须有一个运算器,

用于完成算术运算和逻辑运算:必

须有输入和输出设备,用于进行人

机通信。但是,这种指令和数据共

享同一总线的结构,读取数裾不能

在同一时刻进行,影响了数裾处理

速度的提苡。

(2)哈佛结构的特点

使用W个独立的存储器模块,

分别存储指令和数裾,每个存储模

块都不允许指令和数据并存;使用

独立的两条总线,分别作为CPU与

每个存储器之间的专用通信路径,

而这W条总线之间毫无关联u

24、CPSR各位的含义及作用。

31 30 29 28 27 …

8 7 6 5 4 3

2 1 0

N Z C V (保留)

I F T M4 M3 M2 Ml M0

1、条件码标志位(保存ALU 中的

当前操作信息)

N:正负号/大小标志位Z:零标

志位C:进位/借位/移出位V:

溢出标志位

2、控制位

I、F中断控制位一一控制允许

和禁止中断

T控制(标志)位一一反映处理器

的运行状态

M控制位一一决定了处理器的运

行模式

25、简述ARM9异常的优先级由高

到低依次为:复位、数

据中止、FIQ、IRQ、预取屮止、未

定义指令、SWI;

26、ARM处理器支持的数据类型有

哪些?

ARM微处理器支持字节(8 位)、

半字(16位)、字(32 位)3种数据类

型,可以表示有符号数和无符号数、

27、Linux的主要特点有哪些?开

放性、多用户、多任务、

良好的用户界面、设备独立性、丰

富的M络功能、可靠的安全系统、

良好的可移植性。

28、L inux常用命令。

Is—文件及子目录名列表cat 连维

显示

cd—改变工作目录(目录切换) cp—y

制文件和目录

29、L inux文件系统目录树结构是

怎样的?

Linux文件系统是一个目录树结

构,最上层是根目录,其他的所冇

目录都是从根目录出发而生成的。

Linux下,任何一个目录都uj以是

一个分区。因此,在分区时,必须

将一个分区安装在树根下面。Linux

不仅将分区安装为一个目录,而且

还将所冇的硬件设备都安装成一个

个设备文件。对设备的操作是通过

文件的操作完成的。

30、常用的Bootloader冇那些?

(1)vivi

(2)RedBoot

(3)U-Boot

31、M akefile和Make各实现什么功

能?

Makefile文件内容按照规则,

对系统中木目录下的文件(.c、. s、.

o、. h、.lib 等)根据相互关系和

要求进行组织,设定各U的编译方

法,指定所生成的目标。Makefile

是一种文本格式文件。

Make是Makefile文件的解

释器

Make对Makefile文件解释后,

生成Linux的shell命令和gcc编译

命令,接着对命令执行,最终生成

B标文件。

Makefile是工程系统编译批处

理文件。

32、ARM冇哪两种工作状态,怎样

有指令进行切换?

从ARM状态切换到Thumb状态

有两种情况ARM处理器自动切

换到Thumb状态。

(1)执行BX指令,当操作数

寄存器的位[0]为1吋,则微处理

器从ARM状态切换到Thumb 状态。此

为主动切换、

(2)当处理器处于Thumb 状

态吋发生异常(如IRQ、FTQ 等),处

理完异常后,在异常处理返M吋,

自动切换到Thumb状态。此为自动

切换、

从Thumb状态切换到ARM状态

有两种情况ARM处理器自动切

换到Thumb状态。

(1)执行BX指令,当操作数

寄存器的位[0]为0吋,则微处理

器从Thumb状态切挽到八RM 状态,

(2)当处理器在Thumb状态吋

发生异常(如IRQ、FTQ等),则处理

器从Thumb状态自动切换到ARM状

态进行异常处理

33、熟悉ARM9指令系统、伪指令、

伪操作。

34、S3C2410有那些数据通信接□ ?

LART 接口、SPT 接口、TTC 接

口、JTAG接口、以太网接口、USB 接

35、简述JTAG借口、中口和以太网

接口在一?般嵌入式系统调试中的作用

(1 ) JTAG 一般用于Bootloader等底足程序的调试,下载;

(2 )屮口是在己有Bootloadcr/BTOS的前提下用于操作系统的调试,下载;

(3)以太网口是在操作系统内核己经调试好了的前提下用于应用文件的调试,下载,

36、ARM所有的37个寄存器,分为哪两大类?

31个通用寄存器和 6 个状态寄存器。

37、在异常发生后,ARM9TDMT内核会做哪些工作?

在异常发生后,ARM7TDMT 内核会作以下工作:

1.在适当的LR中保存下一条指令的地址

2.将CPSR复制到适当的SPSR 中;

3.将CPSR模式位强制没置为与异常类型相对应的值;

4.强制PC从相关的异常向量处取指、

38、A RM9处理器有哪些堆栈方式,各堆栈的特点是什么?

(1)Full descending 满递减堆栈,堆找首部是髙地址,堆栈向低地址增长。栈指针总是指向堆栈最后一个元素(最后一个元素是最后压入的数据)。

(2)Full ascending 满递增堆栈,堆栈首部是低地址,堆栈向髙地址增长。栈指针总是指向堆栈最后一个元素(最后一个元素是最后压入的数据)。

(3)Empty descending 空递减堆栈,堆找首部是低地址,堆栈向髙地址增长。栈指针总是指向下一个将要放入数据的空位置。

(4)Empty ascending 空递增堆栈,堆找首部是髙地址,堆栈向低地址增长。栈指针总是指向下一个将要放入数据的空位置。

39、比较Nor Flash 和Nand flash 存储器的优缺点

Nor Flash:读数据速度快,

而擦写速度慢,容量小,价格高:Nand flash:读数据速度不如

Nor,但擦写速度快,容量人,

价格低。

40、gcc的幣个编译过程有哪4 个步骤?

预处理、编译、汇编、连接

四、编程题: 1、编写一个汇编程序,在ARM 程序

代码中调用Thumb子程序,并返l?l

ARM程序完成其功能。

C0DE32

BLX TSUB1

CODE16 TSUB1

BX R14

2、将存储器中0x30000000开始的

200字节的数据,传送到地址从

0x10000000开始的某接口电路的存

储区域。

START

LDR R0,=0X30000000 LDR R1,

=0X10000000 MOV R4, #0 LKM

LDRB R2, [R0],#l

STRB R2, [Rl],#l

ADD R4,R4,#1

CMP R4,#200

BLNE LKM

END

3、编写一简单ARM汇编程序段,实

现1+2+-+1000的累加运算。

MOV R0, #0

MOV Rl,#0

LKM

ADD R0, R0, #1

ADD R1,R1,RO

CMP R0,#1000

BLNE LKM

END

4、将内存中从0x30000FFF开始的

100个字数据相加,其结果存于R3、

R2屮。

LDR R0,=0X30000000

MOV R4,#0

MOV R2,#0

MOV R3,#0

LKM

LDR R5,[R0],#4

ADDS R3, R3,R5

ADDC R2, R2, #0

ADD R4, R4, #1

CMP R4,#100

BLNE LKM

END

5、编写一程序,査找存储器从

0x30000000开始的100个字屮为0的

数目,将其结果存到0x30000012 中。

START

LDR R0,=0X30000000 LDR

Rl,=0X30000012 MOV

R3,#0 MOV R4,#0 LKM

LDR R2, [R0],#4

ADD R3, R3, #1

CMP R2,#0

ADDEQ R4,R4,#1

CMP R3,#100

BLNE LKM

STR R4, [Rl]

END

6、R0和Rl屮有两个32位无符号

数,若RO>R1,则RO=RO-R1;若RO

〈R1,则R1=R1—R0;若R0 =R1,则Rl、

R0保持不变。

CMP RO,R1

SUBHS R0,R0, Rl

SUBCC R1,R1,RO

7、试编写程序,实现计兑2 + 4 14、编程实现禁止ARM处理器内

+ 6 + 8 +…+2N的值。部看门狗;

TNTT:

MOV R5, #0 LDR R0, =0x53000000

MOV R3,#0 Mov Rl,#0

MOV STR Rl, [R0]

LABLE EQU #0X2300000 END

MOV LABLE, #300

LKM 15、编程实现各工作模式的堆栈

ADD R3, R3, #2 初始化。考试题型

ADD R4, R4, R3 未定义模式:

ADD R5, R5, #1 LDR rO, = stack 填空20分;单项选择20分;名CMP R5,既ABLE @ Read the stack address 词解释12分;简答题20分;编BLNE LKM MSR cpsr c, 程题28分。

END ftMODE UND|T F BTT @

switch to undef mode

9、编程实现S3C2410 .T作模式MOV sp, rO

的切换。@ write the stack pointer

SUB rO, rO,

MRS R0, CPRS #UND STACK SIZE

BIC R0, R0, #&1E give stack space

ORR K0, K0,城12 中止模式

MSR CPSR_C R0 MSR cpsr c,

測ODE ABT|T F BIT

10、UART初始化编程。Change to abort mode

MOV sp, rO

START @ write the stack pointer

LDR K0, =UECONO SUB rO, rO,

LDR R1,=OXO #ABT STACK SIZE

STR Rl, [R0] give stack space

LDR R0, =ULCONO

LDR Rl,=0X3 快速屮断模式:

STR Rl,[R0] MSR cpsr c,

LDR R0, =UCONO 測ODE FTQ|T F BIT

LDR Rl,=0X245 change to FTQ mode

STR Rl, [R0] MOV sp, rO

LDR R0, =PCLK @ write the stack pointer

MOV Rl,[R0] SUB rO, rO,

#FTQ STACK SIZE

11、A/D初始化编程; give stack space

Void AD Tni t (unsigned char

ch) 外部屮断模式:

{ RADCDLY = 100; MSR cpsr c,

RADCTSC = 10; 測ODE TRQ|T F BIT

RADCCDN = (1?14)| change to TRQ mode

(49?6) | (ch?3) | (0?2) |MOV sp, rO

(0?l) | <0);@ write the stack pointer

} SUB rO, rO,

#IRQ STACK SIZE

12、定吋器初始化编程;give stack space

ARM 管理模式:

ADR R0, lable+1 MSR cpsr c,

BX R0 測ODE SVC|T F BIT

THUMB change to SVC mode

ThumbProg MOV sp, rO

ADR R0, lable @ write the stack pointer

BX R0 SUB rO, rO,

ARM #SVC STACK SIZE

ARM Prog give stack space

mov R4,#4 用户/系统模式:

MSR cpsr c,

13、编程实现在用户模式下打开測ODE SYS|T F BIT

IRQ中断。change to system mode

MOV sp, rO

@ write the stack point

相关主题
文本预览
相关文档 最新文档