嵌入式考试题.docx
- 文档编号:30220176
- 上传时间:2023-08-07
- 格式:DOCX
- 页数:20
- 大小:65.61KB
嵌入式考试题.docx
《嵌入式考试题.docx》由会员分享,可在线阅读,更多相关《嵌入式考试题.docx(20页珍藏版)》请在冰豆网上搜索。
嵌入式考试题
1.嵌入式系统是以应用中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
2.在嵌入式系统设计过程中,需求分析包括:
功能性需求分析和非功能性需求分析。
3.ARM字数据存储格式有:
大端格式和小端格式。
4.总线按照传输关系分类可分为:
主从结构和对等结构。
5.RS-232C的帧格式由四部分组成,包括:
起始位、数据位、奇偶校验位和停止位。
6.USB低速设备应该在D-线上接一个上拉电阻,全速设备应该在D+线上接一个上拉电阻。
7.I/O接口电路数据传送方式有:
查询、中断、DMA、I/O通道和I/O处理机方式。
实时系统的关键问题是保证系统的实时性;实时操作系统就是指具有实时性、能支持实时系统工作的操作系统。
实时操作系统的评价指标有:
任务调度算法、上下文切换时间、确定性、最小内存开销和最大中断禁止时间。
1.下面哪个系统属于嵌入式系统。
(D)
A、“天河一号”计算机系统B、联想T400笔记本计算机
C、联想S10上网本D、联想OPhone手机
2.软硬件协同设计方法与传统设计方法的最大不同之处在于(B)。
A、软硬件分开描述B、软硬件统一描述
C、协同测试D、协同验证
3.下面关于哈佛结构描述正确的是(A)。
A、程序存储空间与数据存储空间分离B、存储空间与IO空间分离
C、程序存储空间与数据存储空间合并D、存储空间与IO空间合并
4.下面哪一种工作模式不属于ARM特权模式(A)。
A、用户模式B、系统模式C、软中断模式D、FIQ模式
5.ARM7TDMI的工作状态包括(D)。
A、测试状态和运行状态B、挂起状态和就绪状态
C、就绪状态和运行状态D、ARM状态和Thumb状态
6.指令“LDMIAR0!
{R1,R2,R3,R4}”的寻址方式为(C)。
A、立即寻址B、寄存器间接寻址
C、多寄存器寻址D、堆栈寻址
7.USB接口移动硬盘最合适的传输类型为(B)。
A、控制传输B、批量传输C、中断传输D、等时传输
8.下面哪一种功能单元不属于I/O接口电路。
(D)
A、USB控制器B、UART控制器
C、以太网控制器D、LED
9.下面哪个操作系统是嵌入式操作系统。
(B)
A、Red-hatLinuxB、µCLinuxC、UbuntuLinuxD、SUSELinux
10.使用Host-Target联合开发嵌入式应用,(B)不是必须的。
A、宿主机B、银河麒麟操作系统
C、目标机D、交叉编译器
简答题
1.简述嵌入式处理器的特点(列出五个特点以上)。
答:
低档处理器多采用哈佛结构,高档处理器多采用冯·诺伊曼结构;品种规格2.系列化;对实时多任务有很强的支持能力;可靠性高、功耗低、集成度高、性价比高。
(每个特点1分)
3.什么是CMOS电平?
有何特点?
答:
发送端:
高电平>0.9Vdd,低电平<0.1Vdd;(2分)
接收端:
高电平>0.7Vdd,低电平<0.3Vdd。
(2分)
特点:
噪声容限大,负载能力强。
(1分)
4.什么是信号的建立时间?
什么是信号的保持时间?
答:
建立时间:
在时钟信号边沿到来之前,数据信号必须提前一段时间保持稳定有效。
(2.5分)
保持时间:
在时钟信号边沿到来之后,数据信号必须在随后的一段时间内保持稳定有效。
(2.5分)
5.什么是非抢先式实时操作系统?
有何优缺点?
它的实时性如何决定?
答:
对于基于优先级的实时操作系统而言,非抢先式实时操作系统是指某个任务运行后,就把CPU控制权完全交给了该任务,直到它主动将CPU控制权还回来。
(2分)
优点:
实时性比不使用实时操作系统的好,程序设计相对简单,可调用不可重入函数(任务间不嵌套)。
(1分)
缺点:
如果最长任务的执行时间不能确定,系统的实时性就不能确定。
(1分)
实时性:
取决于最长任务的执行时间。
(1分)
6.简述优先级倒置产生的条件、现象以及解决方案。
答:
条件:
基于优先级抢先式的任务调度、资源共享。
(1分)
现象:
低优先级任务L和高优先级任务H共享资源,在任务L占有共享资源之后,任务H就绪,但这时任务H必须等待任务L完成对共享资源的操作。
在任务L完成对共享资源的操作之前,任务M也已就绪并将抢先任务L运行。
在任务M运行时,系统中具有最高优先级的任务H仍然保持挂起状态。
(3分)
解决方案:
优先级继承、优先级顶置。
(1分)
7.右下图为USB批量IN传输事务流程图,请根据右下图用文字叙述其工作过程(包括4+2个分支并说明分支出现的原因)。
答:
令牌段:
(2分)
主机发出令牌包,寻址从机。
数据段:
(4分)
从机如果接收令牌包出错,无响应;
从机端点不存在,回送STALL;
从机端点数据未准备好,回送NAK;
从机端点数据准备好,回送数据包。
握手段:
(4分)
主机如果接收数据包出错,无响应;
主机如果接收数据包正确,回送ACK。
请用C语言编写一个简单框架程序(个别地方也可文字叙述),要求体现前后台系统的编程思想(任务就是一个函数,直接调用,无需实现,但至少三个任务),并分析前后台系统的优缺点以及它的实时性如何决定。
答:
后台程序:
voidmain(void)
{Init()//初始化
while
(1)(1分)
{if(eventFlag1)(1分)
task1();
elseif(eventFlag2)(1分)
task2();
elseif(eventFlag3)(1分)
task3();
}
}
前台程序:
__irqvoidHandleFlag1(void)(1分)
{清中断请求标志;
eventFlag1=true;}
__irqvoidHandleFlag2(void)(1分)
{清中断请求标志;
eventFlag2=true;}
__irqvoidHandleFlag3(void)(1分)
{清中断请求标志;
eventFlag3=true;}
优点:
系统结构简单,几乎不需要额外的存储开销。
(1分)
缺点:
所有的任务具有相同的优先级别,任务响应时间不可预测;后台程序是一个无限循环的结构,一旦在这个循环体中正在处理的任务崩溃,使得整个任务队列中的其他任务得不到机会被处理,从而造成整个系统的崩溃。
(1分)
实时性:
取决于所有其它任务的执行时间之和。
(1分)
形形色色的嵌入式系统默默无闻地生活在我们的身边,为我们的学习生活增加了无穷的乐趣。
请列举你所熟悉的五个嵌入式应用系统,并对每个嵌入式系统作简单的分析(指出它为什么是嵌入式系统)。
答:
答案众多(评分标准:
每一个应用2分,其中题目1分,简要分析1分)
U盘(2分);MP3播放器(2分);手机(2分);蓝牙耳机(2分);GPS导航仪(2分)。
等等
简要分析略。
8.从模块结构来看,嵌入式系统由三大部分组成,分别是:
硬件、软件和开发平台。
9.嵌入式系统的设计过程包括:
需求分析、规格说明、体系结构设计、构件设计、系统集成和系统测试。
ARM系列微处理器支持的边界对齐格式有:
字节对齐、半字对齐和字对齐。
10.RAM存储器有两种,分别是:
SRMA和DRAM。
总线由传输信息的物理介质和管理信息传输的协议组成。
采用RS232C实现最简单的双机互联,至少需要如下信号线:
TXD、RXD和GND。
USB通信总线中的事务可能由令牌包、数据包和握手包组成。
11.I/O接口编址方式有两种,分别是:
统一编址和独立编址。
12.在宿主机上使用编译器软件将嵌入式应用、嵌入式操作系统编译成为可以在目标机上运行代码的过程,称为交叉编译,而采用的编译器称为交叉编译器。
13.嵌入式操作系统的内核构成包括系统初始化、多任务管理和内存管理。
14.下面哪个系统不属于嵌入式系统(D)。
A、MP3播放器B、GPS接收机
C、“银河玉衡”核心路由器D、“天河一号”计算机系统
15.在嵌入式系统设计中,嵌入式处理器选型是在进行(C)时完成。
A、需求分析B、系统集成C、体系结构设计D、软硬件设计
16.下面哪一类嵌入式处理器最适合于用于工业控制(B)。
A、嵌入式微处理器B、微控制器
C、DSPD、以上都不合适
17.关于ARM子程序和Thumb子程序互相调用描述正确的是(B)。
A、系统初始化之后,ARM处理器只能工作在一种状态,不存在互相调用。
B、只要遵循一定调用的规则,Thumb子程序和ARM子程序就可以互相调用。
C、只要遵循一定调用的规则,仅能Thumb子程序调用ARM子程序。
D、只要遵循一定调用的规则,仅能ARM子程序调用Thumb子程序。
18.关于ARM处理器的异常的描述不正确的是(C)。
A、复位属于异常B、除数为零会引起异常
C、所有异常都要返回D、外部中断会引起异常
19.下面总线不属于对等结构的是(A)。
A、PCIB、IEEE1394C、令牌网D、以太网
20.USB总线采用的通信方式为(A)。
A、轮询方式B、中断方式C、DMA方式D、I/O通道方式
21.嵌入式系统最常用的数据传送方式是(B)。
A、查询B、中断C、DMAD、I/O处理机
22,µClinux与标准Linux最大的区别在于(B)。
A、文件系统B、内存管理C、任务调度算法D、应用开发模式
23.嵌入式操作系统一般通过(A)手段来解决代码体积与嵌入式应用多样性
嵌入式操作系统一般通过(A)手段来解决代码体积与嵌入式应用多样性的问题。
A、使用可定制的操作系统
B、将操作系统分布在多个处理器上运行
C、增大嵌入式设备的存储容量
D、使用压缩软件对操作系统进行压缩
24.谈一谈嵌入式系统的发展趋势(列出五个趋势以上)。
答:
产品种类不断丰富;应用范围不断普及;性能不断提高;功耗不断降低,体积不断缩小;网络化、智能化程度不断提高;软件成为影响价格的主要因素。
(每个趋势1分)
25.简述嵌入式微处理器的特点。
答:
嵌入式微处理器的特点:
通用微处理器的增强,一般为32位。
(1分)
构成:
一般CPU、存储器、I/O接口三者分离;(1分)
性能:
一般为100~2000MIPS;(1分)
存储器:
Flash一般为1~16MB,SDRAM一般为2~64MB;(1分)
一般加载复杂嵌入式操作系统:
VxWorks、WinCE、µClinux等。
(1分)
26.什么是访存时序配合?
答:
存控发出的信号要满足存储器的时序要求(2.5分);
存储器返回的信号要满足存控的时序要求(2.5分)。
27.请指出USB总线的四种传输类型,并指出每一种传输类型的基本特点。
答:
四种传输类型:
控制传输、批量传输、中断传输和等时传输(1分)
控制传输:
双向,纠错,查询、配置设备信息;(1分)
批量传输:
单向,纠错,大块无结构数据,延迟不定;(1分)
中断传输:
单向,纠错,小块无结构数据,延迟确定;(1分)
等时传输:
单向,无纠错,大块无结构数据,延迟确定。
(1分)
28.什么是前后台系统?
有何优缺点?
它的实时性如何决定?
答:
前后台系统:
分为前台程序和后台程序。
前台程序也称中断级程序,通过中断来处理事件,在中断服务子程序中,一般对中断做一些简单的处理,然后给出事件发生的标志,待后台程序来处理;后台程序也称任务级程序,一个死循环,循环查询各种标志位,如果标志位置位,就执行相应的任务程序。
(2分)
优点:
系统结构简单,几乎不需要额外的存储开销。
(1分)
缺点:
所有的任务具有相同的优先级别,任务响应时间不可预测;后台程序是一个无限循环的结构,一旦在这个循环体中正在处理的任务崩溃,使得整个任务队列中的其他任务得不到机会被处理,从而造成整个系统的崩溃。
(1分)
实时性:
取决于所有其它任务的执行时间之和。
(1分)
29.简述嵌入式操作系统和实时操作系统的关系。
答:
“嵌入式”并不意味着“实时”,例如µClinux、EmbeddedLinux为嵌入式操作系统但非实时操作系统(2分);“实时”并不意味着“嵌入式”,例如OpenVMS(工作站、小型机)为实时操作系统但非嵌入式操作系统(2分);不过实际上,目前的嵌入式操作系统(EOS)基本上是实时操作系统(RTOS)(1分)。
下图为单周期存储器读时序图。
clk为时钟信号,上升沿有效;rd为读信号,高电平有效。
问:
如果主设备要求的建立时间
,保持时间
,则此系统的最高时钟频率为多少?
能否满足保持时间的要求?
(要求写出计算过程)。
参考
功能描述
最小值
最大值
单位
t0
rd延迟时间
5
10
ns
t1
rd持续时间
60
ns
t2
rd有效到数据输出
30
ns
t3
rd无效到data持续时间
5
10
ns
答:
满足存储器读rd时序要求,则时钟周期
要保证主设备有足够的建立时间,则时钟周期
要保证主设备有足够的保持时间
最高时钟频率为
分析下述S3C44B0x的示例程序。
#include
volatileunsignedlongtimeval;//当前时刻
voidmain(void)
{init_timer();//InitializeTimer
while
(1){
pPIO->PDATE=0xFD;//TurnLED1On
wait(1000);//Wait1000ms
pPIO->PDATE=0xFB;//TurnLED2On
wait(1000);//Wait1000ms
}}
//初始化Timer5以及开定时中断
voidinit_timer(void){……}
//1ms产生一次定时中断
__irqvoidHandlerTIMER5(void)
{timeval++;pIC->I_ISPC=INT_TIMER5;}
//等待函数,以毫秒为单位
voidwait(unsignedlongtime){……}
问:
语句“while
(1){……}”的作用是什么?
关键词“__irq”的作用是什么?
语句“pIC->I_ISPC=INT_TIMER5;”的作用是什么?
子程序HandlerTIMER5并未被调用,它是如何执行的?
此程序的功能是什么?
答:
语句“while
(1){……}”的作用是死循环、等待中断、LED显示;(2分)
关键词“__irq”的作用是指明该函数为IRQ中断服务子程序;(2分)
语句“pIC->I_ISPC=INT_TIMER5;”的作用是清除中断请求标志;(2分)
中断源发出中断请求,CPU响应中断并查询中断源得到中断向量表入口地址,到中断向量表相应入口地址取指令执行,该处为跳转指令,执行跳转指令跳转到子程序HandlerTIMER5处执行;(2分)
此程序的功能是双灯闪烁。
(2分)
3、PC机不是嵌入式系统,但是PC机中却包含了大量的嵌入式系统。
列举其中包含的嵌入式应用系统(至少三个),并对每个嵌入式应用系统作简单的介绍和分析。
答:
答案众多(评分标准:
每一个应用3分,叙述详细最多加1分)
键盘、鼠标、光驱、显示器等,介绍及分析略。
ARM处理器状态
ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:
第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;
第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。
在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。
但ARM微处理器在开始执行代码时,应该处于ARM状态。
ARM处理器状态
进入Thumb状态:
当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态。
此外,当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undef、Abort、SWI等),则异常处理返回时,自动切换到Thumb状态。
进入ARM状态:
当操作数寄存器的状态位为0时,执行BX指令时可以使微处理器从Thumb状态切换到ARM状态。
此外,在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。
ARM处理器模式
ARM微处理器支持7种运行模式,分别为:
用户模式(usr):
ARM处理器正常的程序执行状态。
快速中断模式(fiq):
用于高速数据传输或通道处理。
外部中断模式(irq):
用于通用的中断处理。
管理模式(svc):
操作系统使用的保护模式。
数据访问终止模式(abt):
当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。
系统模式(sys):
运行具有特权的操作系统任务。
定义指令中止模式(und):
当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。
ARM处理器模式
ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。
大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。
除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式;其中除去用户模式和系统模式以外的5种又称为异常模式,常用于处理中断或异常,以及需要访问受保护的系统资源等情况。
ARM寄存器
ARM处理器共有37个寄存器。
其中包括:
31个通用寄存器,包括程序计数器(PC)在内。
这些寄存器都是32位寄存器。
以及6个32位状态寄存器。
关于寄存器这里就不详细介绍了,有兴趣的人可以上网找找,很多这方面的资料。
异常处理
当正常的程序执行流程发生暂时的停止时,称之为异常,例如处理一个外部的中断请求。
在处理异常之前,当前处理器的状态必须保留,这样当异常处理完成之后,当前程序可以继续执行。
处理器允许多个异常同时发生,它们将会按固定的优先级进行处理。
当一个异常出现以后,ARM微处理器会执行以下几步操作:
进入异常处理的基本步骤:
将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。
将CPSR复制到相应的SPSR中。
根据异常类型,强制设置CPSR的运行模式位。
强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。
如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM状态。
ARM微处理器对异常的响应过程用伪码可以描述为:
R14_=ReturnLink
SPSR_=CPSR
CPSR[4:
0]=ExceptionModeNumber
CPSR[5]=0;当运行于ARM工作状态时
If==ResetorFIQthen;当响应FIQ异常时,禁止新的FIQ异常
CPSR[6]=1
PSR[7]=1
PC=ExceptionVectorAddress
异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:
将连接寄存器LR的值减去相应的偏移量后送到PC中。
将SPSR复制回CPSR中。
若在进入异常处理时设置了中断禁止位,要在此清除。
................................................................................
BootLoader简介
简单地说,BootLoader就是在操作系统内核运行之前运行的一段小程序。
通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。
BootLoader是严重地依赖于硬件而实现的,特别是在嵌入式世界。
因此,在嵌入式世界里建立一个通用的BootLoader几乎是不可能的。
尽管如此,我们仍然可以对BootLoader归纳出一些通用的概念来,以指导用户特定的BootLoader设计与实现。
基于ARM7TDMIcore的CPU在复位时通常都从地址0x00000000取它的第一条指令。
在系统加电后,CPU将首先执行BootLoader程序。
大多数BootLoader都包含两种不同的操作模式:
“启动加载”模式和“下载”模式:
启动加载(Bootloading)模式:
BootLoader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入。
下载(Downloading)模式:
BootLoader将通过串口连接或网络连接等通信手段从主机(Host)下载文件,比如:
下载内核映像和根文件系统映像等。
BOOT的一般步骤为:
设置中断向量表
初始化存储设备
初始化堆栈
初始化用户执行环境
呼叫主应用程序
设置中断向量表
ARM要求中断向量表必须放置在从0地址开始,连续8X4字节的空间内。
每当一个中断发生以后,ARM处理器便强制把PC指针置为向量表中对应中断类型的地址值。
因为每个中断只占据向量表中1个字的存储空间,只能放置一条ARM指令,使程序跳转到存储器的其他地方,再执行中断处理。
中断向量表的程序实现通常如下表示:
AREABoot,CODE,READONLY
ENTRY
B?
?
?
ResetHandler
B?
?
?
UndefHandler
B?
?
?
SWIHandler
B?
?
?
PreAbortHandler
B?
?
?
DataAbortHandler
B
B?
?
?
IRQHandler
B?
?
?
FIQHandler
其中关键字ENTRY是指定编译器保留这段代码,因为编译器可能会认为这是一段亢余代码而加以优化。
链接的时候要确保这段代码被链接在0地址处,并且作为整个程序的入口。
?
初始化存储设备
存储器端口的接口时序优化是非常重要的,这会影响到整个系统的性能。
因为一般系统运行的速度瓶颈都存在于存储器访问,所以存储器访问时序应尽可能的快;而同时又要考虑到由此带来的稳定性问题。
在不同的板子上处理芯片、存储设备以及其接口差异很大,应根据不同的情况来配置。
初始化堆栈
因为ARM有7种执行状态,每一种状态的堆栈指针寄存器(SP)都是独立的。
因此,对程序中需要用到的每一种模式都要给SP定义一个堆栈地址。
方法是改变状态寄存器内的状态位,使处理器切换到不同的状态,然后给SP赋值。
注意:
不要切换到User模式进行User模式的堆栈设置,因为进入User模式后就不能再操作CPSR回到别的模式了,可能会对接下去的程序执行造成影响。
这是一段堆栈初始化的代码示例:
mrsr0,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 考试题