软考中级嵌入式系统设计师历年经典真题及解析part4.docx
《软考中级嵌入式系统设计师历年经典真题及解析part4.docx》由会员分享,可在线阅读,更多相关《软考中级嵌入式系统设计师历年经典真题及解析part4.docx(16页珍藏版)》请在冰豆网上搜索。
软考中级嵌入式系统设计师历年经典真题及解析part4
第1题
单选题
Incomputing,adevicedriver(commonlyreferredtoassimplyadriver)isacomputerprogramthatoperatesorcontrolsaparticulartypeofdevicethatisattachedtoacomputer.Adriverprovides()tohardwaredevices,enablingoperatingsystemsandothercomputerprogramstoaccesshardwarefunctionswithoutneedingtoknowprecisedetailsofthehardwarebeingused。
A.asoftwareinterface
B.aprogramminglanguage
C.afunction
D.anInternalBus
【解析】正确答案:
A。
在计算机中,驱动程序是指操作或者控制一种特定外设的程序。
驱动程序提供一种硬件设备的软件操作接口,使得操作系统或者其他程序在不了解硬件的具体情况下可以访问该硬件设备。
第2题
单选题
POP3协议采用()模式,客户端代理与POP3服务器通过建立TCP连接来传送数据。
A.Browser/Server
B.Client/Server
C.PeertoPeer
D.PeertoServer
【解析】正确答案:
B。
本题考查POP3协议及POP3服务器方面的基础知识。
POP3协议是TCP/IP协议簇中用于邮件接收的协议。
邮件客户端通过与服务器之间建立TCP连接,采用Client/Server计算模式来传送邮件。
第3题
单选题
存储1000个16×16点阵的汉字所需要的存储空间是()。
A.256KB
B.32KB
C.16KB
D.31.25KB
【解析】正确答案:
D。
本题考查计算机存储器方面的基础知识。
存储1000个16×16点阵的汉字所需要的存储空间计算如下:
需要的存储空间=1000×16×16/8/1024=31.25KB
第4题
单选题
采用()不会产生内部碎片。
A.分页存储管理
B.分段存储管理
C.固定分区存储管理
D.段页式存储管理
【解析】正确答案:
B。
碎片是指内存中无法利用的存储空间,碎片分为内部碎片和外部碎片,内部碎片是指分配给作业的存储空间中未被利用的部分,外部碎片是指系统中无法利用的小存储块。
在分页存储管理系统中,作业地址空间划分成若干大小相等的页,相应地将内存的存储空间分成与页大小相等的块,在为作业分配存储空间时,总是以块为单位来分配,可以将作业中的某一页放到内存的某一空闲块中。
在分页存储管理中,要求将作业放在一片连续的存储区域中,因而会产生内存碎片问题。
在分段存储管理系统中,作业的地址空间划分为若干个逻辑分段,每个分段是一组逻辑意义相对完整的信息集合,每个分段都有自己的名字,每个分段都从0开始编址并采用一段连续的地址空间。
内存分配以段为单位,每段分配一个连续的内存区,但各段之间不要求连续。
分段的大小是由用户所决定的,用户根据需要而划分,需要多少就分配多少,所以不会产生碎片。
在段页式存储管理系统中,作业的地址空间首先被分成若干个逻辑分段,每段都有自己的段号,然后再将每段分成若干个大小固定的页,内存空间分成若干个和页面大小相同的物理块,对内存的分配以物理块为单位,这种存储方式会产生内存碎片问题。
固定分区存储管理方法是最早使用的一种可以运行多道程序的存储管理方法,它将内存空间划分为若干个固定大小的分区,每个分区中可以装入一道程序。
分区的大小可以不等,但事先必须确定,在运行时不能改变。
这种方法由于作业的大小并不一定与某个分区大小相等,存储空间会被浪费,内存不能得到充分利用。
第5题
单选题
某同步总线的时钟频率为100MHz,宽度为32位,地址/数据线复用,每传输一个地址或者数据占有一个时钟周期。
若该总线支持burst(猝发)传输方式,则一次“主存写”总线事务传输一个数组intbuf[4]所需要的时间至少是()ns。
A.20
B.40
C.50
D.80
【解析】正确答案:
C。
本题考查计算机组成基础知识。
计算机总线按功能和规范可分为数据总线、地址总线、控制总线等,有的系统中,数据总线和地址总线是复用的,即总线在某些时刻出现的信号表示数据而另一些时刻表示地址。
总线的数据传输类型分单周期方式和猝发(burst)方式。
单周期方式是指一个总线周期只传送一个数据。
猝发(burst)方式是指取得总线控制权后进行多个数据的传输。
寻址时给出目的地首地址,访问第一个数据,数据2、3到数据n的地址在首地址基础上按一定规则自动寻址(如自动加1)。
某同步总线的宽度为32位,intbuf[4]数组共有16个字节,128位数据,传输128位数据需要128/32=4个时钟周期,由于采用burst方式,共需要5个时钟周期,在时钟频率为100MHz的情况下,即每个周期10ns,所需要的时间至少是5×10=50ns。
第6题
单选题
在嵌入式操作系统中,两个任务并发执行,一个任务要等待另外一个任务发来消息后再继渎执行,这种制约性合作关系被称为任务的()。
A.同步
B.互斥
C.调度
D.等待
【解析】正确答案:
A。
本题考查嵌入式操作系统的基础知识。
嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。
嵌入式操作系统负责嵌入式系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。
目前在嵌入式领域广泛使用的操作系统有:
嵌入式实时操作系统μC/OS-Ⅱ、嵌入式Linux、WindowsEmbedded、VxWorks等,以及应用在智能手机和平板电脑的Android、iOS等。
在所有嵌入式操作系统中,同步和互斥都是常用的任务间通信机制。
互斥指的是两个或两个以上的任务,不能同时进入关于同一组共享变量的临界区域,否则可能发生与时间有关的错误,这种现象被称作互斥。
也就是说,一个任务正在访问临界资源,另一个要访问该资源的进程必须等待。
同步则是把异步环境下的一组并发任务因直接制约而互相发送消息、进行互相合作、互相等待,使得各任务按一定的速度执行的过程。
具有同步关系的一组并没任务称为合作任务,合作任务间互相发送的信号称为消息或事件。
用P、V原语操作实现同步的实例为:
设任务A和B通过缓冲区队列传递数据。
A为发送任务、B为接收任务、A发送数据时调用发送过程,B接收数据时调用过程,且数据的发送和接收过程满足如下条件:
①在A至少送一块数据入一个缓冲区之前,B不可能从缓冲区中取出数据;
②A往缓冲队列发送数据时,至少有一个缓冲区是空的;
③由A发送的数据块在缓冲队列中按先进先出(FIFO)方式排列。
第7题
单选题
在软件开发过程中进行风险分析时,()活动的目的是辅助项目组建立处理风险的策略,有效的策略应考虑风险避免、风险监控、风险管理及意外事件计划。
A.风险识别
B.风险预测
C.风险评估
D.风险控制
【解析】正确答案:
D。
本题考查软件开发风险分析的基本知识。
风险分析实际上包含4个不同的活动:
风险识别、风险预测、风险评估和风险控制。
风险识别是试图系统化地确定对项目计划(估算、进度、资源分配)的威胁。
风险预测又称风险估算,它从两个方面评估一个风险:
风险发生的可能性或概率;以及如果风险发生时所产生的后果。
风险评估根据风险及其发生的概率和产生的影响预测是否影响参考水平值。
风险控制的目的是辅助项目组建立处理风险的策略,有效的策略应考虑风险避免、风险监控、风险管理及意外事件计划。
第8题
单选题
以下叙述中不是嵌入式系统特点的是()。
A.要求编码体积小,能够在嵌入式系统的有效存储空间内运行
B.面向应用,可以进行裁减和移植
C.用于特定领域,不需要支持多任务
D.可靠性高,无需人工干预独立运行,并处理各类事件和故障
【解析】正确答案:
C。
本题考查嵌入式系统特点的基础知识。
嵌入式系统是一种专用的计算机系统,大到飞机、轮船、卫星、导弹,小到电视机、洗衣机、智能水表,都可以说是一个嵌入式系统。
嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。
嵌入式系统通常的定义是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
嵌入式系统的特点有:
①可裁剪性。
支持开放性和可伸缩性的体系结构。
②强实时性。
实时性一般较强,可用于各种设备控制中。
③统一的接口。
提供设备统一的驱动接口。
④操作方便、简单、提供友好的图形CUI和图形界面,追求易学易用。
⑤强稳定性,弱交互性。
嵌入式系统一旦开始运行就不需要用户过多的干预、这就要负责系统管理的操作系统具有较强的稳定性。
嵌入式操作系统的用户接口一般不提供操作命令,它通过系统的调用命令向用户程序提供服务。
⑥固化代码。
在嵌入式系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。
⑦更好的硬件适应性,也就是良好的移植性。
⑧嵌入式系统和具体应用有机地结合起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。
第9题
单选题
更适合用来开发操作系统的编程语言是()。
A.C/C++
B.Java
C.Python
D.JavaScript
【解析】正确答案:
A。
本题考查程序语言知识。
C/C++是编译型程序设计语言,常用于进行系统级软件的开发。
Java、Python和JavaScript都是解释型本程序设计语言,其中Python和JavaScript
是脚本语言。
第10题
单选题
把CSS样式表与HTML网页关联,不正确的方法是()。
A.在HTML文档的<head>标签内定义CSS样式
B.用@import引入样式表文件
C.在HTML文档的<!
---->标签内定义CSS样式
D.用<link>标签链接网上可访问的CSS样式表文件
【解析】正确答案:
C。
---->是HTML注释的表示方式,在这里定义CSS样式无效。
第11题
单选题
设用2K×4位的存储器芯片组成16K×8位的存储器(地址单元为0000H~3FFFH,每个芯片的地址空间连续),则地址单元0B1FH所在芯片的最小地址编号为()。
A.0000H
B.0800H
C.2000H
D.2800H
【解析】正确答案:
B。
本题考查计算机系统中存储部件的基础知识。
由2K×4位的存储器芯片组成容量为16KX8位的存储器时,共需要16片(16K×8/(2K×4))。
用2个存储器芯片组成2K×8的存储空间(每个芯片的地址空间连续),16K×8位的存储空间共分为8段,即0000H~07FFH,0800H~0FFFH,1000H~17FFH,1800H~1FFFH,2000H~27FFH,2800H~2FFFH,3000H~37FFH,3800H~3FFFH。
显然,地址单元0B1FH所在芯片的起始地址为0800。
第12题
单选题
关于软件需求分析,以下叙述中错误的是()。
A.软件需求分析的任务是确定软件系统的功能、性能、接口等要求
B.软件需求分析的基本原则是:
能够表达和理解问题的信息域和功能域
C.软件需求分析阶段的工作成果是总体设计说明
D.软件需求分析工作是一个不断认识、逐步细化的过程
【解析】正确答案:
C。
本题考查软件需求分析方面的知识。
软件需求分析的任务是确定软件系统的功能、性能、接口等要求,分析软件系统的数据要求,导出系统的逻辑模型,修正项目开发计划。
软件需求分析的基本原则是:
能够表达和理解问题的信息域和功能域,以层次化方式对功能进行分解和不断细化,清楚定义信息接口,给出系统的逻辑视图和物理视图,定义系统的抽象模型。
软件需求分析阶段的输入是软件研制任务书和软件开发计划,工作成果是软件需求规格说明。
软件需求分析工作是一个不断认识、逐步细化的过程。
第13题
案例题
【说明】
【程序1】是关于条件编译的一段程序示例;
【程序2】是一段switch语句应用示例。
C语言要求switch之后圆括弧内的“表达式”
类型必须是整型或字符型。
该程序代码中a与x的对应关系如表5-1所示。
【程序3】是冒泡排序算法的实现。
假设有N个数据存放在数组aa中,用冒泡排序将这N个数从小到大排序。
首先,在aa[0]到aa[N-1]的范围内,依次比较两个相邻元素的值,若aa[j]>aa[j+l],则交换aa[j]与aa[j+l],j的值取0,1,2,…,N-2;经过这样一趟冒泡,就把这N个数中最大的数放到aa[N-l]中。
接下来对aa[0]到aa[N-2]中的数再进行一趟冒泡,这样就将该范围内的最大值换到aa[N-2]中。
依次进行下去,最多只要进行N-1趟冒泡,就可完成排序。
如果在某趟冒泡过程中没有交换相邻的值,则说明排序已完成,可以提前结束处理。
【问题1】
(1)什么是C语言的条件编译?
(2)请解释#ifndef的作用。
(3)分析【C程序代码1】,写出该段执行后的输出结果。
【问题2】
完成【C程序代码2】中的
(1)~(3)空,将答案写到答题纸相应的位置。
【问题3】
完成【C程序代码3】中的(4)~(6)空,将答案写到答题纸相应的位置。
【解析】正确答案:
【问题1】
(1)条件编译:
C语言中提供控制编译器流程的语句。
或C源程序中希望对其中一部分内容只是在满足一定条件时才进行编译,形成目标代码,这种对一部分内容指定编译的条件称为条件编译。
(2)#ifndef的作用:
如果后面的“宏名”未定义,则编译其体内的程序段;否则编译#else就部分的程序段,如果没有#else部分,则当“宏名”已定义时直接跳过#endif。
(3)x=2
【问题2】
(1)x=3
(2)x=l
(3)x=2
【问题3】
(4)&aa[i]
(5)N-i-1
(6)!
swap或swap==0。
本题考查C语言编程方面的基础知识。
【问题1】考查条件编译的概念;【问题2】考查考生对switch语句的理解;【问题3】考察考生对排序算法程序的理解。
【问题1】
C语言中提供控制编译器流程的语句为条件编译语句,在一般情况下,C源程序中所有的行都参加编译过程,但有时出于对程序代码优化的考虑,希望对其中一部分内容只是在满足一定条件时才进行编译,形成目标代码,这种对一部分内容指定编译的条件称为条件编译。
下面是关于#ifdef语句的使用规则:
该语句的作用是,如果#ifdef后面的“宏名”在此前已用#define语句定义,则编译“程序段1”或“程序段”;否则编译“程序段2”。
如果没有#else部分,则当“宏名”未定义时直接跳过#endif。
下面是关于#ifndef语句的使用规则:
#ifndef语句的功能与#ifdef语句的功能正好相反,如果#ifndef后面的“宏名”未定义,则编译“程序段1”或“程序段”;否则编译“程序段2”。
如果没有#else部分,则当“宏名”已定义时直接跳过#endif。
在【C程序代码1】中,由于在执行条件编译语句时,x己定义,所以,执行x=2;语句。
最终程序执行结果为:
x=2。
【问题2】
在C语言中,选择结构的作用是根据所给的条件是否满足,决定从给定的两个或多个分支中,选择其中的一个分支来执行。
C语言中有两种选择结构语句,if语句和switch语句。
使用if语句的嵌套结构实现多分支选择功能时,程序的结构显得不够清晰。
因此,C语言专门提供了switch语句。
switch语句的一般形式如下:
在使用switch语句时有以下要求:
1.switch语句后面圆括号内的“表达式”的值和case后面的“常量表达式”的值,都必须是整型或字符型的,不允许是实数。
2.在case后的各常量表达式的值不能相同,否则会出现错误。
在本题中变量a是实数,所以在switch语句要进行转换:
switch((int)a)。
根据题意,a取整后的值为0、1、2时,0≤a<3。
按照表5-1,当a>2时,x=l;当a<2,x=3;所以,第一问为x=3;
a取整后的值为3时,3≤a<4。
所以,第二问为x=l;
a取整后的值为4时,4≤a<5。
所以,第三问为x=2。
【问题3】
本题为冒泡排序算法的一种程序实现,其算法的实现方法在【程序3】已经讲的很清楚。
程序是对规模为8的一组数进行用冒泡排序从小到大排序,首先要求输入这8个数,存入数组aa中,使用“scanf("%d",&aa[i]);”在冒泡排序算法开始执行后,用for循环语句来控制排序趟数和每一趟的结束位置,语句应为“for(j=0;jswap或swap==0为真,则表明已排序成功,不需要再交换数据,这是退出循环。
第14题
单选题
下图为典型直接存储器访问(DMA)控制器的结构示意图,图中(a)应为()。
A.总线仲裁器
B.字节计数器
C.参数寄存器
D.中断寄存器
【解析】正确答案:
B。
本题考查直接存储器访问(DMA)控制器方面的基础知识。
DMA控制器可以像CPU那样获得总线的控制权,完成外设与存储器之间的数据高速交换。
DMA控制器不但要与外设连接,以接受外设发出的DMA操作请求和在DMA期间对外设进行控制,还要与CPU连接,以请求总线的控制权;同时,它还需要与三大总线连接,以便进行总线的控制。
DMA控制器里面包含地址寄存器、状态寄存器、控制寄存器、字节计数器。
地址寄存器包括源地址和目的地址寄存器;状态寄存器用于寄存DMA传送前后的状态;控制寄存器用于选择DMA控制器的操作类型、工作方式、传送方向和有关参数;字节计数器用于控制传送数据块的长度。
第15题
单选题
嵌入式存储器系统设计中,一般使用三种存储器接口电路:
NORFlash接口、NANDFlash接口和SDRAM接口电路,以下叙述中错误的是()。
A.系统引导程序可以放在NORFlash中,也可以放在NANDFlash中
B.存储在NORFlash中的程序可以直接运行
C.存储在NANDFlash中的程序可以直接运行
D.SDRAM不具有掉电保持数据的特性,其访问速度要大于Flash存储器
【解析】正确答案:
C。
本题考查嵌入式系统存储硬件设计的基础知识。
在嵌入式系统的存储硬件设计中,一搬采用三种存储器接口即NORFlash存储器、NandFlash存储器和SDRAM存储器。
NORFlash带有通用的SRAM接口,可以轻松地挂接在CPU的地址、数据总线上,对CPU的接口要求低。
NORFlash的特点是芯片内执行(XIP,eXecuteInPlace),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。
如uboot中的只读段可以直接在NORFlash上运行。
NANDFlash器件使用复杂的I/O口来串行地存取数据,8个引脚用来传送控制、地址和数据信息。
由于时序较为复杂,所以一般CPU最好集成NAND控制器。
另外由于NANDFlash没有挂接在地址总线上,所以如果想用NANDFlash作为系统的启动盘,就需要CPU具备特殊的功能,如s3c2410在被选择为NANDFlash启动方式时会在上电时自动读取NANDFlash的4kb数据到地址0的SRAM中。
如果CPU不具备这种特殊功能,用户不能直接运行NANDFlash上的代码,那可以采取其他方式,比如好多使用NANDFlash的开发板除了使用NANDFlash以外,还用一块小的NORFlash来运行启动代码。
任何Flash器件的写入操作都只能在空或已擦除的单元内进行。
NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为1。
SDRAM是有一个同步接口的动态随机存取内存(DRAM)。
通常DRAM是有一个异步接口的,这样它可以随时响应控制输入的变化。
而SDRAM有一个同步接口,在响应控制输入前会等待一个时钟信号,这样就能和计算机的系统总线同步。
相对于NORHash和NandFlash,SDRAM的访问读写速度要快得多。
第16题
单选题
以下关于SD卡的叙述中,不正确的是()。
A.SD卡一般采用9芯的接口
B.—般处理器都集成了SD卡模块,在设计时只要添加简单的外部电路即可
C.嵌入式系统对SD卡的使用过程中,可以将SD卡格式化为对应的文件系统
D.SD卡在结构上不支持一主多从的星型结构
【解析】正确答案:
D。
本题考查嵌入式处理器SD卡存储的基础知识。
SD卡是一种为满足安全性、容量、性能和使用环境等各个方面需求而设计的一种新型存储器件,SD卡允许两种工作模式,即SD模式和SPI模式。
一般的嵌入式处理器中都集成了SD卡接口模块,外围只需简单电路即可设计而成。
SD卡包括9个管脚,分别是CLK时钟信号;CMD命令和回复线信号;DATA0-3数据线,是双向信号;另外还包括电源、片选等信号线。
SD卡与MicroSD卡仅仅是封装上的不同,MicroSD卡更小,大小上和一个SIM卡差不多,但是协议与SD卡相同。
SD模式支持一主多从架构,时钟、电源、地所有卡共有。
SD卡的操作是通过命令来进行。
SD卡的初始化一般是按照以下顺序进行:
发送CMD0复位命令,返回1-复位成功,0-复位失败;发送CMD8命令,验证SD卡接口操作条件:
有响应-2.0SD卡;无响应-1.0SD卡或不可用卡;循环发送CMD55+ACMD41命令,判断是否有响应,有响应则轮询OCR忙标志位,等待初始化完成,并判断是否是SDHC卡;发送CMD2命令,得到每张卡的CID号;发送CMD3命令,通知卡返回一个新的RCA,主机使用这个相对地址作为之后数据传输模式的地址;发送CMD9命令,返回CSD128位寄存器数据,包含卡的具体数据:
块长度、存储容量、速度传输速率等;发送CMD7命令,选择一张卡,并将它切换到数据传输模式,每次只会有一张卡处于传输模式;发送CMD55+ACMD51命令,返回SCR寄存器数据,获取SD卡支持的位宽信息;发送CMD55+ACMD6命令,配置4bit传输模式。
第17题
案例题
阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
随着汽车工业的飞速发展,越来越多的车上的原有机械控制装置正在被电子控制装置所取代,这是典型的实时控制系统,例如用于控制发动机、自动变速箱、防抱死系统、电子稳定控制系统、牵引力控制系统、刹车辅助系统的ECU和用于座位调整、车窗玻璃升降、车顶移动的电子产品,这在很大程度上提髙和完善了汽车的性能和技术水平。
但是,汽车上电控系统的多样化和系统结构的复杂化,也直接导致相应的汽车电子软件开发难度越来越高。
某汽车的ECU(ElectronicControlUnit,电子控制单元)系统,采用某高性能的多核处理器,软件架构采用符合AUTOSAR(AUTOmotiveOpenSystemArchitecture,汽车开放系统架构)标准的多核操作系统,将多个控制应用集成在一个处理器上运行,降低了系统设计的成本、体积、功耗