最新嵌入式系统原理与接口技术习题答案.docx
- 文档编号:11345369
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:26
- 大小:28.48KB
最新嵌入式系统原理与接口技术习题答案.docx
《最新嵌入式系统原理与接口技术习题答案.docx》由会员分享,可在线阅读,更多相关《最新嵌入式系统原理与接口技术习题答案.docx(26页珍藏版)》请在冰豆网上搜索。
最新嵌入式系统原理与接口技术习题答案
《嵌入式ARM基础》习题
第一章
1.1什么是嵌入式操作系统?
答:
嵌入式系统是以应用为中心,以计算机技术为基础,软/硬件可裁减,功能。
可靠性,成本,体积,功耗要求严格的专用计算机系统。
1.2与通用计算机相比,嵌入式系统有哪些特点?
答:
(1).嵌入式系统通常是面向特定应用的;
(2).嵌入式系统是将计算机技术,半导体技术和电子技术与各行各业的具体应用相结合的后的产物,是一门综合技术学科;
(3).嵌入式系统和具体应用有机的结合在一起,它的升级换代也是和具体产品同步进行的,因此嵌入式产品一旦进入市场,就有较长的生命周期;
(4).为了提高执行速度和可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存储于磁盘等载体中;
(5).嵌入式系统本身不具有自主开发能力,即使设计完成以后用户通常也不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。
1.3根据嵌入式的复杂程度,嵌入式系统可分为哪4类?
答:
1.单个微处理器;
2.嵌入式处理器可扩展系统;
3.复杂的嵌入式系统;
4.在制造或过程控制中使用的计算机系统;
1.4举例介绍嵌入式处理器有哪几类?
答:
1.嵌入式微处理器(EmbeddedMicroprocessorUnit,EMPU);
2.嵌入式微控制器;(EmbeddedMicrocontrollerUnit,EMCU)
3.嵌入式DSP处理器(EmbeddedDigitalSignalProcessor,EDSP);
4.嵌入式片上系统(EmbeddedSystemonChip,EsoC);
1.5从硬件系统来看,嵌入式系统由哪几个部分组成?
画出简图。
电源模块
Flash
微处理器
MPU
时钟
RAM
复位
ROM
外设
USB
LCD
keyboard
other
1.6.嵌入式系统中,非数值数据编码主要包括哪几种?
答:
1.字符表示;
2.汉字编码;
3.语音编码;
1.7若在嵌入式系统采用CRC码进行信息传输,接收端接收到的码字为101011,已知生成多项式g(x)=1011,问收到的码字是否正确?
出错的是哪一位?
解:
收到的码字不正确;出错的是第4位。
方法:
(将收到的码字与生成多项式相除,所得结果为0011。
对“CRC出错模式(G(x)=1011)”可查找出出错位为第四位)。
第三章
3.1编写1+2+3+***+100的汇编程序。
AREAEXAMPLE1,CODE,READONLY;定义一个代码段,名称为
;EXAMPLE1
ENTRY;入口
MOVR0,#0;给R0赋值为0
MOVR1,#0;用R1来存放1~100的总和,初
;始化为0
STARTADDR0,R0,#1;用来判断终止的,每次加1
ADDR1,R1,R0;从1加到100
CMPR0,#100;执行R0-100的操作,但不保存,
;只影响CPSR的值
BLTSTART;带符号数小于时跳转到START处
;执行
STOP
BSTOP;死循环
END
3.2如何实现128位数的减法,请举例说明。
AREAEXAMPLE2,CODE,READONLY
ENTRY
START
SUBSR5,R5,R9
SBCSR4,R4,R8
SBCSR3,R3,R7
SBCSR2,R2,R6
STOP
BSTOP
END
3.3将存储器中起始地址M1处的4个字数据移动到M2处。
AREAEXAMPLE2,CODE,READONLY
ENTRY
LDRR0,=0X10;把地址0X10赋给R0
LDRR5,=0X20;把地址0X20赋给R5
START
STMIAR0,{R1-R4};把R1到R2的值依次赋给R0为首地址
;的内存单元中,每次赋完一次值,R0自
;动加1
LDMIAR5,{R1-R4};把R1到R4的值依次赋给以R5为首地
;址的内存单元中,R5每次自动加1
STOP
BSTOP;死循环
END
3.4参考CPSR寄存器中各标志位的含义,使处理器处于系统模式。
AREAEXAMPLE2,CODE,READONLY
ENTRY
START
MOVR0,#0X1F;给R0赋值,2进制为11111
MSRCPSR_c,R0;把CPSR的条件位置1
STOP
BSTOP;死循环
END
3.5用跳转指令实现两段程序间的来回切换。
AREAEXAMPLE5,CODE,READONLY
ENTRY
BLa;跳到a对R0,R1,赋值
START
CMPR0,R1;比较R0,R1的值
BNEb;不等是跳转到b
BEQSTOP;相等时跳转到STOP
a
MOVR0,#3;对R0,R1赋值
MOVR1,#2
MOVR15,R14;返回
b
ADDR1,R1,#1;R1自加1
BSTART;跳转到START
STOP
BSTOP;死循环
END
第四章
4.1什么是伪指令和伪操作?
在ARM汇编中有哪几种伪指令?
答:
在ARM汇编语言程序中有些特殊助记符,这些助记符与一般指令的助记符的不同之处在于没有相对应的操作码或者机器码,通常称这些特殊指令助记符卫伪指令,他们多完成的操作成为伪操作;
在ARM汇编中,有如下几种伪指令:
(1)符号定义伪指令;
(2)数据定义伪指令;
(3)汇编控制伪指令;
(4)信息报告伪指令;
(5)宏指令及其他伪指令。
4.2如何定义寄存器列表,试举一个使用寄存器列表的例子,要求实现4个字的内存复制。
答:
AREAEXAMPLE1,CODE,READONLY
ENTRY
LDRR0,=0XFF;把地址0XFF赋给R0
LDRR5,=0X0F;把地址0X0F赋给R5
START
PBLOCKRLIST{R1-R4};把R1-R4定义为PBLOCK
STMIAR0,PBLOCK;把R1到R2的值依次赋给
;R0为首地址
;的内存单元中,每次赋完一次
;值自动加1
LDMIAR5,PBLOCK;把R1到R4的值依次赋给以R5
;为首地址的内存单元中,R5每
;次自动加1
STOP
BSTOP;死循环
END
3.4参考CPSR寄存器中各标志位的含义,使处理器处于系统模式。
AREAEXAMPLE2,CODE,READONLY
ENTRY
START
MOVR0,#0x1F
MSRCPSR_c,R0
STOP
BSTOP
END
4.3如何定义一个宏,宏与子程序的区别是什么?
答:
宏的格式为:
MARCO和MEND
[$标号]宏名[$参数1,$参数2…..]
指令序列
MEND
MARCO表示一个宏定义的开始,MEND表示一个宏的结束,MARCO和MEND前呼后应可以将一段代码定义为一个整体,又称宏,然后在程序中就可以在程序中通过宏的名称及参数调用该段代码。
宏指令可以重复使用,这一点的使用方式与子程序有些相似,子程序可以节省存储空间,提供模块化的程序设计。
但使用子程序机构时需要保存/恢复现场,从而增加了系统的开销,因此,在代码传递的参数较多并且比较短时,可以使用宏代替子程序,宏在被调用的地方展开。
4.4ARM汇编中如何定义一个段,段有几种属性?
答:
AREA用于定义一个代码段,数据段,或者特定属性的段。
段的几种属性如下:
READONLY表示只读属性;
READWRITE表示本段可读写;
CODE定义代码段;
DATA定义数据段;
ALIGN=表达式的对齐方式为2的表达式次方;;
COMMON:
定义一个通用段,这个段不包含用户代码和数据。
4.5在一个汇编源文件中如何包含另一个文件中的内容?
答:
通常可以使用GET/INCLUDE指令,在某源文件中定义一些宏指令,用MAP和FIELD定义结构化数据结构类型,用EQU定义常量的符号名称,然后用GET/INCLUDE将这个源文件包含到其他源文件中。
4.6分别编写一个函数和一个宏,实现字符串的复制。
MACRO
COPY$P1,$P2;定义一个宏
$P1DCB"HELLO";分配一个字节的空间,并初始化为一个
;字符串
$P2DCB"WORLD!
";同上
LDRR0,=$P1;把P1的首地址加载到R0
LDRR6,=$P2;把P2的首地址加载到R1
LDRIAR0,[R1-R5];把R0每载一次,自加一次
;实现把P1加载到R0
STRIAR6,[R1-R5];同理(上)
MEND
AREACOPY,CODE,READONLY
ENTRY
START
MACROSTR1,STR2;调用宏
BSTART;死循环
END
4.7解释归纳变量,同族的归纳变量及基本的归纳变量。
4.8试将下面这段C代码翻译为等效的汇编代码:
intFactorial(int)//计算i阶乘
{If(i==0)
{Return1;
}
Returni*Factorial(i-1);
}
}
解:
该段C代码等效汇编为:
iEQUR1
AREAEXAMPLE,CODE,READONLY
ENTRY
BLDATA;跳到DATA取值
START
[i=1;如果i=1
MOVR3,#1;R3用来存放阶乘的值,值为1
BEXIT;跳到死循环
|
[i=0
MOVR3,#1
BEXIT
|Ba;否则跳到a
]
]
a
MOVR4,R1;R4=i
MOVR2,#i-1;R2=i-1
SUBTRACT
MULR3,R4,R2;R3=R4*R2,即,R3=i*(i-1)
MOVR4,R3;把R3的值给R4,因为MUL指令前两个寄存器不能一样
SUBR2,R2,#1;R2=R2-1
CMPR2,#0;比较R2是否为0
BNESUBTRACT;不为0则跳到SUBTRACT处
BEQEXIT;如果为0则跳到EXIT处
DATA
MOVR0,#0;用MOV赋值
MOVR1,#i
MOVR3,#0
MOVR15,R14;返回
EXIT
BEXIT;死循环
END
4.8用汇编语言编写一个函数实现数据块复制的功能,以字为单位。
答:
AREAEXAMPLE2,CODE,READONLY
ENTRY
LDRR0,=0XFF;把地址0X10赋给R0
LDRR5,=0X0F;把地址0X20赋给R5
START
STMIAR0,{R1-R4};把R1到R2的值依次赋给R0为首地址
;的内存单元中,每次赋完一次值,R0自
;动加1
LDMIAR5,{R1-R4};把R1到R4的值依次赋给以R5为首地
;址的内存单元中,R5每次自动加1
STOP
BSTOP;死循环
END
4.9举例说明在高速缓存命中率低时对程序性能的影响。
答:
高速缓存的命中率随缓冲区的增加而提高。
高速缓存的命中减少了对磁盘的访问,并因此提高了系统的整体性能。
如果高速缓存的命中率降低,高速缓存对CPU的有效访问就会减弱,系统运行就会变慢,程序的运行就会变慢。
第1章
(1)嵌入式系统的定义是什么?
嵌入式系统具有哪些主要特点?
目前最通用的定义为:
“以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
”
答:
更为广泛的概念:
“除通用计算机系统外,一切智能的电子设备都属于嵌入式设备”。
主要特点如下:
?
在硬件上,嵌入式系统至少拥有一个高性能处理器作为硬件平台(目前以32位处理器为主流),如ARM、MIPS等处理器。
?
在软件上,嵌入式系统拥有一个多任务操作系统为软件系统平台,如Linux、WinCE、Symbian、μc/osII、VxWork等。
(2)嵌入式系统与传统的单片机系统在软件和硬件上有哪些主要的不同?
答:
(1)在硬件上,嵌入式系统至少拥有一个高性能处理器作为硬件平台,而单片机系统一般为8位处理器和16位处理器。
(2)在软件上,嵌入式系统拥有一个多任务操作系统为软件系统平台,单片机系统则一般为单任务软件。
(3)常见的处理器有哪些类型,各有什么特点。
各类处理器主要应用在哪些领域?
答:
微控制器:
微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高。
微控制器的片上外设资源一般比较丰富,适合于控制。
数字信号处理器:
在系统结构和指令算法方面进行了特殊设计,数字信息信号处理器在数字滤波、FFT、谱分析等各种仪器上获得了大规模的应用。
微处理器:
以最低的功耗和资源实现嵌入式应用的特殊要求。
和工业控制计算机相比,嵌入式微处理器具有体积小、重量轻、成本低、低功耗、可靠性高的优点。
片上系统:
主要特点包括
(1)改变内部工作电压,降低芯片功耗。
(2)减少芯片对外管脚数,简化制造过程。
(3)减少外围驱动接口单元及电路板之间的信号传递,可以加快微处理器数据处理的速度。
(4)内嵌的线路可以避免外部电路板在信号传递时所造成干扰信号。
(4)在嵌入式系统中,操作系统具有怎样主要功能和特点?
答:
?
方便用户使用,OS应该使计算机系统使用起来十分方便。
?
扩展机器功能,OS应该对系统硬件功能进行充分融合利用,扩充机器功能。
?
管理系统资源,OS应该管理好系统中的所有硬件软件资源。
?
提高系统效率,OS应该充分利用计算机系统的资源,提高计算机系统的效率。
?
构筑开放环境,OS应该构筑出一个开放环境。
?
支持体系结构的可伸缩性和可扩展性,支持应用程序在不同平台上的可移植性。
(5)常见的实时操作系统有哪些,各有什么特点,具体应用在哪些领域?
答:
Vxworks操作系统
WinCE操作系统
Symbian操作系统
Linux操作系统
μC/OS
(6)在设计嵌入式系统时,在选择嵌入式处理器和实时操作系统时,分别考虑哪些主要因素?
答:
在嵌入式系统设计时,以满足系统要求为依据。
在选择处理器时,主要考虑功能、功耗、体积、可靠性等因素,在选择操作系统时,主要考虑操作系统的实时性,可靠性,可裁剪性等。
第2章
(1)以ARM为内核的32位微处理器主要有哪些特点,在ARM内核处理器命名上,T、D、M、I、E、S和J各代表什么意义?
答:
T表示支持16位Thumb指令集;
D表示支持在线Debug;
M表示内嵌乘法器Multiplier;
I表示嵌入式ICE,支持在线断点和调试;
E表示DSP指令,支持DSP的特定指令,主要是16bit;
S表示具有可综合功能,提供VHDL或者Verilog语言设计,可以实现自己特定的硬件;
J表示支持新的JAVA功能。
(2)通用计算机与嵌入式处理器各采用哪种CPU架构,这两类在CPU架构主要有哪些不同?
答:
通用计算机:
采用冯诺依曼结构的微处理器的程序空间和数据是合在一起的,即取指令和取操作数都是在同一条总线上,通过时分复用的方式进行的。
大多数嵌入式处理器:
采用哈佛总线结构的芯片内部程序空间和地址空间是分开的,这就允许同时取指令(来自程序空间)和同时取操作数(来自数据空间)。
(3)通用计算机与嵌入式处理器各采用哪种指令集,这两类指令集有哪些不同?
答:
通用计算机:
复杂指令系统计算机(CISC)包含一个丰富的微代码系统,简化了处理器上运行程序的编制.主要有以下几个特点:
?
具有大量的指令和寻址方式;
?
大多数程序只使用少量的指令就能够运行。
绝大多数嵌入式处理器:
精简指令系统计算机(RISC)有一个精简的指令系统。
从而提高了微理器的效率,但需要更复杂的外部程序,也就是把在处理器层没有完成的工作放到了上层进行,而处理器层少的这些成本可以用对物理器件速度的提高上去。
RISC有下特点:
?
8/2原则:
80%的程序只使用20%的指令;
?
采用Load/store指令模式,凡数据由外存到内存、内存到寄存器方向的流动统一用Load指令,而对于反方向的操作,都用store;
?
用小指令集、多寄存器、指令执行简单快速;
?
统一用单周期指令,从根本上克服了CISC指令周期数有长有短、偶发性不确定、运行失常的缺点。
(4)ARM7、ARM9内核处理器各采用几级流水线,分别是哪几级流水线结构?
答:
ARM7TDMI采用三级流水线,分另为取指令、解码指令和执行操作。
ARM9TDMI采用5级流水线结构,分别为取指令、译码、执行、存储、写操作五级。
(5)从内部结构及功能来看,ARM7、ARM9、Xscal内核处理器各自有哪些不同,主要应用在哪些领域?
答:
ARM7内部结构框图,包括AddressRegister(地址寄存器)、AddressIncrementer(地址累加器)、ResisterBank(寄存器块)、Booth’sMultiplier(乘法器)、32位ALU单元、Write/ReadDataRegister(读/写数据寄存器)、逻辑控制单元等部分。
没有内存管理单片。
ARM9TDMI处理器内核采用ARMV4T架构,增加了可用的存储器宽度、指令存储器接口以及数据存储器接口,可以支持16bitThumb指令集和32btiARM指令,ARM9作为高性能的32位RISC处理器内核,可以实现对指令和数据存储器的同时访问。
如图2-9所示为ARM9功能结构图。
主要包含以下结构:
?
16KB指令和16KB数据缓存;
?
存储管理单元MMU,这有别于ARM7TDMI;
?
一个AMBA?
(AdvancedMicroprocessorBusArchitecture)总线接口;
?
一个EmbeddedTraceMacrocell(ETM)接口。
有内存管理单元,便于移植操作系统。
第3章
(1)试列举ARM处理器工作模式,各工作模式主要完成怎么样的功能?
答:
User:
用户模式。
绝大部分的任务执行都在这种操作模式下,此为正常的程序执行模式。
FIQ:
快速中断模式。
当一个高优先级中断产生时,系统将会进入这种操作模式,用于高速数据传输和通道处理,由FIQ请求位发出请求信号。
IRQ:
普通中断模式。
当一个低优先级中断产生时将会进入这种操作模式,本模式用于通常的中断处理,由IRQ请求位发出请求信号。
Supervisor:
管理模式。
当复位或软中断指令执行时将会进入这种操作模式,是一种可以供操作系统使用的保护模式。
Abort:
中止模式。
当存取异常时将会进入这种操作模式,此模式可以被用作虚拟存储及存储保护,可由ABORT请求位发出请求信号。
Undef:
未定义模式。
当执行未定义指令时会进入这种操作模式,多被用于软件仿真硬件协处理器时。
(2)试列举ARM处理器各寄存器功能,在不同的模式下可以访问哪些寄存器?
答:
1个寄存器用作PC(ProgramCounter),即程序寄存器,指向程序执行位置。
1个寄存器用作CPSR(CurrentProgramStatusRegister),即当前状态寄存器,保存当前CPU状态。
5个寄存器用作SPSR(SavedProgramStatusRegisters),备份不同模式下CPSR的值。
30个寄存器作为通用寄存器,存储数据使用。
(3)试说明CPSR寄存器各位功能。
答:
标志位含义
NN=1表示运算的结果为负数;N=0表示运算的结果为正数或零
ZZ=1表示运算的结果为零;Z=0表示运算的结果为非零
CC=1表示有进位,C=0表示没有进位
VV=1表示符号位溢出,V=0表示结果没有溢出
Q在ARMvTE/J架构支持,指示DSP指令是否溢出
J仅ARM5TE/J架构支持,J=1表示处理器处于Jazelle状态
II=1表示禁止IRQ
FF=1表示禁止FIQ
T仅ARMxT架构支持,T=0表示处理器处于ARM状态,T=1表示处理器处于Thumb状态
(4)试列出ARM处理器常见中断方式,并说明ARM处理器在响应这些中断时要经历哪些主要步骤?
答:
异常类型具体含义
FIQ当处理器的快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常
IRQ当处理器的外部中断请求引脚有效,且CPSR中的I位为0时,产生IRQ异常
异常中断当外部的ABORT输入产生时,发生异常断
软件中断该异常由执行SWI指令产生,可用于用户模式下的程序调用特权操作指令,可使用该异常机制实现系统功能调用
复位当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行
未定义指令当ARM处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。
可使用该异常机制进行软件仿真
ARM处理异常时,将立即通过备份寄存器保存当前CPU的状态。
PC和CPSR寄存器中的内容被分别拷贝到R14和SPSR中,PC和CPSR中的模式位M[0:
4]根据异常类型被强制改变。
在异常中断处理中,如果要禁止其它难以管理异常的嵌套,可以置位中断标志位禁止再次中断请求。
在需要重复进入中断处理程序的情况下,R14和SPSR应该在中断被使能之前保存到主存储的堆栈中;当传送SPSR寄存器到堆栈或者从堆栈传送时,需要注意的是必须传送整个字(32位)。
当多个异常同时产生时,优先级决定异常响应的顺序。
异常处理完毕之后,ARM微处理器将连接寄存器LR的值减去相应的偏移量后送到PC中,同时将SPSR复制回CPSR中,若在进入异常处理时设置了中断禁止位,要在此清除。
(5)为什么说ARM处理器是32位处理器,主要体现在哪些方面,其汇编采用怎样的指令编码格式?
答:
数据线32位,寄存器32位,编码32位。
(6)试列出16类指令条件域所对应的CPSR寄存器相应位状态。
答:
条件码助记符后缀标志含义
0000EQZ置位相等
0001NEZ清零不相等
0010CSC置位无符号数大于或等于
0011CCC清零无符号数小于
0100MIN置位负数
0101PLN清零正数或零
0110VSV置位溢出
0111VCV清零未溢出
1000HIC置位Z清零无符号数大于
1001LSC清零Z置位无符号数小于或等于
1010GEN等于V带符号数大于或等于
1011LTN不等于V带符号数小于
1100GTZ清零且(N等于V)带符号数大于
1101LEZ置位或(N不等于V)带符号数小于或等于
1110AL忽略无条件执行
(7)ARM处理器主
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 嵌入式 系统 原理 接口 技术 习题 答案