- 相关推荐
2016年嵌入式系统复习试题及答案
一、填空题:
1、试列举三种主流的嵌入式处理器:( ARM )、( MIPS )、(PowerPC)。
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状态下寄存器集的一个子集,程序可以直接访问的通用寄存器是(R0—R7,PC,SP,LR,CPSR)。
8、ARM指令中条件执行功能是通过( 指令中添加条件码)来实现的,包含的条件码位于指令的最高(四)位。
9、试列举五种以上常见的嵌入式操作系统:(μC/OS-II)、(Vxworks)、(WinCE)、(Linux/μCLinux)、(PalmOS)。
10、计算机结构中,哈佛结构和冯?诺依曼结构的主要区别是(指令与数据分开),ARM7采用(冯?诺依曼结构),ARM9采用(哈佛结构)。
11、ARM处理器采用(Thumb指令)操作来访问SFR。
12、在ARM汇编语言程序设计中,语句一般是由(指令操作码)、(指令的条件码)、(目标寄存器编码)和(包含第一个操作数的寄存器编码)组成。
二、名词解释:
ARM处理器:Advanced RISC Machine。先进的RISC指令集处理器。
交叉编译:在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,这个编译过程就叫交叉编译。
异常:是指CPU在执行指令时出现的错误,即不正常的情况。异常是与当前所执行的程序有关的。如存取数据或指令错误、计算结果溢出等。
大端格式:字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。
小端格式:低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。
寻址方式:处理器根据指令中给出的(地址)信息,寻找操作数(物理地址)的方式。
嵌入式系统:广义上:凡是不用于通用目的的可编程计算机设备,就可以算是嵌入式计算机系统。狭义上而言,嵌入式系统是指以应用为核心,以计算机技术为基础,软硬件可裁剪,对功能、可靠性、成本、体积和功耗严格要求的专用计算机系统。
GNU:GNU(GNU’s Not Unix),它的目标是建立可自由发布和可移植的类Unix操作系统。
伪指令:是汇编语言程序里的特殊指令助记符,在汇编时被合适的机器指令替代。
伪操作:为汇编程序所用,在源程序进行汇编时由汇编程序处理,只在汇编过程起作用,不参与程序运行。
RTOS :实时系统,能够对外部事件做出及时响应的系统。
三、简答题:
1、 简述采用RISC架构的ARM微处理器的特点。
a.采用固定长度的指令格式,指令规整,简单,基本寻址2~3种
b.使用单周期指令,便于流水线操作
c.大量使用寄存器,提高指令的执行效率
d.所有的指令都可以根据前面的执行后,决定是否执行从而提高指令的执行效率
e.可以加载/存储指令,批量传输数据,以提高数据的传输效率
2、 选择嵌入式微处理器时,应考虑那些因素?
调查市场上已有的CPU供应商。
CPU的处理速度
技术指标。
处理器的低功耗。
处理器的软件支持工具。
处理器是否内置调试工具。
处理器供应商是否提供评估板
片内存储容量
3、 若允许FIQ、IRQ中断,CPSR如何设置?
FIQ: CPSR[4:0]=0B10001 IRQ: CPSR[4:0]=0B10010
CPSR[5]=0
CPSR[6]=0
CPSR[7]=0
4、 举例说明ARM的各种寻址方式。
寄存器寻址:LDR R1,R2
寄存器间接寻址:LDR R1,[R2]
寄存器偏移寻址:LDR R1,[R2,-R4,LSL#3]
立即寻址:LDR,R3,#34
多寄存寻址:LDMIA R0,{R1,R3,R4,R5}
5、 对比说明ADR、ADRL与LDR的区别与联系。
ADR:小范围的地址读取伪指令。
ADRL:中等范围的地址读取伪指令。
LDR:大范围的地址读取伪指令。
ADR伪指令功能:将基于PC相对偏移的地址值或基于寄存器相对偏移的地址值读取到寄存器中。
ADRL伪指令功能:将基于PC相对偏移的地址值或基于寄存器相对偏移的地址值读取到寄存器中,比ADR伪指令可以读取更大范围的地址。
LDR伪指令功能:用于加载32位立即数或一个地址值到指定的寄存器。
6、 比较ARM920T和ARM720T的主要异同。
ARM9 5级流水线 独立的指令总线哈佛结构
ARM7 3级流水线 数据与指令一起 冯·诺依曼结构
8、 简述S3C2410 Nand flash存储器的启动过程。
(1)完成复位
(2)如果自动启动模式使能,NAND Flash存储器的前4KB自动复制到Steppingstone内部缓冲器中
(3)Steppingstone映射到nGCS0
(4)CPU在Steppingstone的4KB内部缓冲器中开始执行启动代码
9、 请从广义和狭义两个方面简述嵌入式系统的含义。
答案:嵌入式系统:Embedded System
广义上:凡是不用于通用目的的可编程计算机设备,就可以算是嵌入式计算机系统。
狭义上而言,嵌入式系统是指以应用为核心,以计算机技术为基础,软硬件可裁剪,对功能、可靠性、成本、体积和功耗严格要求的专用计算机系统。
10、简述Bootloader启动过程。
1、第一阶段
(1)、基本的硬件设备初始化
(2)、为阶段2代码准备RAM空间
(3)、拷贝阶段2代码到RAM空间
(4)、设置好堆栈
(5)、跳转到阶段2的C程序入口点
2、第二阶段
(1)、初始化本阶段要使用到的硬件
(2)、检测系统内存映射(memory map)
(3)、将kernel和根文件系统映像从flash读到RAM空间
(4)、为kernel设置启动参数
(5)、调用内核
12、ARM7指令是几级流水线,各阶级执行什么操作?
ARM7的三级流水线
1取指:从程序存储器中取指令,放入指令流水线。(占用存储器访问操作)
2译码:指令译码。(占用译码逻辑)
3执行:执行指令/读写REG。(占用ALU及数据路径)
13、请简述嵌入式软件Bootloader的两种工作模式。
启动加载模式:启动加载模式称为“自举”(Autonomous)模式。即Bootloader从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,整个过程并没有用户的介入。启动加载模式是 Bootloader的正常工作模式,在嵌入式产品发布的时侯,Bootloader必须工作在这种模式下。
下载模式:在这种模式下,目标机上的Bootloader将通过串口连接或网络连接等通信手段从主机下载文件。下载内容及存储:主要是下载内核映像和根文件系统映像等。从主机下载的文件通常首先被Bootloader保存到目标机的RAM中,然后再被 Bootloader写到目标机上的FLASH 类固态存储设备中。
14、写出不少于12类嵌入式产品中的常用接口。
UART接口、SPI接口、I2C接口、ADC和触摸屏接口、USB接口、以太网接口、外存接口、LCD接口、时钟接口、PWM接口、中断接口、JTAG接口、VGA接口、音频接口
15、简述ARM9处理器的7种运行模式。
1、用户模式(usr):非特权模式,大部分任务执行在这种模式。——正常程序执行的模式
2、快速中断模式(fiq):当一个高优先级(fast)中断产生时将会进入这种模式。——高速数据传输或通道处理
3、外部中断模式(irq):当一个低优先级(normal)中断产生时将会进入这种模式。——通常的中断处理
4、管理模式(svc):当复位或软中断指令执行时将会进入这种模式。——供操作系统使用的一种保护模式
5、中止模式(abt):当存取异常时将会进入这种模式。——虚拟存储及存储保护
6、未定义模式(und):当执行未定义指令时会进入这种模式——软件仿真硬件协处理器
7、系统模式(sys):供需要访问系统资源的操作系统任务使用——特权级的操作系统任务
16、ARM9处理器的寻址方式有那些?
立即寻址、寄存器寻址、寄存器间接寻址、基址寻址、堆栈寻址 、块拷贝寻址、相对寻址
17、ARM9有哪些处理器模式?哪些是特权模式?哪些是异常模式?
异常模式:除用户模式、系统模式之外的五种模式称为异常模式。特点:以各自的中断或异常方式进入,并且处理各自的中断或异常。
特权模式:除用户模式之外的工作模式又称为特权模式 特点:应用程序可以访问所有的系统资源,可以任意地进行处理器模式的切换
18、ARM7在ARM状态下有多少个寄存器?通常堆栈指针使用哪个寄存器?连接寄存器LR有什么功能?
有37个32位的寄存器其中31个为通用寄存器;6个为状态寄存器。
R13:寄存器R13在ARM指令中常用作堆栈指针SP。而在Thumb指令集中,某些指令强制性的要求使用R13作为堆栈指针。
R14:寄存器R14也称作子程序链接寄存器(Subroutine Link Register)或链接寄存器LR。当执行BL子程序调用指令时,R14中得到R15(程序计数器PC)的备份。其他情况下,R14用作通用寄存器。
19、见28
20、Linux的主要特点有那些?
开放性、多用户、多任务、良好的用户界面、设备独立性、丰富的网络功能、可靠的安全系统、良好的可移植性。
21、常用的Bootloader有那些?
1、vivi
2、RedBoot
3、U-Boot
22、Makefile和Make各实现什么功能?
Makefile文件内容 按照规则,对系统中本目录下的文件(.c、.s、.o、.h、.lib等)根据相互关系和要求进行组织,设定各自的编译方法,指定所生成的目标。 Makefile是一种文本格式文件。
Make是Makefile文件的解释器
Make对Makefile文件解释后,生成Linux的shell命令和gcc编译命令,接着对命令执行,最终生成目标文件。
Makefile是工程系统编译批处理文件。
23、Linux文件系统目录树结构是怎样的?
Linux文件系统是一个目录树结构,最上层是根目录,其他的所有目录都是从根目录出发而生成的。Linux下,任何一个目录都可以是一个分区。因此,在分区时,必须将一个分区安装在树根下面。Linux不仅将分区安装为一个目录,而且还将所有的硬件设备都安装成一个个设备文件。对设备的操作是通过文件的操作完成的。
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 M1 M0
1、条件码标志位(保存ALU中的当前操作信息)
N:正负号/大小 标志位
Z:零标志位
C:进位/借位/移出位
V:溢出标志位
2、控制位
I、F中断控制位——控制允许和禁止中断
T控制(标志)位——反映处理器的运行状态
M控制位——决定了处理器的运行模式
25、S3C2410存储器组织及地址分配。
S3C2410X的存储器管理器提供访问外部存储器的所有控制信号:26位地址信号、32位数据信号、8个片选信号、以及读/写控制信号等。
S3C2410X的存储空间分成8组,最大容量是1GB,bank0---bank5为固定128MB,bank6和bank7的容量可编程改变,可以是2、4、8、16、32、64、128MB,并且bank7的开始地址与bank6的结束地址相连接,但是二者的容量必须相等。
bank0可以作为引导ROM,其数据线宽只能是16位和32位,复位时由OM0、OM1引脚确定;其它存储器的数据线宽可以是8位、16位和32位。
S3C2410X的存储器格式,可以编程设置为大端格式,也可以设置为小端格式。
26、ARM有哪两种工作状态,怎样有指令进行切换?
从ARM状态切换到Thumb状态
有两种情况ARM处理器自动切换到Thumb状态。
(1)执行BX指令,当操作数寄存器的位[0]为1时,则微处理器从ARM状态切换到Thumb状态。此为主动切换。
(2)当处理器处于Thumb状态时发生异常(如IRQ、FIQ等),处理完异常后,在异常处理返回时,自动切换到Thumb状态。此为自动切换。
从Thumb状态切换到ARM状态
有两种情况ARM处理器自动切换到Thumb状态。
(1)执行BX指令,当操作数寄存器的位[0]为0时,则微处理器从Thumb状态切换到ARM状态。
(2)当处理器在Thumb状态时发生异常(如IRQ、FIQ等),则处理器从Thumb状态自动切换到ARM状态进行异常处理
27、Linux常用命令。
ls---文件及子目录名列表
cat---连续显示
cd---改变工作目录(目录切换)
cp---复制文件和目录
28、嵌入式处理器ARM7/9TDMI中TDMI的基本含义是什么?
ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。TDMI的基本含义为(对其它系列也适用):
T: 支持16位压缩指令集Thumb,称为T变种
D: 支持片上Debug,称为D变种
M:内嵌硬件乘法器 Multiplier,称为M变种
I: 嵌入式ICE,支持片上断点和调试,称为I变种
29、S3C2410有那些数据通信接口?
UART接口 、SPI接口、IIC接口、JTAG接口、以太网接口、USB接口
四、编程题:
1、编写一个汇编程序,在ARM程序代码中调用Thumb子程序,并返回ARM程序完成其功能。
CODE32
--------
BLX TSUB1
-------
CODE16
TSUB1
-------
BX R14
2、将存储器中0x30000000开始的200字节的数据,传送到地址从0x10000000开始的某接口电路的存储区域。
START
LDR R0,=0X30000000
LDR R1,=0X10000000
MOV R4,#0
LKM
LDRB R2,[R0],#1
STRB R2,[R1],#1
ADD R4,R4,#1
CMP R4,#200
BLNE LKM
END
3、编写一简单ARM汇编程序段,实现1+2+…+1000的累加运算。
MOV R0,#0
MOV R1,#0
LKM
ADD R0,R0,#1
ADD R1,R1,R0
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 R1,=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,[R1]
END
6、R0和R1中有两个32位无符号数,若R0>R1,则R0=R0-R1;若R0
CMP R0,R1
SUBHS R0,R0,R1
SUBCC R1,R1,R0
7、试编写程序,实现计算2+4+6+8+…+2N的值。
MOV R5,#0
MOV R3,#0
MOV R4,#0
LABLE EQU #0X2300000
MOV LABLE,#300
LKM
ADD R3,R3,#2
ADD R4,R4,R3
ADD R5,R5,#1
CMP R5,#LABLE
BLNE LKM
END
9、编程实现S3C2410工作模式的切换。
MRS R0,CPRS
BIC R0,R0,#&1F
ORR R0,R0,#&12
MSR CPSR_C R0
10、UART初始化编程。
START
LDR R0,=UFCON0
LDR R1,=0X0
STR R1,[R0]
LDR R0,=ULCON0
LDR R1,=0X3
STR R1,[R0]
LDR R0,=UCON0
LDR R1,=0X245
STR R1,[R0]
LDR R0,=PCLK
MOV R1,[R0]
考试题型
填空20分;单项选择20分;名词解释12分;简答题20分;编程题28分。
跳转指令:
B BL BLX BX
B/BL{cond} label
BLX{cond} Rm/lable
数据指令:
MOV MVN 移位指令 2
ADD ADC 加法指令 3
SUB SBC 减法指令 3
RSB RSC 逆向减法 3
ORR EOR AND 逻辑 3
CMP CMN TST TEQ 测试 2
BIC 位测试 3
注意:
{cond} {s} Rd ,Rm
{cond} {s} Rd ,Rm Rn LSL #3
{cond} {s} Rd ,Rm,# LABLE
TEQ (NE,EQ)
乘法:
MUL 32 {cond} {S} Rd, Rm ,Rs
MLA 32 {cond} {S} Rd, Rm ,Rs
SMULL/ SMLAL
UMULL/UMLAL
【嵌入式系统复习试题及答案】相关文章:
2016年嵌入式系统认证复习题及答案10-31
2016最新嵌入式笔试题及答案04-28
EDA考试复习试题及答案06-08
中考物理复习试题及答案08-20
2016年嵌入式面试题及答案10-05
吉安中考语文复习试题及答案06-10
2016年嵌入式培训考试题及答案08-20
嵌入式系统简介08-22
嵌入式系统特点09-14
嵌入式系统组成10-09