嵌入式设计复习题答案解析.docx
《嵌入式设计复习题答案解析.docx》由会员分享,可在线阅读,更多相关《嵌入式设计复习题答案解析.docx(25页珍藏版)》请在冰豆网上搜索。
嵌入式设计复习题答案解析
一、填空题
1、哈佛体系结构数据空间和地址空间(分开),ARM920T采用(哈佛)的内核架构。
2、ARM7TDMI采用(3)级流水线结构,ARM920TDMI采用(5)级流水线。
3、ARM7TDMI中,T表示支持16位Thumb指令集,D表示(在片可调式),M表示内嵌乘法器Multiplier,I表示(嵌入式ICE),支持在线断点和调试。
4、“嵌入性”、“专用性”与“计算机系统”是嵌入式系统的三个基本要素。
5、ARM处理器共有37个寄存器,31个通用寄存器,6个状态寄存器。
寄存器R13通常用作堆栈指针,称作SP。
寄存器R14用作子程序链接寄存器,也称为链接寄存器LK(LinkRegister)。
6、程序状态寄存器CPSR的N、Z、C、V分别指--,I=1指-禁止IRQ中断-、F=1指-禁止FIQ中断-,M[4:
0]用做-处理器模式选择-。
7、ARM微处理器支持四种类型的堆栈,即:
满递增堆栈、满递减堆栈、空递增堆栈、空递减堆栈。
8、ARM微处理器有7种工作模式,它们分为两类特权模式、非特权模式。
其中用户模式属于非特权模式
9、ARM支持两个指令集,ARM核因运行的指令集不同,分别有两个状态ARM状态、thumb状态,状态寄存器CPSR的T(或者填D5)位反映了处理器运行不同指令的当前状态
10、ARM处理器有两种总线架构,数据和指令使用同一接口的是冯诺依曼结构,数据和指令分开使用不同接口的是哈佛结构
11、ARM核有多个寄存器,其中大部分用于通用寄存器,有小部分作为专用寄存器,R15寄存器用于存储PC,R13通常用来存储SP(或者填堆栈指针)
12、编译链接代码时,有两种存储代码和数据的字节顺序,一种是小端对齐,另一种是大端对齐
13、不同的中断处理不同的处理模式,具有不同的优先级,而且每个中断都有固定的中断入口地址。
当一个中断发生时,相应的R14存储中断返回地址,SPSR存储状态寄存器CPSR的值。
14、嵌入式微处理器有嵌入式微处理器、嵌入式微控制器、曲入式DSP处理器和嵌入式片上系统四种类型。
15、ARM9TDMI采用5级流水线:
取指、译码、执行、访存和写回。
16、AMBA总线结构包括ASB、AHB和APB总线。
ASB/AHB用于CPU与存储器、DMA控制器、总线仲裁控制器等片上系统中芯片的连接,APB用于连接低速的外围设备。
17、函数的参数传递方法有两种:
R0~R3寄存器和堆栈
二、选择题
1、在嵌入式ARM处理器中,下面哪种中断方式优先级最高。
(A)
A.ResetB.数据中止C.FIQD.IRQ
2、NANDFLASH和NORFLASH的区别正确的是。
(D)
A.NOR的读速度比NAND稍慢一些B.NAND的写入速度比NOR慢很多
C.NAND的擦除速度远比NOR的慢D.大多数写入操作需要先进行擦除操作
3、在将uc/os操作系统移植到ARM处理器上时,以下哪些文件不需要修改。
(A)
(A)OS_CORE.C(B)include.h
(C)OS_CPU.H(D)OSTaskInit
4、在下列ARM处理器的各种模式中,只有_A_模式不可以可以自由地改变处理器的工作模式。
A、用户模式(User)
B、系统模式(System)
C、终止模式(Abort)
D、中断模式(IRQ)
5、相对于ARM指令集,Thumb指令集的特点是__B__
A、指令执行速度快
B、16位指令集,可以得到密度更高的代码,对于需要严格控制成本的设计非常有意义
C、Thumb模式有自己独立的寄存器
D、16位指令集,代码密度高,加密性能好
6、在ARM寄存器结构中,栈指针使用_B_寄存器,
A、R0B、R13C、R14D、R15
7、下列条件码中表示无符号数小于的是__D_
A、HIB、LSC、CSD、CC
8、下列ARM指令中,可用于满递增堆栈操作的是__D_
A、STMDAB、STMIAC、STMDBD、STMIB
9、下列32位数中,不可作为立即数的是__A__
A、0x81000007B、0xC、0x00000012D、0x8000007
10、ATPCS规定数据栈是__A__类型
A、满递减B、满递增C、空递减D、空递增
11、S3C2410采用的是D核心
A、ARM7TDMI B、ARM9TDMI C、ARM926EJ-SD、ARM920T
12、在串行异步通讯中,发送端串口的TxD要和接收端串口的B相连接
[A]TxD [B]RxD [C]nCTS[D]nRTS
13、MMU的作用有AB
[A]内存保护[B]地址转换(将虚地址转换成物理地址)[C]加快存取速度[D]安全保密[E]内存分配
14、以下属于DMA特点的有BC
[A]占用CPU [B]占用总线[C]不占用CPU[D]不占用总线
15、存储一个32位数0x2168465到2000H~2003H四个字节单元中,若以大端模式存储,则2000H存储单元的内容为D
A、0x21B、0x68C、0x65D、0x02
16、RS232-C串口通信中,表示逻辑1的电平是D。
A、0vB、3.3vC、+5v~+15vD、-5v~-15v
17、ARM汇编语句“ADDR0,R2,R3,LSL#1”的作用是A。
A.R0=R2+(R3<<1)B.R0=(R2<<1)+R3
C.R3=R0+(R2<<1)D.(R3<<1)=R0+R2
18、IRQ中断的入口地址是C。
FIQ的入口地址为0x0000001C
A、0x00000000B、0x00000008C、0x00000018D、0x00000014
19、S3C2420XI/O口常用的控制器是(4)
(1)端口控制寄存器(GPACON-GPHCON)。
(2)端口数据寄存器(GPADAT-GPHDAT)。
(3)外部中断控制寄存器(EXTINTN)。
(4)以上都是。
20、ADDR0,R1,#3属于A寻址方式。
A.立即寻址B.多寄存器寻址C.寄存器直接寻址D.相对寻址
21、GET伪指令的含义是A
A.包含一个外部文件B.定义程序的入口C.定义一个宏D.声明一个变量
22、μCOS-II操作系统不属于C
A、RTOSB、占先式实时操作系统C、非占先式实时操作系统D、嵌入式实时操作系统
23、若R1=2000H,(2000H)=0x86,(2008H)=0x39,则执行指令LDRR0,[R1,#8]!
后R0的值为D。
A.0x2000B.0x86C.0x2008D.0x39
24、ARM寄存器组有D个寄存器。
A、7B、32C、6D、37
25、在μC/OS-II系统中,OSTimeTick()函数只被以下A函数或过程所调用。
A.OSTickISRB.OSShedC.OSCtxSwD.OSIntCtxSw
26、下列关于存储管理单元(MMU)说法错误的是B。
A.MMU提供的一个关键服务是使各个任务作为各自独立的程序在其自己的私有存储空间中运行。
B.在带MMU的操作系统控制下,运行的任务必须知道其他与之无关的任务的存储需求情况,这就简化了各个任务的设计。
C.MMU提供了一些资源以允许使用虚拟存储器。
D.MMU作为转换器,将程序和数据的虚拟地址(编译时的连接地址)转换成实际的物理地址,即在物理主存中的地址。
27、下列CPSR寄存器标志位的作用说法错误的是D。
A.N:
负数B.Z:
零C.C:
进位D.V:
借位
28、LDRR2,[R3,#128]的寻址方式是C。
A.寄存器寻址B.寄存器移位C.变址寻址D.间接寻址
29、当一个中断发生时,相应的A(LR)存储中断返回地址。
A.R14B.R1C.R2D.R15
30、通常所说的32位微处理器是指C。
A.地址总线的宽度为32位 B. 处理的数据长度只能为32位
C.CPU字长为32位 D.通用寄存器数目为32个
31、S3C2410X微处理器有以下外围资源:
A个LCD控制器
A.1B.2C.3D.4
32、S3C2410X存储控制器支持大端、小端模式存储,可寻址C的空间。
A.1MBB.1TBC.1GBD.1B
33、S3C2410X微处理器有3个通道的UART,D个通道的DMA。
A.1B.2C.5D.4
三、指令解析
1、LDRR0,[R1];从R1寄存器指向的地址中取出一个字的数据,存储到R0寄存器中
2、STRR0,[R1],#8;将R0中的字数据写入R1为地址的存储器中,并将新地址R1+8写入R1
3、ADDSR1,R1,#1;R1+1给R1
4、LDMFDR13!
,{R0,R4-R12,PC};将堆栈内容恢复到寄存器(R0,R4到R12,LR)。
5、初始值R1=23H,R2=0FH执行指令BICR0,R1,R2,LSL#1后,寄存器R0,R1的值分别是多少?
R0=21H,R1=23H,R2=1EH
6、写一条ARM指令,完成操作r1=r2*3(4分)
addr1,r2,r2LSL#1
7、说明指令STMIAr12!
{r0-r11}的操作功能。
(4分)
将R0-R11十二个寄存器中的32位数据,存储到R12地址指针为起始地址的内存中,地址的操作方式是先操作、后增加,并更新地址。
8、ADDR0,R0,#1;将R0+1的结果送R0是保存
9、ADDR0,R1,[R2];将以R2中的内容为地址的单元中的值与R1相加,结果送R0保存
10、LDRR0,[R1+4];指令实现的功能是将R1的内容加4后送R0
4.LDRR0,[R1+4]!
;将R1的内容加4后送R0,然后R1的内容自增4个字节
5.BLable;程序无条件跳转到标号Lable处执行
6.MOVR1,R0;指令实现的功能是将寄存器R0的值传送到寄存器R1
7.CMPR1,R0;寄存器R1的值与寄存器R0的值相减,根据结果设置CPSR的标志位
8.CMNR1,R0;将寄存器R1的值与寄存器R0的值相加,根据结果设置CPSR的标志位
9.ORRR0,R0,#3;该指令设置R0的0、1位,其余位保持不变
10.MRSR0,SPSR;传送SPSR的内容到R0
11.CMPR1,R2;寄存器R1的值与寄存器R2的值相减,根据结果设置CPSR的标志位
12.MRSR0,CPSR;传送SPSR的内容到R0
13.MOVR2,R0;将寄存器R0的值传送到寄存器R2
14.ADDR1,R1,#3;将R1+3的结果送R1是保存
15.ADDR2,R1,[R0];将以R0中的内容为地址的单元中的值与R1相加,结果送R2保存
16.LDRR1,[R0+4];将R1的内容加4后送R0
17.LDRR1,[R0+4]!
;将R1的内容加4后送R0,然后R1的内容自增4个字节。
18.ANDR0,R0,#3;保持R0的0、1位,其余位清零
19.B0x1200;程序无条件跳转到0x1200处执行
20.CMNR1,R2;将寄存器R1的值与寄存器R2的值相加,并根据结果设置CPSR的标志位
四、看图回答
1、下图是ARM9处理器的当前程序状态寄存器,请简单说明各位的功能。
N:
负标志位,运算结果的第31位值,记录标志设置的结果。
Z:
零标志位,如果标志设置操作的结果为0,则置位。
C:
进位标志位,记录无符号加法溢出,减法无错位,循环移位。
V:
溢出标志位,记录标志设置操作的有符号溢出。
I:
中断禁止标志位,置位时禁止IRQ中断,否则允许IRQ中断使能。
F:
中断禁止标志位,置位时禁止FIQ中断,否则允许FIQ中断使能。
T:
控制位,置位时处理器运行在Thumb状态下,清零时处理器运行在ARM状态下。
M0~M4:
模式控制位,定义处理器的7中模式。
其余位为保留位,留作将来使用。
2、阅读下列与看门狗有关的寄存器描述,解释每一行代码的功能。
看门狗定时器控制寄存器(WTCON)
寄存器
地址
读/写
描述
初始值
WTCON
0x53000000
读/写
看门狗定控制寄存器
0x8021
WTCON的标识位
WTCON
Bit
描述
初始值
PrescalerValue
[15:
8]
预装比例值,有效范围值为0~255
0x80
Reserved
[7:
6]
保留
00
WatchdogTimer
[5]
使能和禁止看门狗定时器
0=禁止看门狗定时器
1=使能看门狗定时器
0
ClockSelect
[4:
3]
这两位决定时钟分频因素
00:
1/1601:
1/32
10:
1/6411:
1/128
00
InterruptGeneration
[2]
中断的禁止和使能
0=禁止中断产生
1=使能中断产生
0
Reserved
[1]
保留
0
Reset
Enable/Disable
[0]
禁止很使能看门狗复位信号的输出
1=看门狗复位信号使能
0=看门狗复位信号禁止
1
看门狗定时器数据寄存器(WTDAT)
寄存器
地址
读/写
描述
初始值
WTDAT
0x53000004
读/写
看门狗数据寄存器
0x8000
看门狗计数寄存器(WTCNT)
寄存器
地址
读/写
描述
初始值
WTCNT
0x53000008
读/写
看门狗计数器当前值
0x8000
#definerWTCON(*(volatileunsigned*)0x53000000)//第1行
#definerWTDAT(*(volatileunsigned*)0x53000004)//第2行
#definerWTCNT(*(volatileunsigned*)0x53000008)//第3行
voidwatchdog_test(void)
{
rWTCON=((PCLK/1000000-1)<<8)|(3<<3)|(1<<2);//第4行
rWTDAT=7812;//第5行
rWTCNT=7812;//第6行
rWTCON|=(1<<5);//第7行
}
3、阅读以下S3C2410部分用户手册.求:
当PCLK或UCLK为40MHz时,串口0的波特率为2400bps,串口1的波特率为115200bps,相应的控制寄存器如何设置.
UARTBAUDRATEDIVISORREGISTER
TherearethreeUARTbaudratedivisorregisters(寄存器)includingUBRDIV0,UBRDIV1andUBRDIV2intheUART block(模块). Thevaluestoredinthebaudratedivisorregister(UBRDIVn),isusedtodeterminetheserialTx/Rxclockrate(baudrate)asfollows:
UBRDIVn=(int)(PCLK/(bpsx16))–1orUBRDIVn=(int)(UCLK/(bpsx16))–1
Where,thedivisorshouldbefrom1to(216-1)andUCLKshouldbesmallerthanPCLK.
Register
Address
R/W
Description
ResetValue
UBRDIV0
0x50000028
R/W
Baudratedivisorregister0
–
UBRDIV1
0x50004028
R/W
Baudratedivisorregister1
–
UBRDIV2
0x50008028
R/W
Baudratedivisorregister2
–
UBRDIVn
Bit
Description
InitialState
UBRDIV
[15:
0]
BaudratedivisionvalueUBRDIVn>0
–
五、简答题
1、根据嵌入式系统的特点,写出嵌入式系统的定义。
答:
嵌入式系统是以应用为中心,以计算机技术为基础,软/硬件可裁减,功能。
可靠性,成本,体积,功耗要求严格的专用计算机系统。
2、嵌入式系统的主要应用领域有哪些?
3、什么是RISC?
什么是CISC?
答:
RISC是英文ReducedInstructionSetComputer的缩写,汉语意思为"精简指令系统计算机"。
相对应的CISC就是"复杂指令系统计算机"的意思。
CPU从指令集的特点上可以分为两类:
CISC和RISC。
4、ARM9TDMI中的T、D、S、I分别表示什么含义?
答:
T表示支持16位Thumb指令集,
D表示在片可调式(Debug),
M表示内嵌乘法器Multiplier,
I表示嵌入式ICE,支持在线断点和调试。
4、ARM处理器模式和ARM处理器状态有什么区别?
答:
(1)ARM7TARM体系结构支持7种处理器模式,分别为:
用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。
(2)ARM处理器状态:
ARM状态、Thumb状态。
(3)两种处理器状态都有这7种处理器模式;两个状态之间切换并不影响处理器模式或寄存器内容。
ARM9TDMI有几种寻址方式?
答:
立即寻址
寄存器寻址
基地址变址寻址
寄存器偏移寻址
寄存器间接寻址
多寄存器寻址
5、ARM9的内部寄存器R13、R14、R15的主要功能和作用?
7、FIQ、IRQ有什么不同?
向量IRQ和非向量IRQ有什么不同?
答:
(1)FIQ的优先级比IRQ高,对外部事件响应比IRQ快。
(2)A:
向量IRQ具有中等优先级,对外部事件响应比较及时;非向量IRQ优先级最低,中断延迟时间比较长。
B:
向量IRQ能为每个向量IRQ中断源设置服务程序地址;而所有的非向量IRQ中断都共用一个相同的服务程序入口地址。
8、ARM9TDMI支持哪几种指令集,各有什么特点?
9、ARM9TDMI有几种处理器模式,简单介绍该几种模式的工作特点?
答:
P45
ARM7TARM体系结构支持7种处理器模式
1.用户模式:
正常处理程序时的模式
2.快中断模式:
响应快速中断时的处理模式
3.中断模式:
响应普通中断时的模式
4.管理模式:
操作系统的保护模式
5.中止模式:
指令或数据预取操作中止时的模式,该模式下实现虚拟存储器或存储器保护
6.未定义模式:
当执行未定义的指令时进入该模式
7.系统模式:
运行特权操作系统任务时的模式
10、ARM9TDMI采用了几级流水线工作方式,简要说明。
11、ARM9TDMI支持的数据类型有几种?
各有什么要求?
12、ARM920T体系结构支持哪两种方法存储字数据?
13、ARM920T体系结构所支持的哪几种异常?
说明其具体含义。
14、简述ARM处理器对异常的响应的步骤。
15、简述ARM处理器从异常返回的步骤
16、写出基于ARM920T核的处理器的异常优先级(ExceptionPriorities)。
17.写出基于ARM920T核的处理器的异常向量(ExceptionVectors)及异常进入的模式
18.画出采用大端格式存放01020304H的存储器示意图。
19.画出采用小端格式存放05060708H的存储器示意图。
20、ARM920T有哪些运行模式,其中哪些属于特权模式?
21、用ARM汇编指令写出实现64位加法和64位减法的代码段,使用的寄存器请自行分配
假定低32位数存放在r0和r1里面,高32位数存放在r2和r3里面。
答:
加法:
ADDSr0,r0,r1//加S是因为要让这个操作影响标志位
ADCr2,r2,r3//ADC是带进位的加法,如果上一条指令产生进位则一起加进来
减法:
SUBSr0,r0,r1//加S是因为要让这个操作影响标志位
SBCr2,r2,r3//SBC是带进位的减法指令
22、S3C2410支持几种引导方式(或者说是内存映射方式)?
简述Nand引导方式S3C2410硬件做的事情。
1)norflash启动方式。
2)nandflash启动方式。
从Nandflash启动时,S3C2410首先会执行固化在片上ROM中的一段小程序,这段程序负责将nandflash前2K的代码搬移到片上RAM,然后将PC指针指向0x0地址(注意这个时候片上RAM被映射到0x0的起始地址)
23、ARM微处理器内核是如何进行异常处理的?
答:
1)当异常产生时,ARM内核拷贝CPSR到SPSR_,设置适当的CPSR位:
改变处理器状态进入ARM态,改变处理器模式进入相应的异常模式,设置中断禁止位禁止相应中断(如果需要);保存返回地址到LR_,设置PC为相应的异常向量。
2)返回时,异常处理需要从SPSR_恢复CPSR,从LR_恢复PC,注意:
这些操作只能在ARM态执行。
24、ARM提供的可执行映像文件的模板包括哪3个生成目标?
各包含什么调试信息?
答:
ARM提供的可执行的映像文件的模板包括了下面3个生成目标:
1)Debug使用本生成目标生成的映像文件中包含了所有的调试信息,用于在开发过程中使用;
2)2)Release使用本生成目标生成的映像文件中不包含调试信息,用于生成实际发行的软件版本;3)DebugRel使用本生成目标生成的映像文件中包含了基本的调试信息。
25、为什么需要嵌入式操作系统?
答:
嵌入式系统与一般的系统不同,设计成为执行特定的操作,但是初期的嵌入式系统比较单纯,不需要特殊的操作系统,由人来编写程序并顺序执行,只有当中间发生中断时才会暂时脱离此顺序程序。
过去的嵌入式系统主要与简单而顺序的操作有关,使用操作系统成为浪费和不必要的