21嵌入式设计复习题答案.docx

上传人:b****6 文档编号:13764204 上传时间:2023-06-17 格式:DOCX 页数:23 大小:213.42KB
下载 相关 举报
21嵌入式设计复习题答案.docx_第1页
第1页 / 共23页
21嵌入式设计复习题答案.docx_第2页
第2页 / 共23页
21嵌入式设计复习题答案.docx_第3页
第3页 / 共23页
21嵌入式设计复习题答案.docx_第4页
第4页 / 共23页
21嵌入式设计复习题答案.docx_第5页
第5页 / 共23页
21嵌入式设计复习题答案.docx_第6页
第6页 / 共23页
21嵌入式设计复习题答案.docx_第7页
第7页 / 共23页
21嵌入式设计复习题答案.docx_第8页
第8页 / 共23页
21嵌入式设计复习题答案.docx_第9页
第9页 / 共23页
21嵌入式设计复习题答案.docx_第10页
第10页 / 共23页
21嵌入式设计复习题答案.docx_第11页
第11页 / 共23页
21嵌入式设计复习题答案.docx_第12页
第12页 / 共23页
21嵌入式设计复习题答案.docx_第13页
第13页 / 共23页
21嵌入式设计复习题答案.docx_第14页
第14页 / 共23页
21嵌入式设计复习题答案.docx_第15页
第15页 / 共23页
21嵌入式设计复习题答案.docx_第16页
第16页 / 共23页
21嵌入式设计复习题答案.docx_第17页
第17页 / 共23页
21嵌入式设计复习题答案.docx_第18页
第18页 / 共23页
21嵌入式设计复习题答案.docx_第19页
第19页 / 共23页
21嵌入式设计复习题答案.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

21嵌入式设计复习题答案.docx

《21嵌入式设计复习题答案.docx》由会员分享,可在线阅读,更多相关《21嵌入式设计复习题答案.docx(23页珍藏版)》请在冰点文库上搜索。

21嵌入式设计复习题答案.docx

21嵌入式设计复习题答案

一、填空题

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

9、下列32位数中,不可作为立即数的是__A__

A、0x81000007

B、0x04800000

C、0x00000012

D、0x8000007

11、S3C2410采用的是D核心

A、ARM7TDMIB、ARM9TDMIC、ARM926EJ-SD、ARM920T

13、MMU的作用有AB

[A]内存保护[B]地址转换(将虚地址转换成物理地址)[C]加快存取速度[D]安全保密[E]内存分配

15、存储一个32位数0x2168465到2000H~2003H四个字节单元中,若以大端模式存储,则2000H存储单元的内容为D

A、0x21B、0x68C、0x65D、0x02

16、RS232-C串口通信中,表示逻辑1的电平是D。

A、0vB、3.3vC、+5v~+15v

D、-5v~-15v

17、ARM汇编语句“ADDR0,R2,R3,LSL#1”的作用是A。

A.R0=R2+(R3<<1)B.R0=(R2<<1)+R3

D.(R3<<1)=R0+R2

C.R3=R0+(R2<<1)

18、IRQ中断的入口地址是C。

FIQ的入口地址为0x0000001C

A、0x00000000B、0x00000008C、0x00000018D、0x00000014

20、ADDR0,R1,#3属于A寻址方式。

A.立即寻址B.多寄存器寻址C.寄存器直接寻址D.相对寻址

21、GET伪指令的含义是A

A.包含一个外部文件B.定义程序的入口C.定义一个宏D.声明一个变量

23、若R1=2000H,(2000H)=0x86,(2008H)=0x39,则执行指令LDRR0,[R1,#8]!

后R0的值为D。

A.0x2000B.0x86C.0x2008D.0x39

28、LDRR2,[R3,#128]的寻址方式是C。

A.寄存器寻址B.寄存器移位C.变址寻址D.间接寻址

29、当一个中断发生时,相应的A(LR)存储中断返回地址。

A.R14B.R1C.R2D.R15

2

存储控制器支持大端、小端模式存储,可寻址C的空间。

32、S3C2410X

A.1MBB.1TBC.1GBD.1B

二、指令解析R0R1寄存器指向的地址中取出一个字的数据,存储到;、LDRR0,[R1]从寄存器中1R18写入中的字数据写入R1为地址的存储器中,并将新地址R1+2、STRR0,[R1],#8;将R0R1

给;R1+13、ADDSR1,R1,#1

)。

到R12,LR{R0,R4-R12,PC};将堆栈内容恢复到寄存器(R0,R44、LDMFDR13!

,的值分别是多,R1,LSL#1后,寄存器R0执行指令BICR0,R1,R25、初始值R1=23H,R2=0FHR2=1EH

R1=23H,少?

R0=21H,

4分)ARM指令,完成操作r1=r2*3(6、写一条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处执行

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

3

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处理器的当前程序状态寄存器,请简单说明各位的功能。

8765432102728313029

IFTNZCVM0M4M3M2M1当前程序状态寄存器ARM7

N:

负标志位,运算结果的第31位值,记录标志设置的结果。

Z:

零标志位,如果标志设置操作的结果为0,则置位。

C:

进位标志位,记录无符号加法溢出,减法无错位,循环移位。

V:

溢出标志位,记录标志设置操作的有符号溢出。

I:

中断禁止标志位,置位时禁止IRQ中断,否则允许IRQ中断使能。

F:

中断禁止标志位,置位时禁止FIQ中断,否则允许FIQ中断使能。

T:

控制位,置位时处理器运行在Thumb状态下,清零时处理器运行在ARM状态下。

M0~M4:

模式控制位,定义处理器的7中模式。

其余位为保留位,留作将来使用。

2、阅读下列与看门狗有关的寄存器描述,解释每一行代码的功能。

看门狗定时器控制寄存器(WTCON)

寄存器地WTCON

址读

/写描

述初

0x53000000

写/看门狗定控制寄存器

0x8021

WTCON的标识位

BitWTCONPrescalerValueReservedWatchdogTimer

初述

[15:

8]

预装比例值,有效范围值为

0~2550x80

[7:

6]

保留

00

[5]

使能和禁止看门狗定时器0=禁止看门狗定时器1=使能看门狗定时器

0

值4

这两位决定时钟分频因素00

ClockSelect

[4:

3]

01:

1/3200:

1/16

11:

1/12810:

1/64

中断的禁止和使能禁止中断产生0=0InterruptGeneration[2]

1=使能中断产生保留0Reserved[1]

禁止很使能看门狗复位信号的输出Reset1=看门狗复位信号使能1

[0]

Enable/Disable

看门狗复位信号禁止0=看门狗定时器数据寄存器(WTDAT)值述初始地址读/写描器寄存

看门狗数据寄存器读/写0x8000

0x53000004

WTDAT

WTCNT)看门狗计数寄存器(值始初读/写描述址器寄存地

写/看门狗计数器当前值读0x8000

WTCNT

0x53000008

(*(volatileunsigned*)0x53000000)//第1行#definerWTCON

(*(volatileunsigned*)0x53000004)//第2行#definerWTDAT

(*(volatileunsigned*)0x53000008)//第3行#definerWTCNT

voidwatchdog_test(void)

{

行第4//rWTCON=((PCLK/1000000-1)<<8)|(3<<3)|(1<<2);

5行//第rWTDAT=7812;

//行第6rWTCNT=7812;

7行//第rWTCON|=(1<<5);

}

40MHz时,串口0的波特率为2400为PCLKS3C24103、阅读以下部分用户手册.求:

当或UCLK

bps,串口1的波特率为115200,相应的控制寄存器如何设置.bps5

UARTBAUDRATEDIVISORREGISTER

includingUBRDIV0,UBRDIV1andUBRDIV2intheTherearethreeUARTbaudratedivisorregisters(寄存器)Thevaluestoredinthebaudratedivisorregister(UBRDIVn),isusedtodeterminethe(模块).UARTblockserialTx/Rxclockrate(baudrate)asfollows:

1UBRDIVn=(int)(UCLK/(bpsx16))––1orUBRDIVn=(int)(PCLK/(bpsx16))

Where,thedivisorshouldbefrom1to(216-1)andUCLKshouldbesmallerthanPCLK.

RegisterAddressR/WDescriptionResetValue

–R/WUBRDIV0Baudratedivisorregister00x50000028

–Baudratedivisorregister1UBRDIV1R/W0x50004028

–UBRDIV2Baudratedivisorregister2

0x50008028R/W

DescriptionInitialStateBitUBRDIVn

UBRDIVUBRDIVn>0

[15:

0]

–Baudratedivisionvalue

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种处理器模式;两个状态之间切换并不影响处理器模式或寄存器内容。

5、ARM9TDMI有几种寻址方式?

答:

立即寻址寄存器寻址基地址变址寻址寄存器偏移寻址寄存器间接寻址多寄存器寻址

6、ARM9的内部寄存器R13、R14、R15的主要功能和作用?

11、ARM9TDMI支持的数据类型有几种?

各有什么要求?

6

体系结构支持哪两种方法存储字数据?

ARM920T12、

大端1801020304H的存储器示意图。

.画出采用格式存放

小端05060708H的存储器示意图。

格式存放19.画出采用

位减法的代码段,使用的寄存器请自行分配64位加法和6420、用ARM汇编指令写出实现里面。

和r3里面,高和r132位数存放在r2假定低32位数存放在r0答:

加法:

S加是因为要让这个操作影响标志位//ADDSr0,r0,r1

//ADC是带进位的加法,如果上一条指令产生进位则一起加进来ADCr2,r2,r3

减法:

是因为要让这个操作影响标志位//加SSUBSr0,r0,r1

是带进位的减法指令//SBCSBCr2,r2,r31)ARM微处理器内核是如何进行异常处理的?

23、改变处理器状态CPSR位:

设置适当的CPSR当异常产生时,ARM内核拷贝到SPSR_,)答:

1保;如果需要设置中断禁止位禁止相应中断态,进入ARM改变处理器模式进入相应的异常模式,()7

存返回地址到LR_,设置PC为相应的异常向量。

2)返回时,异常处理需要从SPSR_恢复CPSR,从LR_恢复PC,注意:

这些操作只能在ARM态执行。

26、简述μC/OS-Ⅱ操作系统的移植条件。

答:

要使μc/os-ii能正常运行,处理器必须满足以下要求。

(1)处理器的c编译器能产生可重入代码

可重入代码是指可以被多个任务同时调用,而不会破坏数据的一段代码;或者说代码具有在执行过程中打断后再次被调用的能力。

(2)处理器支持中断,并且能产生定时中断

arm处理器支持中断并能产生定时中断。

(3)c语言可以开/关中断

寄存器寄存器寄存器,该寄存器包括一个全局中断禁止位,控制它打开和关闭cpsrarm处理器核包含一个cache

cache主存储器中断。

主存储器辅助存储器(4)处理器支持一定数量的数据存储硬件堆栈辅助存储器

对于一些只有10根地址线的8位控制器,芯片最多可访问1kb存储单元,在这样的条件下移植是比较困难的。

(5)处理器有将堆栈指针以及其他cpu寄存器的内容读出并存储到堆栈或内存中去的指令

arm处理器中汇编指令stmfd可以将所有寄存器压栈,对应的也有一个出栈指令ldmfd。

29、在进行基于ARM核的嵌入式系统软件开发时,调用如下函数:

intdo_something(intarg1,void*arg2,chararg3,int*arg4)

这四个参数通过什么方式从调用程序传入被调函数?

根据ATPCS编程规范,调用函数和子程序通过R0——R3四个寄存器传递参数,超过四个参数使用堆栈传递。

因此arg1通过R0传入,arg2,通过R1传入,arg3通过R2传入,arg4通过R3传入

四、编程题

1.用汇编语言编写程序读取存储器0x40003100地址上的数据,将数据加1,若结果小于10则使用STR指令把结果写回原地址,若结果大于等于10,则把0写回原地址。

8

寄存R5C函数的参数,由汇编语言传递,结果存放在语言实现n个数相加,n为C2、用汇编语言调用器中。

C程序:

汇编程序:

,称大端地址模式;如占多字节的数据在存储时,如果高位字节存在低地址(首地址)6、大(小)端地址模式:

果低位字节存在低地址(首地址),称小端地址模式。

简答题一.

处理器属于哪种结构。

、简述冯?

诺依曼结构与哈佛结构,并指出日常生活中的1Intel9

答:

冯·诺依曼结构:

将数据和指令都存储在存储器中的计算机。

计算系统由一个中央处理单元(CPU)和一个存储器组成。

存储器拥有数据和指令,并且可以根据所给的地址对它进行读或写。

哈佛结构:

为数据和程序提供了各自独立的存储器。

程序计数器只指向程序存储器而不指向数据存储器

2、与通用计算机相比,嵌入式系统有哪些特点?

答:

嵌入式系统同通用型计算机系统相比具有以下特点:

1)嵌入式系统是面向特定应用的。

2)嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。

3)嵌入式系统的硬件和软件都必须高效率地设计。

4)嵌入式系统具有较长的生命周期。

5)嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中。

6)嵌入式系统本身不具备自举开发能力,必须有一套开发工具和环境才能进行开发。

5、简述采用RISC架构的ARM微处理器的特点。

答:

采用RISC架构的ARM微处理器一般具有如下特点:

1)体积小、低功耗、低成本、高性能;2)支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;3)大量使用寄存器,指令执行速度更快;4)大多数数据操作都在寄存器中完成;5)寻址方式灵活简单,执行效率高;6)指令长度固定;

11、简述μC/OS-Ⅱ操作系统的移植条件

答:

要使μC/OS-Ⅱ正常运行,处理器必须满足5个要求:

a)处理器的C编译器能产生可重入型代码;b)处理器支持中断,并且能产生定时中断;c)用C语言就可以开/关中断;d)处理器能支持一定数量的数据存储硬件堆栈;e)处理器有将堆栈指针以及其它CPU寄存器的内容读出,并存储到堆栈或内存中去的指令。

12、简要说明嵌入式操作系统多任务通讯的常用方式。

答:

多任务通讯的方式:

a)共享内存,主要是数据的共享;b)信号量,用于基本的互斥和任务同步;c)消息队列和管道,单CPU的消息传送;d)Socket和远程过程调用,用于网络间任务消息传送。

13、描述嵌入式系统方案设计和执行项目过程中的五个主要工作步骤。

答:

系统规划、系统设计、系统实现、系统测试、系统调试

五、论述题

1、嵌入式发展到今天,对应于各种微处理器的硬件平台都是通用的、固定的;各种相应的软件比较成熟,模块化程度比较高;因此,当今的开发过程更多的注重开发流程,合理、科学的开发流程往往可以达到事半功倍的效果。

假设你现在某从事嵌入式产品开发的公司工作,被要求开发一通用的数字电视接收控制器,即通常所说的“机顶盒”,对于机顶盒的开发,请你结合嵌入式系统的设计流程叙述一下将采取的设计开发流程。

(整个流程需包括从产品定义到产品测试和发布)

答:

嵌入式系统设计过程:

(1)系统定义与需求分析

(2)系统设计方案的初步确立

(3)初步设计方案性价比评估与方案评审论证

(4)完善初步方案、初步方案实施

(5)软硬件集成测试

(6)系统功能性能测试及可靠性测试

10

2、利用ARM指令编写一程序求取1+2+3+…+100的累加和,要求求累加和用子程序实现。

(累加数据个数存入R0中,累加结果存R1中;R2作为子程序入口参数,R3作为出口参数。

答:

AREAgainsum,CODE,READONLY

ENTRY

CODE32(1分)

STARTMOVR0,#100

MOVR2,R0(0.5分)

BLG_SUM(1分)

MOVR1,R3(0.5分)

LOOPBLOOP

G_SUMMOVR3,#0(2分)

LOOP1ADDR3,R3,R2

SUBSR2,R2,#1

BNELOOP1

MOVPC,LR(1分)

END

3、用ARM汇编语言编程实现函数:

8X<=11=1053

X、Y为32位无符号二进制整数,其中X、Y分别存储在以X_DATA和Y_DATA为首地址的4个存储单元中。

答:

AREAg_function,CODE,READONLY

ENTRY

CODE32(1分)

STARTADRR0,=X_DATA

LDRR1,[R0](1分)

CMPR1,#1

BHILOOP1

MOVR2,#8(1分)

BFIN

LOOP1CMPR1,#10

BHSLOOP2

MULR2,R1,#5

11

ADDR2,R2,#3(1分)

BFIN

LOOP2MOVR2,#53(1分)

FINADRR0,=Y_DATA

STRR2,[R0](1分)

HEREBHERE

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

当前位置:首页 > 经管营销 > 经济市场

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

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