嵌入式系统开发与应用教程田泽复习题Word文档格式.doc

上传人:wj 文档编号:3991070 上传时间:2023-05-02 格式:DOC 页数:6 大小:50KB
下载 相关 举报
嵌入式系统开发与应用教程田泽复习题Word文档格式.doc_第1页
第1页 / 共6页
嵌入式系统开发与应用教程田泽复习题Word文档格式.doc_第2页
第2页 / 共6页
嵌入式系统开发与应用教程田泽复习题Word文档格式.doc_第3页
第3页 / 共6页
嵌入式系统开发与应用教程田泽复习题Word文档格式.doc_第4页
第4页 / 共6页
嵌入式系统开发与应用教程田泽复习题Word文档格式.doc_第5页
第5页 / 共6页
嵌入式系统开发与应用教程田泽复习题Word文档格式.doc_第6页
第6页 / 共6页
亲,该文档总共6页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

嵌入式系统开发与应用教程田泽复习题Word文档格式.doc

《嵌入式系统开发与应用教程田泽复习题Word文档格式.doc》由会员分享,可在线阅读,更多相关《嵌入式系统开发与应用教程田泽复习题Word文档格式.doc(6页珍藏版)》请在冰点文库上搜索。

嵌入式系统开发与应用教程田泽复习题Word文档格式.doc

B、32 

C、6 

D、37 

9、若R1=2000H,(2000H)=0x28,(2008H)=0x87,则执行指令LDR 

后R0的值为( 

0x28 

10、和PC机系统相比,下列哪个不是嵌入式系统独具的特点( 

 

) 

A、系统内核小 

B、专用性强 

C、可执行多任务 

D、系统精简 

11.ARM公司是专门从事( 

A、基于RISC技术芯片设计开发 

B、ARM芯片生产 

C、软件设计 

D、ARM芯片销售

12.ARM9系列微处理器是( 

A、三级流水线结构 

B、四级流水线结构 

C、五级流水线结构 

D、六级流水线结构 

13.所有工作模式下,( 

)都指向同一个物理寄存器,即各模式共享

A、R0-R7 

B、R0-R12 

C、R8-R12 

D、R13,R14 

14..当异常发生时,寄存器( 

)用于保存CPSR的当前值,从异常退出时则可由它来恢复CPSR. 

A、SPSR 

B、R13 

C、R14 

D、R15 

15.能实现把立即数0X3FF5000保存在R0中的指令是( 

A、LDR 

R0, 

0X3FF5000 

B、LDR 

C、MOV 

D、MOV 

=0X3FF5000 

16.ARM指令LDMIA 

RO,{R1, 

R2, 

R3,R4 

实现的功能是( 

A、R1←[R0],R2←[R0+4],R3←[R0+8],R4←[R0+12] 

B、R1←[R0],R2←[R0-1],R3←[R0-2],R4←[R0-3] 

C、R1←[R0],R2←[R0+1],R3←[R0+2],R4←[R0+3] 

D、R1←[R0],R2←[R0-4],R3←[R0-8],R4←[R0-12]

17.( 

)伪指令用于定义一个代码段或数据段 

A、RLIST 

B、DCB 

C、MAP 

D、AREA 

18.在ARM体系结构中,要从主动用户模式(User)切换到超级用户模式(Supervisor),应采用( 

)方法。

A、直接修改CPU状态寄存器(CPSR)对应的模式 

B、先修改程序状态备份寄存器(SPSR)到对应的模式,再更新CPU状态 

C、使用软件中断指令(SWI) 

D、让处理器执行未定义指令 

三、简答 

第一章:

1、什么是嵌入式系统?

与通用计算机系统相比,它有哪些特点?

答:

定义:

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

特点:

“专用”的计算机系统;

运行环境差异很大;

比通用PC系统资源少得多;

低功耗、体积小、集成度高、成本低;

具有完整的系统测试和可靠性评估体系;

具有较长的生命周期;

需要专用开发工具和方法进行设计;

包含专用调试路;

多科学知识集成系统 

2、 

嵌入式系统组成结构包括哪几部分?

嵌入式系统组成结构的理解。

嵌入式系统由硬件和软件组成。

嵌入式系统的硬件是以嵌入式微处理器为中心,配置存储器、I/O设备、通信模块以及电源等必要的辅助接口。

嵌入式系统软件包括板级支持包层、实时操作系统层、应用程序接口层和应用程序层四层。

3、 

简述嵌入式系统的硬件组成 

4、试分析通用操作系统与嵌入式操作系统的异同点,并解释什么是嵌入式实时操作系统。

嵌入式操作系统和嵌入式实时操作系统的概念有哪些不同?

通用操作系统和嵌入式操作系统都对软、硬件资源进行分配和调度以及控制协调等,嵌入式操作系统与通用操作系统的不同之处在于它具有实时性高、可靠性好、可裁剪、体积小等特性。

嵌入式实时操作系统(Real 

Time 

Embedded 

Operating 

System)是一种实时的、支持嵌入式系统应用的操作系统,是嵌入式系统的重要组成部分。

嵌入式操作系统只注重平均性能,对整个系统来说,所有任务的平均响应时间是关键,对单个任务的响应时间不关心。

嵌入式实时操作系统最主要的特性是性能上的“实时性”,也就是说系统的正确性不仅依赖于计算的逻辑结果,也依赖于结果产生的时间。

是一个能够

在指定的或者确定的时间内,完成系统功能以及对外部或内部、同步或异步事件作出响应的系统。

5、 

嵌入式操作系统具有哪些基本管理功能?

多任务管理,存储管理,外围资源管理和中断管理。

第二章:

6、 

试比较CISC体系结构和RISC体系结构的特点。

ARM为何采用RISC结构?

比较:

CISC指令集设计的主要趋势是增加指令集的复杂度。

而复杂指令集的高性能是以宝贵、有限的芯片面积为代价的。

RISC的中心思想是精简指令集的复杂度、简化指令实现的硬件设计,硬件只执行很有限的最常用的那部分指令,大部分复杂的操作则由简单指令合成。

RISC思想大幅度提高了计算机性能价格比。

采用RISC原因:

(1)Load/store体系结构

(2)固定的32位指令 

(3)地址指令格式 

7、分别以ARM7TDMI和ARM9TDMI为例,介绍3级流水线和5级流水线的执行过程,并进行相应的比较。

3级流水线分为:

取指,译码和执行。

5级流水线分为:

取指、译码、执行、缓冲\数据、回写。

它们的区别在于3级流水执行级中的寄存器读在5级流水的译码级中处理。

3级流水执行级中的寄存器写在5级流水的回写级中处理。

5级流水中的第4级缓冲\数据表示如果需要则访问数据存储器,否则只是简单地缓冲一个时钟周期。

3级流水采用冯诺依曼结构,不能同时访问指令存储器和数据存储器;

5级流水采用哈佛结构,指令存储器与数据存储器分开,可以同时访问。

8、ARM微处理器支持哪几种工作模式?

各个工作模式有什么特点?

共支持7中工作模式:

用户模式,系统模式,快速中断(FIQ)模式,普通中断(IRQ)模式,管理(SVC)模式,中止模式和未定义模式。

用户模式:

ARM处理器正常的程序执行状态。

快速中断模式(FIQ):

用于高速数据传输或通道处理。

普通中断模式(IRQ):

用于通用的中断处理。

管理模式(SVC):

操作系统使用的保护模式。

中止模式:

当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。

系统模式:

运行具有特权的操作系统任务。

未定义模式:

处理未定义的指令陷阱,支持硬件协处理器的软件仿真。

9ARM处理器共有多少个寄存器?

这些寄存器在用户编程中的功能是如何划分的?

ARM状态下的通用寄存器可分为哪几类?

ARM处理器共有37个寄存器,其中31个为通用寄存器,其余6个为状态寄存器。

通用寄存器可分为未分组寄存器R0-R7,分组寄存器R8-R14和程序计数器R15。

10简述ARM状态下分组寄存器R13,R14,R15的特殊功能及R15的使用注意事项。

寄存器R13通常用做堆栈指针SP;

寄存器R14用作子程序链接寄存器LR;

寄存器R15被用作程序计数器PC。

R15值的改变将引起程序执行顺序的变化,这有可能引起程序执行中出现一些不可预料的结果,因此,对R15的使用一定要慎重。

ARM处理器采用多级流水线技术,因此保存在R15的地址并不是当前指令的地址。

11、简述ARM处理对异常中断的相应过程。

(1)将CPSR的内容保存到将要执行的异常中断对应的SPSR中 

,实现对处理器当前状态、中断屏蔽位、各条件标志位的保存。

(2)设置当前状态寄存器CPSR中的相应位设置工作模式控制位,使处理器进入相应的执行模式 

设置中断标志位,禁止IRQ中断 

当进入RESET或FIQ模式时,还要禁止FIQ中断 

(3)将引起异常指令的下一条指令的地址保存到新的异常工作模式的R14 

,使异常处理程序执行完后能正确返回原程序。

(4)给程序计数器(PC)强制赋值,根据中断向量地址跳转 

去执行中断处理程序。

12.如果FIQ、IRQ和第3个异常(不是复位)同时发生,ARM应如何处理?

如果第3个异常是数据中止,处理器将在进入数据中止处理程序后立即进入FIQ处理程序。

数据中止将“记”在返回路径中,当FIQ处理程序返回时进行处理。

如果第3个异常不是数据中止,将立即进入FIQ处理程序。

当FIQ和IRQ两者都完成时,程序返回到产生第3个异常的指令并进行相应处理。

14什么是ARM异常中断向量表?

它有何作用?

存储在什么地方?

中断向量表中指定了各异常中断与其处理程序的对应关系。

在ARM体系中,异常中断向量表大小为32字节,每个异常中断占据4个字节。

ARM异常向量表通常以存储器的低端0x0为起始地址,大多数ARM处理器核也支持将异常向量表存放在以0xFFFF0000为起始地址的32字节空间中。

每个异常中断对应的中断向量表的4个字节的空间中存放一个跳转指令或者一个向PC寄存器中赋值的数据访问指令LDR。

通过这两种指令,程序将跳转到相应的异常中断处理程序处执行。

15.简述ARM的存储器层次。

1)寄存器组——存储器层次的顶层,访问时间几个ns

2)片上RAM——具有和片上寄存器组同级的读/写速度

3)片上Cache——访问时间10ns,2级片外Cache访问时间几十ns

4)主存储器——访问时间50ns

5)硬盘——访问时间几十ms

16.大端存储法与小端存储法有什么不同?

对存储数据有什么要求与影响?

小端:

较高的有效字节存放在较高的的存储器地址,较低的有效字节存放在较低的存储器地址。

大端:

较高的有效字节存放在较低的存储器地址,较低的有效字节存放在较高的存储器地址。

第三章:

17、 

ARM处理器如何进入和退出Thumb指令模式?

用汇编语言实现ARM状态和Thumb状态互相的切换。

进入Thumb模式:

有2种方法。

一种是执行一条交换转移指令BX,将指令中的目标地址寄存器的最低位置1,并将其他位的值放入程序计数器PC,则可以进入Thumb指令。

另一种方法是利用异常返回,也可把微处理器从ARM模式转换为Thumb模式。

退出Thumb模式:

也有2种方法。

一种是执行Thumb指令中的交换转移BX指令可以显式地返回到ARM指令流。

另一种是利用异常进入ARM指令流。

18.如何在汇编语言中定义和使用宏?

答:

宏名 

MACRO 

宏体 

MEND 

调用:

宏调用的方式在源程序中需要复制宏体的地方写宏的名字。

宏名单独占一行,当源程序被汇编时,汇编程序将对宏调用进行宏体复制,并取代宏名,这种复制操作称为宏展开。

为了与源程序的其他部分相区分 

19、简述ARM汇编语言中伪操作,宏指令和伪指令的含义,伪操作和伪指令都分为哪几类?

伪操作----伪操作只是在汇编过程中起作用,汇编结束,伪操作的使命也就结束。

宏指令----是一段独立的程序代码,可插在源程序中,它通过伪操作来定义。

伪指令----是ARM汇编语言程序里的特殊指令助记符,在汇编时将被合适的机器指令代替成ARM或Thumb指令,从而实现真正的指令操作。

伪操作分类:

①符号定义伪操作②数据定义伪操作③汇编控制伪操作 

④信息报告伪操作⑤其他伪操作 

伪指令分类:

①小范围的地址读取ADR②中等范围的地址读取ADRL 

③大范围的地址读取LDR④空操作伪指令NOP 

20.ARM寻址方式有几种?

举例说明ARM如何进行不同方式的寻址。

1).寄存器寻址;

如MOVR1,R2

2).立即寻址;

如MOVR0,#0xFF00

3).寄存器移位寻址;

如MOVR0,R2,LSL#3

4).寄存器间接寻址;

如LDRR1,[R2]

5).基址加偏址寻址;

如LDRR2,[R3,#0x0C]

6).多寄存器寻址;

如LDMIAR1!

{R2-R4,R6}

7).堆栈寻址;

如STMFDSP!

{R1-R7,LR}

8).相对寻址。

如BLSUBR1

第四章:

15、S3C44B0X有多少个通用可编程多功能输入/输出引脚?

可分为几类端口?

71个通用可编程多功能输入/输出引脚,可分为7类端口:

(1)2个9位输入/输出端口(Port 

E和Port 

F);

(2)2个8位输入/输出端口(Port 

D和Port 

G);

(3)1个16位输入/输出端口(Port 

C);

(4)1个10位输出端口(Port 

A);

(5)1个11位的输出端口(PortB) 

四、编程:

1、两个矢量的标量积:

MOV 

R11,#20 

初始化循环次数

R10,#0 

初始化总和

LOOP 

LDR 

R0,[R8],#4 

读取第一个分量

LDR 

R1,[R9],#4 

读取第二个分量

MLA 

R10,R0,R1,R10 

乘积累加R10=R0*R1+R10

SUBS 

R11,R11,#1 

减循环计数R11=R11-1

BNE 

2、10个数求和:

MOV 

R1,#1 

R0,#0 

ADD 

R1,R1,R0 

ADD 

R0,R0,#1 

CMP 

R0,#10 

3.把0x1000地址开始的五个字求和结果存到0x2000的地址

MOVR0,#0x1000

MOVR11,#0x2000

LDMIAR0,{R1—R5}

ADDR10,R1,R2

ADDCR9,R3,R4

ADDCR8,R10,R9

ADDCR7,R8,R5

STRR7,[R11]

4把0x1000处开始的8个字存到0x2000开始的地址

MOVR0,#0x1000

MOVR1,#0x2000

LDMIAR0,{R1—R8}

STMIAR11,{R1—R8}

3、编写以字节为单位的字符串拷贝子程序,要求从存储器某处拷贝到另一处。

源字符串的起始地址放入R1,长度(以字节为单位)放入R2,目的字符串的起始地址放入R3。

LDRB 

[R1], 

#1 

STRB 

[R3], 

PC, 

LR 

3.1计算X*2^8+Y/2^2+Z

LDRR0,X

LDRR1,y

LDRR2,Z

ADDR3,R2,R1ASR#2R3=Z+Y/4

ADDR4,R3,R0ASL#8 R4=R3+X*2^8

4、基于绝对地址的内存表举例。

下面的伪操作序列定义一个基于绝对地址的内存表,其首地址为固定地址8192(0x2000)。

该内存表中包含5个作用域:

consta长度为4字节,constb长度为4字节,x长度为8字节,y长度为8字节,string长度为16字节。

MAP 

8192 

内存表的首地址为8192(0x2000) 

c

onsta 

FIELD 

consta长度为4字节,相对位置为0 

constb 

constb长度为4字节,相对位置为4 

x长度为8字节,相对位置为8 

y长度为8字节,相对位置为16 

string 

16 

string长度为16字节,相对位置为24 

在指令中可以这样引用内存中的数据域:

R0,consta 

将consta地址处对应的内容加载到R0 

5、.基于相对地址的内存表举例。

下面的伪操作序列定义一个基于相对地址的内存表,其首地址为0与R9寄存器值的和,该内存表包含5个数据域(与例11相同)。

0,R9 

内存表的首地址为R9寄存器的值 

consta 

constb长度为4字节,相对位置为4

x长度为8字节,相对位置为8

可以通过下面的指令访问地址范围超过4KB的数据:

ADR 

R9,FIELD 

伪指令,将在后面介绍 

R5,constb 

相当于LDR,R5,[R9,#4]

6、编写一段程序实现在C语言中调用汇编语言程序,实现将1KB大小的内存块以字的形式复制到另一内存地址 

#include<

stdio.h>

#define 

NUM 

1024 

int 

main() 

char 

strFrom[NUM] 

"

helloworld"

};

strTo[NUM];

__asm 

mov 

ecx, 

NUM;

lea 

esi, 

strFrom;

edi, 

strTo;

rep 

movsb;

printf("

%s\n"

 

strTo);

7.ARM处理器如何进入和退出Thumb指令模式?

ARM状态切换到Thumb状态:

CODE32

LDRR0,=Lable+1

BXR0

CODE16

LableMOVR1,#12

Thumb状态切换到ARM状态:

CODE16

LDRR0,=Lable

BXR0

CODE32

LableMOVR1,#10

8.请将下面C语言代码转换成汇编语言。

(1)If(a==0||b==1)

c=d+e

CMPR0,#0

CMPNER1,#1

ADDEQR2,R3,R4

(2)if((a==b)&

&

(c==d))&

(e==f)

g++;

CMPR0,R1

CMPEQR2,R3

CMPEQR4,R5

ADDEQR6,R6,#1

9.编写以字节为单位的字符串拷贝子程序,要求从存储器某处拷贝到另一处。

LOOP

LDRBR0,[R1],#1

STRBR0,[R3],#1

SUBSR2,R2,#1

BNELOOP

MOVPC,LR

10.读懂下面一段程序,程序执行过程中寄存器R0、R1、R2中的内容如何变化?

试分析并给出程序每一步所得的结果。

从执行完loop循环开始,循环结束时R0←0

MOVR1,#y;

R1←76

ADDR2,R0,R1,LSL#1;

R2←152

MOVSP,#0x1000;

SP←0x1000

STRR2,[SP];

mem32[0x1000]←152

MOVR0,#Z;

R0←96

ANDR0,R0,#0XFF;

MOVR1,#y;

ADDR2,R0,R1,LSR#1;

R2←134

LDRR0,[SP];

R0←152

MOVR1,#0x01;

R1←1

ORRR0,R0,R1;

R0←153(0x99)(0b10011001)

MOVR1,R2;

R1←134(0x86)(0b10000110)

R2←220(0xDC)(0b11011100)

11.请使用MRS和MSR指令,通过修改CPSR寄存器,写出将处理器工作模式变为管理模式的子程序。

(注意不能影响其它位,管理模式的二进制编码为10011)

MRSR0,CPSR

ANDR0,R0,#0b11100000

ORRR0,R0,#0b00010011

MSRCPSR_c,R0

MOVPC,LR

1

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2