首页

软考 - 中级_嵌入式系统设计师

类型:
选择方向:
选择考试:
题型:
为你找到 25 个题目。

【说明】
【程序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)空,将答案写到答题纸相应的位置。

【说明】
某公司承接了一个数据处理模块的项目,由沈工负责模块的方案设计,沈工的设计方案如图4-1所示。该数据处理模块以PowerPC处理器为核心,设计了存储器、以太网、温度传感器、调试接口等功能电路。
处理器外接FLASH存储器用于存储上电初始化程序和应用程序。处理器通过I2C接口连接测温电路,监控模块的工作温度。以太网、串口、调试离散量等用于软件调试和状态显示。
测温电路选用ADT7461AR芯片,用于测试模块温度,ADT7461AR是一个双通道数字温度计,工作电压3v至5v,具有低/超温报警功能,采用I2C接口实现主机对远程/本地温度数据的采集,采集数据存储在高/低两个数据寄存器中,每个寄存器为16位,高寄存器表示整数值,低寄存器表示小数值。


存储模块采用某公司的FLASH存储芯片。支持编程、擦除、复位等操作命令。该FLASH芯片的常用命令序列如表4-1所示。表中的地址和数据皆为16进制数。


【问题1】
ADT7461AR芯片支持两种测温模式,其中第一种模式为二进制模式,用0表示0度,测温范围为0℃~+127℃;第二种模式为偏移二进制模式,用64表示0度,测温范围为-55℃~+150℃,温度数据转换关系如表4-2所示。
请在(1)~(4)处写出对应温度的二进制数。


【问题2】
沈工用C语言实现对FLASH的操作,需按照表4-1中定义的命令序列顺序执行即可。仔细阅读下列代码,请在(1)~(4)处将对应的C语言代码补全。


【问题3】
该嵌入式系统对处理的性能要求较高,沈工在完成软件设计后,需要对每一个函数的执行性能进行测试,检测其是否满足系统设计的要求。沈工通过PowerPC处理器内部的高精度时钟寄存器(TimeBase)进行计时,该寄存器由高低两个32位的寄存器组成,根据总线频率自动递增,当低32位寄存器递增到0xFFFFFFFF时,向高32位寄存器进位。计数值可以换算成时间值,精确到微秒级。
在功能函数fimction10的执行体前后,进行时间统计,最后计算出该函数的执行时间值,请在(1)~(2)处将对应的C语言代码补全。



【说明】
某嵌入式控制软件中,通过采集传感器数值来计算输出控制率,同时为提高数据采集的可靠性,对采集数值使用三余度采集方法进行三个通道的数据采集。
1.三余度数据采集及处理要求:
(1)如果某通道采集值超过[3.0,3.0]v正常范围内,且与任一相邻通道间差值不大于0.5v,则该通道数据满足要求;
(2)如果某通道采集值超过[-3.0,3.0]v正常范围,或者此通道采集值与其他两个通道的差值均大于0.5v,则该通道数据不满足要求;
(3)如果三通道值均满足要求,则取三通道中差值较小的两通道数据平均值;
(4)如果三通道值均满足要求,且相邻两数值的差值相等,则取三个采集值的中间值;
(5)如果仅有一个通道数据不满足采集要求,取满足要求的两个通道数据平均值;
(6)如果大于一个通道数据不满足采集要求,取安全值0v。
2.对计算输出控制率的具体处理算法如下:
(1)如果依据采集数据计算的控制率C1与目前实际控制率C0差值不大于0.01,则使用本周期计算控制率C1进行输出控制,否则使用目前实际控制率C0输出控制,连续超过范围计数加1,不上报传感器故障;
(2)如果连续3个周期计算的控制率C1与目前实际控制率C0差值大于0.01,则上报传感器三级故障,连续超过范围计数清零,使用目前实际控制率C0输出控制;如果已经连续3个周期控制率差值超过范围,并已上报三级故障,但第4个周期计算的控制率C1与目前实际控制率C0差值不大于0.01,则清除三级故障上报,并使用C1进行输出控制;
(3)如果累计大于等于10个周期计算的控制率C1与目前实际控制率C0差值大于0.01,则上报传感器二级故障,使用目前实际控制率C0输出控制;
(4)如果累计大于等于100个周期计算的控制率C1与目前实际控制率C0,差值大于0.01,则上报传感器一级故障,清除二级故障,并切断输出控制(输出安全值0);
(5)如果低级故障和高级故障同时发生,则按高级故障上报和处理。

【问题1】
为了测试采集算法,在不考虑测量误差的情况下,根据所设计测试用例的输入填写表3-1中的(1)~(6)空,预期输出结果精度为小数点后保留两位数字。


【问题2】
白盒测试方法和黑盒测试方法是目前嵌入式软件测试常用的方法,请简述白盒测试方法与黑盒测试方法的概念。同时依据本题说明,指明问题1中设计的测试用例使用了白盒测试方法还是黑盒测试方法。
【问题3】
为了测试控制率计算算法,在不考虑测量误差的情况下,请完善所设计的测试用例,填写表3-2中的空(1)~(6)。


【说明】
王工在采用某16位嵌入式CPU进行A/D采集硬件电路设计时,利用8255控制器C口中的PCO输出控制信号,利用PC7读入AD574的状态信号,利用A口和B口读入AD574转换好的12位数据。图2-1为该A/D采集硬件系统设计的部分连接示意图。


其中,AD574各个管脚功能定义如表24所述。


AD574的控制功能状态表如表2-2所示。


8255控制器各个管脚及地址控制描述如表2-3所示。



【问题1】
在该嵌入式系统设计中,AD574是工作在12位转换模式还是8位转换模式?
【问题2】
图2-1中245为双向缓冲器,在该硬件设计中配置8255控制字时,CPU需要向245进行数据输出(245的A口传输给B口);在获取AD采集数据时CPU需要接收245所传输过来的数据(245的B口传输给A口)。根据硬件设计,描述DR分别为高、低电平时,245双向缓冲器在A、B口之间进行数据传输的方向。
【问题3】
在该A/D变换中,如果用1/2LSB(最低有效位)来表示量化误差,当该A/D控制器的量程范围为5V时,其量化误差是多大?
【问题4】
王工根据上述硬件设计,编写对应的数据采集程序,首先需要对8255进行初始体,然后进行数据采集,请根据注释要求补全如下X86汇编程序。



【说明】
某综合化智能空气净化器设计以微处理器为核心,包含各种传感器和控制器,具有检测环境空气参数(包含温湿度、可燃气体、细颗粒物等),空气净化、加湿、除湿、加热和杀菌等功能,并能通过移动客户端对其进行远程控制。
图1-1为该系统电气部分连接图,除微处理器外,还包括了片上32KBFLASH,以及SRAM和EEPROM。


【问题1】
该系统的SRAM的地址线宽度为11,数据线宽度为8,其容量为多少字节?
【问题2】
该系统分别设计了iOS和Android两种不同操作系统下的客户端程序,二者在开发上都使用MVC(模型(M)-视图(V)-控制器(C))设计模式。在典型的程序设计中,用户可以直接和视图进行交互,通过对事件的操作,可以触发视图的各种事件,再通过控制器,以达到更新模型或数据的目的。请完善图1-2所示的流程模型。
【问题3】
该系统采用数字式激光传感器检测PM2.5、PM10,并通过异步串行接口将数据上报给处理器,通信波特率为9600bps,上报周期为1.5秒,数据帧内容包括:报文头、指令号、数据(6字节)、校验和及报文尾,具体字段描述如表1-1所示。



王工根据数据报文通信协议,使用C语言编写了对应的数据接收和校验程序,请根据注释要求补全程序。
程序段如下:


注释:
Serial.available(  ):判断串口接收缓冲器的状态函数。读取串口接收缓冲器的值(128字节寄存器),以判断数据送达到串口。
返回:串口已经准备好的字节数。
Serial.read(  ):读取串口函数。
返回:串口的数据第一个字节,如果没有返回-1。
Serial.flush(  ):清除串口缓冲器内容函数。
返回:None。

阅读下列说明和C语言代码,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
在某工厂的物流车间,设计一款智能监测系统,实现对车间进行24小时不间断图像采集的功能。王工设计了一个实时监测采集系统,主要由图像采集卡和数据存储卡组成。由于实时图像的数据量巨大,设计采用DMA方式进行数据传输,当DMA传输完成后,DMA控制器会发起一个硬件中断。操作系统接收到硬件中断,调用中断服务程序。
该系统的软件基于某嵌入式操作系统开发,支持中断管理、多任务调度等功能。与DMA相关的一段驱动程序示例代码如下。
【C语言程序声明与定义】

【程序1】

【程序2】

【程序3】

【问题1】(5分)
在操作系统的头文件中,有如下类型定义:
typedef void     (*VOIDFUNCPTR)();     /* ptr to function returning void */ typedef int     (*FUNCPTR) ();     /* ptr to function returning int */

1.该类型定义了一组什么类型的变量,简述其功能。
2.在【程序1】的dma_init函数中,应该将intConnect函数的第二个参数转换成相应的类型,可以消除编译警告,请补充其中空(1)的内容。
【问题2】(4分)
DMA控制器的寄存器操作序列,必须为原子操作,该程序中使用了两个信号量,一个用于进行寄存器操作系统的临界区保护,一个用于在传输函数和DMA完成中断处理程序之间同步。请根据信号量创建时的不同初始值,在【程序2】的dma_trans函数和【程序3】dma_intHandle函数中,补充空(2)、(3)、(4)、(5)处的内容。
【问题3】(6分)
在该系统中有A、B两个应用任务同时从不同角度采集图像,都需要调用该DMA传输函数,任务A和任务B的优先级相同。该系统采用优先级抢占的调度策略。在任务A调用DMA传输函数进行DMA传输时,有时会出现函数返回值为0的情况。根据 DMA控制器的芯片手册定义,1表示正常完成,2表示传输超时,4表示奇偶校验错,所以返回值不应该为0。
王工经过认真排查后,分析该故障发生的原因是当任务A调用dma_trans函数时,会发生任务suspend的情况,此时如果任务B也调用dma_trans函数,则会发生上述故障。
1.请给出dma_trans函数中会导致任务发生阻塞的代码行号。
2.按照王工的分析,对全局变量的不正确操作会导致该函数的返回值错误,请给出发生错误的代码行号。
3.王工对该程序进行了改进,将上述会导致返回值错误的代码放在某一行程序之后执行,即可解决该问题,请给出代码行号。
注意:这里的行号是指【程序2】中注释所标的第1行到第5行,请在第1行到第5行之中选择。

阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
随着汽车工业的飞速发展,越来越多的车上的原有机械控制装置正在被电子控制装置所取代,这是典型的实时控制系统,例如用于控制发动机、自动变速箱、防抱死系统、电子稳定控制系统、牵引力控制系统、刹车辅助系统的ECU和用于座位调整、车窗玻璃升降、车顶移动的电子产品,这在很大程度上提高和完善了汽车的性能和技术水平。但是,汽车上电控系统的多样化和系统结构的复杂化,也直接导致相应的汽车电子软件开发难度越来越高。
某汽车的ECU (Electronic Control Unit,电子控制单元)系统,采用某高性能的多核处理器,软件架构采用符合AUTOSAR ( AUTOmotive Open System Architecture,汽车开放系统架构)标准的多核操作系统,将多个控制应用集成在一个处理器上运行,降低了系统设计的成本、体积、功耗。

【问题1】(5分)
AUTOSAR中定义了应用任务有四种不同的状态,其状态之间的切换如图4-1所示。

图4-1 任务状态切换图 
请从以下状态选项中为(1)〜(5)选择正确的状态编号,并将答案填写在答题纸的对应栏中。
A. 触发
B. 启动
C. 挂起
D. 被抢占
E. 创建
F. 激活
G. 删除
H. 时间片用完
【问题2】(4分)
(1)该系统中任务的优先级是静态分配的,在某些特定的情况下,多任务抢占资源会发生死锁,解决的策略一般是采用优先级天花板方式。请简述优先级天花板的原理。
(2)该系统采用了多核处理器,多核处理器一般有SMP和AMP两种不同的工作方式。请简述SMP和AMP的差异。
【问题3】(6分)
该ECU系统在上电、复位或唤醒后,首先进入Boot模式,进行开或者关,对FLASH 和RAM进行初始化,然后进入用户程序,用户程序是从cstart函数开始执行的,在多核 嵌入式系统中通常是先进行主核的cstart,主核自身进行部分初始化后将从核从HALT状态激活,然后主核和从核在完成各自必要的设置后分别进入各自的main函数。图4-2是该系统多核处理器的启动流程,请补充空(1)〜(3)的内容,将解答填写在答题纸的对应栏中。
图4-2 多核处理器启动流程图

阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
在智能家居系统软件设计中,家庭内网节点软件设计包括协调器、现场采集/执行器(室内温湿度采集节点、模拟台灯控制节点、模拟雨水窗户监控节点、模拟空调控制节点和火灾检测节点)的软件设计。软件功能组成如图3-1所示。

图3-1  软件功能组成图
整个系统中,协调器是整个家庭内网的核心,负责管理各个节点设备与PC网关的信息和控制指令的传输。温湿度采集终端将传感器的数据以点播的形式发送给协调器,其他采集/控制节点以广播的形式与协调器进行数据交换,协调器和PC机采用串口通信协议。协调器软件主要完成以下功能:
(1)创建信道,组建网络;如果失败,则继续创建;
(2)组建网络成功,则进行各层事件扫描;
(3)如果检测到应用层有事件,则转第(4)步,否则反复扫描各层事件;
(4)判断数据类型,如果是室内环境数据,则经串口发送到网关;如果是控制指令,则向控制节点发送控制指令;如果前面两者均不是,则不处理;
(5)继续扫描各层事件。

【问题1】(3分)
在本软件开发过程中,开发人员使用了基于模型的嵌入式代码生成技术,目前对模型验证最主要的方法是(1),通过此方法验证后,利用此验证结果可对模型的覆盖率进行分析,模型的覆盖率类型一般包括(2)(至少写出两种类型)。 
【问题2】(6分)
为了测试此软件功能,测试人员设计了表3-1所示的测试用例,请填写该表中的空(1)〜(3)。


【问题3】(6分)
覆盖率是度量测试完整性的一个手段,也是度量测试有效性的一个手段。在嵌入式软件白盒测试过程中,通常以语句覆盖率、条件覆盖率和MC/DC覆盖率作为度量指标。
在实现第4条功能时,设计人员采用了下列算法:
if ((数据有效==TRUE) && (数据类型==室内环境数据))
{数据经串口发送到网关;}
if ((数据有效==TRUE) && (数据类型==控制指令))
{向控制节点发送控制指令;}
请指出对上述算法达到100%语句覆盖、100%条件覆盖和100%MC/DC覆盖所需的最少测试用例数目,填写在表3-2的空(1)〜(3)中。
                                                                                表3-2测试覆盖用例统计表


阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
在智能家居系统设计中,李工被分配进行ZigBee协调器、信息采集器节点、终端控制节点和安全视频监控系统的部分硬件电路原理设计。
李工在基于微处理器的ZigBee协调器设计中,使用四个LED灯(D1、D2、D3、D4)表示状态,四个LED灯分别接到处理器的P2_0,P2_l,P2_2和P2_3管脚,部分相关的硬件设计如图2-1所示。

图2-1 ZigBee协调器硬件设计示意图
李工在的信息采集器节点设计中,采用红外传感器T6004进行信息收集,T6004利用可以吸收特定波段红外辐射的原理,同时内置温度补偿,与控制器 CC2530进行连接,部分相关的硬件设计如图2-2所示。T6004传感器的工作电压为5V,CC2530控制器的工作电压为2.0V~3.6V。
图2-2    信息采集器硬件设计示意图
李工在空调终端控制节点设计中,采用红外遥控电路中的红外发光二极管将调制好的红外光波发送给空调的红外接收电路,部分相关的硬件设计如图2-3所示,处理器通过Pl_4管脚进行红外光波的发送。

图2-3  红外遥控硬件设计示意图
李工设计的安全视频监控系统原理示意图如图2-4所示。主处理器采用T1的DM6446,该处理器包括ARM子系统、DSP子系统、视频处理子系统等,前端模拟视频通过TVP5146进行(可接2路模拟视频输入,分别是VI和V2)采集,TVP5146将模拟视频数据转换为l0bit的YCbCr4:2:2数字格式,然后送到主处理器。主处理器通过总线可以对TVP5146进行配置(TVP5146接口电压为3.3V),TVP5146和主处理器之间接口包括:l0bit数字视频信号、时钟信号、行场同步信号。DM6446主处理器的视频信号接口、接口工作电压为1.8V。
图2-4  安全视频监控系统原理示意图

【问题1】(4分)
在图2-1的ZigBee协调器设计中,按照需求李工定义了四个LED灯的状态含义, 分别是:D1亮表示协调器已启动,灭表示协调器未启动;D2亮表示有外围信息采集器节点已加入到ZigBee网络,灭表示目前无节点加入网络;D3亮表示有终端控制节点已加入到ZigBee网络,灭表示目前无节点加入网络;D4亮表示协调器正在通过串口和PC主机进行数据通信,灭时表示目前没有数据通信。
如果当前ZigBee协调器处于启动状态、且只有   外围信息采集器连入ZigBee网络,没有任何终端控制节点连接,协调器正在通过串口向PC主机发送   的采集信息, 在这种情况下,P2_0,P2_1,P2_2和P2_3应该分别输出什么电平(回答高电平或低电平)?
【问题2】(5分)
1. 在图2-2的   信息采集器设计中,两个IN4007(U3和U4)的作用是什么?
2. 为了使得红外发光二极管发射,图2-3中的Pl_4应该输出高电平还是低电平?
3. 在图2-4中,连接主处理器DM6446和TVP5146之间SN74AVC芯片的作用是什么?
【问题3】(6分)
在使用   接口对TVP5146进行配置时,DM6446为主,TVP5146为从。在每次写寄存器配置操作中,需要主先发送设备从地址、再发送待操作的寄存器地址、最后发送待写入的数据,并且每次主向从发送消息,都需要接收到从的应答后,才能进入下一步操作。
在调试过程中,李工希望通过   来配置TVP5146的视频标准模式,对应的寄存器地址和各个Bit位的含义如表2-1所示。

表2-1   TVP5146 视频模式配置寄存器含义说明 
假设当前TVP5146的   地址为0x64 (设备从地址),李工希望将该TVP5146配置为NTSC525视频标准,请从以下A〜I中选择合适的操作,补充到图2-5中的空(1) 〜(6)处。
A. 通过   发送寄存器地址00h
B. 通过   发送寄存器地址02h
C. 通过   发送数据O1h
D. 通过   发送数据03h
E. 通过   发送设备从地址64h
F. 通过   发送设备从地址60h
G. 等待TVP5146应答
H. 向TVP5146发送回应
I. 是否有中断发生 

图2-5  TVP5146寄存器配置流程图

阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】  
智能家居系统以消费者的使用习惯为依据,利用信息系统和自动化控制系统实现人与家用设备之间的信息交换,也就是说,智能家居是对家庭环境中的各个子系统(家电、水电、窗帘、视频监控、服务机器人等)进行互通控制的一套体系。图1-1为某单位设计的以ZigBee、WiFi及GSM为基础构建的集智能控制、安全监控为一体的智能家居系统示意图,依次是:家庭内部以ZigBee为基础的无线系统、用来进行视频传输的WiFi 网络和用来外部交互的外部交互网络。

图1-1智能家居系统示意图

安全视频监控系统利用WiFi网络同家庭PC主机连接,用户可以通过外网或者内部WiFi连接,实吋监控家庭状态,或者当家庭内部出现紧急事件后,可以通过GSM网络向家庭用户发送短信或彩信。
王工计划为某小区设计一套智能家居系统,利用ZigBee技术的低功耗、自组织、可扩展等特点,组建家庭内部无线传感器网络,网络节点包括室内温湿度采集节点、火灾环境监测节点、模拟空调控制节点、模拟雨水窗户监控节点。王工在开发智能家居系统时采用V开发模型,V开发模型强调软件开发的协作和速度,将软件实现和验证有机结合起来,在保证较高的软件质量情况下缩短开发周期,图1-2为V模型示意图。该模型中,每个开发活动都有对应的验证活动,在进行客户需求分析时,测试人员可以了解产品设计特性、用户真正的需求,确定测试目标,可以准备用例并策划测试活动;在软件需求分析阶段,测试人员可以了解实现的过程、评审需求,设计测试方案和计划,并准备测试环境,设计系统或配置项测试用例;在软件概要设计阶段,测试人员可以评审概要设计,设计软件集成方案和用例;在详细设计阶段,测试人员可以评审详细设计,设计单元测试用例;在编码阶段,测试人员可以评审代码,并执行单元测试。

图1-2  V模型示意图 


【问题1】(4分)
在图1-2所示的V模型中,与开发阶段中概要设计对应的测试阶段称为(1)。在系统或配置项测试阶段应采用(2)方法。
【问题2】(5分)
完成下面对图1-2所示的V模型的论述,将答案填写在答题纸的对应栏中。
1.客户需求分析对应验收测试。在进行需求分析、功能设计的同时,测试人员就可以阅读、审查分析结果,了解产品设计特性、用户真正的需求,从而确定(1)。
2.进行软件需求分析时,测试人员可了解实现的过程、评审需求,可设计(2)、(3)。
3.设计人员做详细设计时,测试人员可参与设计,对设计进行(4),同时(5),并基于用例开发测试脚本。
【问题3】(6分)
ZigBee协调器是整个ZigBee家庭内网的核心,负责管理各个ZigBee节点设备与 PC网关的信息和控制指令的传输。温湿度采集终端将传感器的数据以点播的形式发送给协调器,其他采集/控制节点以广播的形式与ZigBee协调器进行数据的交换,协调器和PC机采用串口通信协议。协调器上电后,首先进行系统初始化,信道扫描、创建信道并组建网络。如果组建网络成功,则进行各层事件扫描;如果失败,则继续创建,如果检测到应用层有事件,则对事件进行处理;否则反复扫描各层事件。当应用层有事件,则检查数据类型,如果是室内环境数据,则经过串口发送到网关;如果不是室内环境数据,则进一步判断是否为控制指令,如果是,则向控制节点发送控制指令。ZigBee协调器软件流程图如图1-3所示。补充图1-3中的(1)〜(4),并将答案填写在答题纸的对应栏中。


图1-3  ZigBee协调器软件流程图

上一页

第 1 页