嵌入式习题复习资料Word文档格式.docx
《嵌入式习题复习资料Word文档格式.docx》由会员分享,可在线阅读,更多相关《嵌入式习题复习资料Word文档格式.docx(27页珍藏版)》请在冰豆网上搜索。
片内一般以或为主。
片外通常以和为主。
嵌入式系统中常用的几种内存有、、、等。
5.
嵌入式系统中常用的外设接口都有哪些?
串行接口,接口,红外线接口,(串行外围设备接口),I2C总线接口,总线接口,(以太网接口)等。
6.
嵌入式系统中常用的输入输出设备都有哪些?
嵌入式系统中输入形式一般包括触摸屏、语音识别、按键、键盘和虚拟键盘。
输出设备主要有显示和语音输出。
7.
简述嵌入式操作系统的特点,请列举几个常见的嵌入式操作系统。
(1)可装卸性
(2)强实时性(3)统一的接口(4)强稳定性,弱交互性(5)固化代码。
常见的嵌入式操作系统有、、μ、嵌入式。
8.
简述嵌入式系统开发的特点。
需要交叉开发工具和环境,软硬件协同设计,嵌入式系统开发人员以应用专家为主,软件要求固态化存储,软件代码高质量、高可靠性,系统软件的高实时性
9.
简述嵌入式系统的开发周期。
10.
简述嵌入式系统的开发与通常机上的软件开发有什么区别。
系统软件开发模式可以分为两类:
本地开发模式和交叉开发模式。
嵌入式系统的开发与通常机上的软件开发有很大的区别,原有的机的软件开发过程从编写程序、编译和运行等过程全在同一个机平台上完成,属于本地开发();
嵌入式开发的程序编写和编译与原来一样还在机()上完成,但编译产生的结果要在嵌入式目标平台()上运行。
通常将这种在主机上开发编译,在目标平台上调试运行的开发模式称为交叉开发。
同样运行在主机上的编译器(例如)编译程序产生目标机上运行的可执行程序的编译过程称为交叉编译。
嵌入式系统采用这种交叉开发、交叉编译的开发环境主要是因为嵌入式系统是种专用的计算机系统,采用量体裁衣量身定制的方法制造。
11.
简述宿主机/目标机的开发模式。
交叉开发环境是指编译、链接和调试嵌入式应用软件的环境,它与运行嵌入式应用软件的环境有所不同,通常采用宿主机/目标机模式。
宿主机()一般采用一台通用计算机(如机或者工作站),它通过串口()或者以太网()接口与目标机通信。
宿主机的软硬件资源比较丰富,不但包括功能强大的操作系统(如和),而且还有各种各样优秀的开发工具(如的、的等),能够大大提高嵌入式应用软件的开发速度和效率。
目标机()一般在嵌入式应用软件的开发和调试期间使用,用来区别与嵌入式系统通信的宿主机。
目标机可以是嵌入式应用软件的实际运行环境,也可以是能够替代实际运行环境的仿真系统,但软硬件资源通常都比较有限。
嵌入式系统的交叉开发环境一般包括交叉编译器、交叉调试器和系统仿真器(),其中交叉编译器用于在宿主机上生成能在目标机上运行的代码,而交叉调试器和系统仿真器则用于在宿主机与目标机间完成嵌入式软件的调试。
第三章习题答案
简述处理器的特点。
处理器采用架构,具有的一般特点:
●
采用大量的寄存器,指令执行速度更快;
寻址方式灵活简单,执行效率高;
采用固定长度的指令格式;
大多数数据操作都在寄存器中进行,通过的体系结构在内存和寄存器之间传递数据。
因此处理器的内核很小,功耗也就很低。
处理器还采用了一些特别的技术,在保证高性能的同时尽量减小芯片体积,降低芯片的功耗。
这些技术包括:
在同一条数据处理指令中包含算术逻辑处理单元处理和移位处理;
使用地址自动增加(减少)来优化程序中循环处理;
指令可以批量传输数据,从而提高传输数据的效率;
所有指令都可以根据前面指令执行结果,决定是否执行,以提高指令执行的效率;
支持(16位)(32位)双指令集,能很好地兼容8位/16位器件。
嵌入式处理器7中的基本含义分别是什么?
T:
支持16位压缩指令集。
D:
支持调试器,可片上。
M:
支持64位长乘法指令I:
嵌入式跟踪宏单元()。
常用的处理器系列都有哪些?
处理器目前应用比较多的是7系列、9系列、9E系列、10E系列、系列、的、等多个系列,最新的系列是11系列。
处理器一般支持的的数据类型都有哪些?
8位有符号字节类型数据;
8位无符号字节类型数据;
16位有符号半字类型数据;
16位无符号半字类型数据;
32位有符号字类型数据;
32位无符号字类型数据。
什么是大端模式?
什么是小端模式?
请举例说明它们的区别。
所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中。
所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。
若寄存器R1=0x12345678,分别按小端模式和大端模式存储在0x2000字单元中,下图分别为在两种模式下内存的存储内容。
6.请简述7采用哪几级流水线结构,并说明在状态下各阶段指令地址的关系。
7架构采用了三级流水线,分为取指(),译码()和执行()。
程序计数器R15()总是指向取指的指令,而不是指向正在执行的指令或者正在译码的指令。
对于状态下指令,值=当前程序执行位置。
简述和状态的区别,举例说明使用什么指令从状态转换为状态。
状态:
处理器执行32位的字对齐的指令;
处理器执行16位的半字对齐的指令。
指令集和指令集均有切换处理器状态的指令。
从状态转换到状态:
R0,1
R0
8.处理器有哪些工作模式?
哪些是特权模式?
哪些是异常模式?
体系结构支持7种工作模式(),分别为用户模式()、快中断模式()、中断模式()、管理模式()、数据访问终止模式()、系统模式()、及未定义指令中止模式()。
除去用户模式外的其他6种处理器工作模式称为特权模式()。
除去用户模式和系统模式以外的5种处理器工作模式称为异常模式()
9处理器共有多少个寄存器?
在所有工作模式下,哪些寄存器都指向同一个物理寄存器?
处理器含有37个物理上独立的寄存器,其中包括31个通用寄存器和6个状态寄存器。
R012寄存器在所有工作模式下都指向同一个物理寄存器。
10.简述寄存器控制位的作用。
(1)中断禁止位I、F:
1禁止中断;
1禁止中断。
(2)T标志位:
该位反映处理器的运行状态。
当该位为1时,程序运行于状态,当该位为0时,表示运行于状态。
(3)运行模式位M[4:
0]:
M0、M1、M2、M3、M4是模式位。
这些位决定了处理器的运行模式。
11.的异常中断包含哪些类型?
它们的优先级顺序是怎样的?
它们的异常向量地址是多少?
12.当处理异常时,内核会做哪些处理?
处理器对异常中断的响应过程如下:
(1)保存处理器当前状态、中断屏蔽位以及各条件标志位。
这是通过将当前程序状态寄存器的内容保存到将要执行的异常中断对应的寄存器中实现的。
各异常中断有自己的物理寄存器。
(2)设置当前程序状态寄存器中相应的位。
包括设置中的控制模式位,使处理器进入相应的执行模式;
设置中的中断禁止位,如果进入模式时,禁止中断,如果当进入模式时,禁止中断。
(3)将寄存器设置成返回地址。
(4)将程序计数器值()设置成该异常中断的中断向量地址,从而跳转到相应的异常中断处理程序执行。
13.
当异常结束时,内核会做哪些处理?
系统处理完中断后从异常中断处理程序中返回包括下面的步骤:
(1)恢复被中断的程序的处理状态,即将寄存器内容复制到当前程序状态寄存器中。
(2)返回到发生异常中断的指令的下一条指令处执行。
即将寄存器的内容复制程序计数器中。
因为整个应用系统是从复位异常中断处理程序执行的,所以复位异常中断处理程序不需要返回。
第四章习题答案
请列举处理器的指令寻址方式。
哪种寻址方式是指令集特有的寻址方式?
处理器具有9种基本寻址方式,分别为立即寻址、寄存器寻址、寄存器移位寻址、寄存器间接寻址、基址寻址、多寄存器寻址、堆栈寻址、块拷贝寻址、相对寻址。
寄存器移位寻址是指令集特有的寻址方式。
在数据处理指令中,第二个操作数都有哪几种形式?
第2个操作数的三种形式如下。
立即数,例如:
R00x0000F200;
寄存器方式,例如:
R1,R1,R2;
寄存器移位方式,例如:
R112R3。
请分别写出调用子程序、子程序返回所使用的指令,并简述所用指令的工作过程。
用指令调用子程序。
指令先将下一条指令的地址拷贝到R14(即)连接寄存器中,然后跳转到指定地址运行指令。
子程序返回的指令是:
。
4.如图:
存储器地址4010H,4014H,4018H的内容分别为1,2,3。
寄存器R1,R2,R3的值都为0。
R0的值为0x4010。
问:
给出指令执行后,寄存器R0123的结果。
(:
每次传送后地址加4)
R0!
{R13}
5.阅读下面程序,并回答问题。
1;
声明代码段1
;
标识程序入口
32
R020
(1)
R110
R50x12345678
(2)
R250x20(3)
R20(4)
R001(5)
R111(6)
B
;
文件结束
a)
请回答汇编语句
(1)
(2)(3)(4)(5)(6)的含义。
b)
此程序实现什么功能?
语句
(1)把常数20送到R0;
语句
(2)使用伪指令把常数0x12345678送到R5;
语句(3)将R5中的数据与0x20相与,影响标志位;
语句(4)将R2的数据与0比较;
语句(5)如果相等R0加1;
语句(6)不相等R1加1(6分)
测试数据0x12345678的[4](第五位)。
如果是0,R0中的数据20加1。
如果是1,R1中的数据10加1。
(2分)
6.
用汇编语言编写程序,求1到50的累加和。
1
32
R50x40003005
R00
R11
LOOP
BLOOP
R001
R111
R150
R0,[R5]
B.
7.
请说明汇编语句R2,[R04]和R2,[R04]!
的区别。
8[R0+4]2;
R0不变
32[R0+4]=R2;
R00+4
32[]表示存储器的存储单元中存放的32位字数据,16[]表示存储器的存储单元中存放的16位半字数据,8[]表示存储器的存储单元中存放的8位字节数据
8.请说明指令和指令在传送立即数时,使用方法的区别。
传送8位位图数据,例如:
R1,#0000000;
伪指令传送32位立即数,例如:
R00x12345678。
9.请列举处理器的四种堆栈类型,并说明它们的特点和区别。
(1)满递增堆栈:
堆栈指针指向最后压入的数据,且由低地址向高地址生长。
(2)满递减堆栈:
堆栈指针指向最后压入的数据,且由高地址向低地址生长。
(3)空递增堆栈:
堆栈指针指向下一个将要放入数据的空位置,且由低地址向高地址生长。
(4)空递减堆栈:
堆栈指针指向下一个将要放入数据的空位置,且由高地址向低地址生长。
10.可以对状态寄存器操作的指令都有哪些,如何使用。
指令集提供了2条指令,可直接控制程序状态寄存器(,)。
指令用于将或的值传送到通用寄存器中。
指令与之相反,用于将通用寄存器的内容或者立即数传送到到或中。
例如:
R1,
,,#0x80;
0b0l000000
,
练习题
阅读下面程序,并回答问题。
1;
32
R00x40001000
(1)
R10x2000
(2)
R1,[R0](3)
R212(4)
R2,[R04](5)
B.
;
程序中分号的作用是什么?
请回答汇编语句
(1)
(2)(3)(4)(5)的含义。
c)
如果将汇编语句(5)R2,[R04]改为R2,[R04]!
,有什么不同?
答案
分号后面的内容是对程序的注释。
语句
(1)使用伪指令将地址数据0x40001000送入R0;
语句
(2)将常数0x2000送入R1;
语句(3)将数据0x2000存储到地址为0x40001000的存储空间中;
语句(4)将R1中的数据减2,结果0x1送到R2;
语句(5)将数据0x1的低位字节数据0存储到地址为0x40001004的存储空间中。
R2,[R04]执行后,R0的值为0x40001000;
R2,[R04]执行后,R0的值为0x40001004。
第五章习题答案
简述内核的特点。
的体系结构是基于的,是处理器的一种,所以具有的基本特性。
的超流水线()技术,主频高达600以上。
高效的存储器体系结构,主要包括32、32、2、、以及4.8带宽的存储总线,使处理器可以高效访问存储器。
实现了基于统计分析的分支预测功能部件。
对的乘加逻辑进行了增强,增加了8条指令。
简述270处理器的结构和主要的通信模块。
520M运行能力;
构架,并带有无线指令集;
7级流水线;
32的指令,32的数据,2微型数据;
外部扩充存储器控制器;
256内部;
丰富的串行接口:
97;
;
,;
3个,红外通讯接口;
标准,支持边界扫描;
实时时钟和系统时钟;
中断控制器;
控制器;
支持4个,最高可以运行在104M。
外部可以是2.5V3.0V或3.3V;
支持;
/();
2个;
3个;
接口;
121个多功能;
4种模式;
4个
简述模块的特点。
270处理器提供121个多功能输入/输出引脚,除了可以选择作为基本输入/输出使用外,还可以选择它的复用功能,复用功能包括串口通信接口,定时器输出,外部中断等。
当多功能输入/输出引脚作为高速的通用接口时,可以用来生成和捕捉外设的输出和输入信号。
每个引脚通过编程控制可实现输出或输入功能。
当引脚作为输入时,通过设置上升或下降沿检测,可作为一个中断源来使用。
模块中如何选择引脚的功能,举例说明。
通过寄存器和来选择引脚功能,在使用寄存器设置引脚功能之前,必须先通过寄存器设置引脚的方向。
设定将118为输出引脚,首先利用寄存器3设定118是输出引脚,当3的[13:
12]=01时,将118复用为输出引脚。
代码如下:
3=3|(0x01<
<
22);
3=3&
(~(0x11<
12))|(1<
12);
编写程序代码,实现设置8和41为输出功能,8为低电平输出,设置41为高电平输出。
0(*((*)(0x40E0000C)))
1(*((*)(0x40E00010)))
0(*((*)(0x40E00024)))
1(*((*)(0x40E0001C)))
0=0|(0x01<
8);
1=1|(0x01<
9);
270有几个单元,各有什么用途?
270有三个单元。
全功能:
支持调制解调器控制功能,最高波特率可达到921600。
蓝牙:
是一个高速的,所支持的波特率可达到921600,并且可以连接到蓝牙模块,但只支持调制解调器控制信号中的和信号。
标准:
的最高波特率可达到921600,但不支持调制解调器控制信号。
串行通讯的传输模式有哪些?
简述232C接口的通信原理。
串行通讯的传输模式有三种:
单工、半双工和双工。
232是全双工的数据发送模式,利用232通信时,仅适用3根基本的数据传输线有:
、、。
(发送线):
数据发送信号线,数据由该脚发出,送上通信线,没有数据传输时,逻辑电平为“1”;
(接收线):
数据接收信号线,从通信信号线来的数据,从该脚引入,在无信息时候,逻辑电平为“1”;
(地线):
参考地信号线,为其他信号线提供电平参考。
简述模块的通信原理。
每个能将从端接收的串行数据转变为并行的数据,并且能够将来自处理器的并行数据转化串行数据,然后通过端发送出去。
根据是否在模式下执行,发送和接收的数据会有选择的锁存在发送/接收。
例如,当在接收数据时,来自端的数据首先会经过接收移位寄存器,然后组织成一个字节的数据,如果运行在模式,数据会首先锁存在接收里,同时接收缓冲寄存器会保存第一字节单元数据,的内容可以通过连续读取获得,每读写完一次后,第一字节单元数据会被移出。
当收到来自总线的并行数据时,数据首先进入发送缓冲寄存器,如果工作在模式,数据会再被锁存在发送,最后才被送入发送移位寄存器,将并行数据以逐位方式在端发送出去,每次向写入的数据(有效数据最长为8位)会被送入,只有的第一字节单元会被送入发送移位寄存器里,并且在里还未发送的数据会逐渐上移到第一字节单元。
无论是接收还是发送,当运行在-方式时,数据不会被锁存在,而只会被锁存在寄存器或,可以简单认为在-时,和分别与接收移位寄存器和发送移位寄存器直接相连。
使用进行异步传输数据,以波特率为9600传送数据,则寄存器和应如何设置?
波特率发生器的时钟通过270的内部系统时钟来设定,采用14.7456作为固定的输入时钟,并且可以对它以1至(216-1)分频。
波特率发生器的时钟必须是波特率的16倍,波特率()可以通过以下公式计算:
以波特率为9600传送数据,即9600,经公式计算得96,配置0X0,0x60。
10.请编写使用采用查询方式发送/接收数据的函数。
(1)接收数据函数
(*c)
{
((&
0x00000001)0)
{
0;
}{
*c=;
1;
}
}
(2)发送数据函数
(c)
{
0x00000020)0);
=(()c&
0);
('
\n'
)
('
\r'
);
}
(*)
((*())'
\0'
{
(*());
;
}
11.简述270中断控制器的内部结构。
270中断控制器,通过设置寄存器屏蔽中断源。
通过设置寄存器对中断源分类,即可以让中断源发出的中断请求以中断方式或以中断方式被处理。
查询寄存器得知32个中断源当前是否有中断请求,在寄存器上显示发出中断请求的中断源不受影响,即即使屏蔽某个中断源,只要中断源发出中断请求,仍然会在相应的位上显示“1”。
查询寄存器得知以方式被处理的中断源是否发出中断请求,该寄存器受到影响。
即=&
&
(~)。
&
。
第六章习题答案
简述基于270处理器的270开发平台,开发嵌入式系统的交叉开发环境的搭建过程。
构建基于嵌入式的交叉编译环境的构建过程主要包括以下几方面的内容。
第一:
安装一台装有指定操作系统的机作宿主开发机,宿主机器在硬件上需具备标准串口、并口和网口,对于嵌入式,宿主机上的操作系统一般要求为,在此,我们推荐使用9.0作为宿主机(开发主机)的操作系统。
第二:
检测目标机与宿主机的连接,通过串口实现通信,查看目标机系统的内容。
在下使用超级终端,在下使用。
第三:
在宿主机上建立交叉编译环境。
利用编译器的交叉编辑工具链,生成可在系统架构上执行的二进制可执行程序。
第四:
实现目标机与宿主机之间文件的传输。
设置统一段的网络,通过网络文件共享文件,网络传输上传下载文件。
第五:
烧写嵌入式内核、、文件系统映像以及应用程序到目标板。
软件的更新通常使用串口或网口,最初的烧写是通过并口进行的。
宿主机上如何查看270目标板系统的内容?
在操作系统安装完成后,就可以使用下的来检测宿主机和目标机的连接。
在下面可使用超级终端。
如何测试交叉编译环境是否建立成功?
首先,使用编辑器创建一个文件。
[270]#
编写一个简单的程序来打印出一行简单的信息:
!