问答题 (一共5题,共5分)

1.

【程序1】是关于条件编译的一段程序示例;

【程序2】是一段switch语句应用示例。C语言要求switch之后圆括弧内的“表达式”类型必须是整型或字符型。该程序代码中a与x的对应关系如表5-1所示。表5-1 a与x对应关系表

中级嵌入式系统设计师,章节练习,案例分析

【程序3】是冒泡排序算法的实现。假设有N个数据存放在数组aa中,用冒泡排序将这N个数从小到大排序。首先,在aa[0]到aa[N..1]的范围内,依次比较两个相邻元素的值,若aa[j]>aa[j+1],则交换aa[j]与aa[j+1],j的值取0,1,2,…,N-2;经过这样一趟冒泡,就把这N个数中最大的数放到aa[N-1]中。接下来对aa[0]到aa[N-2]中的数再进行一趟冒泡,这样就将该范围内的最大值换到aa[N-2]中。依次进行下去,最多只要进行N-1趟冒泡,就可完成排序。如果在某趟冒泡过程中没有交换相邻的值,则说明排序已完成,可以提前结束处理。

【C程序代码1】

中级嵌入式系统设计师,章节练习,案例分析

【C程序代码2】

中级嵌入式系统设计师,章节练习,案例分析

【C程序代码3】

中级嵌入式系统设计师,章节练习,案例分析

问题:5.1 (1)什么是c语言的条件编译?(2)请解释#ifndef的作用。(3)分析【C程序代码1】,写出该段执行后的输出结果。

问题:5.2 完成【C程序代码2】中的(1)?(3)空,将答案写到相应的位置。

问题:5.3 完成【C程序代码3】中的(4)?(6)空,将答案写到相应的位置。

2.

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

中级嵌入式系统设计师,章节练习,案例分析

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

中级嵌入式系统设计师,章节练习,案例分析

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

中级嵌入式系统设计师,章节练习,案例分析

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

中级嵌入式系统设计师,章节练习,案例分析

问题:2.1 在该嵌入式系统设计中,AD574是工作在12位转换模式还是8位转换模式?

问题:2.2 图2-1中245为双向缓冲器,在该硬件设计中配置8255控制字时,CPU需要向245进行数据输出(245的A口传输给B口);在获取AD采集数据时CPU需要接收245所传输过来的数据(245的B口传输给A口)。根据硬件设计,描述DR分别为高、低电平时,245双向缓冲器在A、B口之间进行数据传输的方向。

问题:2.3 在该A/D变换中,如果用1/2LSB(最低有效位)来表示量化误差,当该A/D控制器的量程范围为5V时,其量化误差是多大?

问题:2.4 王工根据上述硬件设计,编写对应的数据采集程序,首先需要对8255进行初始化,然后进行数据采集,请根据注释要求补全如下X86汇编程序。

中级嵌入式系统设计师,章节练习,案例分析

中级嵌入式系统设计师,章节练习,案例分析

3.

某嵌入式控制软件中,通过采集传感器数值来计算输出控制率,同时为提高数据采集的可靠性,对采集数值使用三余度采集方法进行三个通道的数据采集。

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,则使用本周期计算控制率Cdft行输出控制,否则使用目前实际控制率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)如果低级故障和高级故障同时发生,则按高级故障上报和处理。

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

中级嵌入式系统设计师,章节练习,案例分析

问题:3.2 白盒测试方法和黑盒测试方法是目前嵌入式软件测试常用的方法。请简述白盒测试方法与黑盒测试方法的概念。同时依据本题说明,指明问题1中设计的测试用例使用了白盒测试方法还是黑盒测试方法。

问题:3.3 为了测试控制率计算算法,在不考虑测量误差的情况下,请完善所设计的测试用例,填写表3-2中的空(1)?(6)。

中级嵌入式系统设计师,章节练习,案例分析

4.

某公司承接了一个数据处理模块的项目,由沈工负责模块的方案设计,沈工的设计方案如图4-1所示。该数据处理模块以PowerPC处理器为核心,设计了存储器、以太网、温度传感器、调试接口等功能电路。处理器外接FLASH存储器用于存储上电初始化程序和应用程序。

处理器通过I2C接口连接测温电路,监控模块的工作温度。以太网、串口、调试离散量等用于软件调试和状态显示。测温电路选用ADT7461AR芯片,用于测试模块温度。ADT7461AR是一个双通道数字温度计,工作电压3v至5v,具有低/超温报警功能,采用I2C接口实现主机对远程/本地温度数据的采集f采集数据存储在高/低两个数据寄存器中,每个寄存器为16位,高寄存器表示整数值,低寄存器表示小数值。

中级嵌入式系统设计师,章节练习,案例分析

存储模块采用某公司的FLASH存储芯片。

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

中级嵌入式系统设计师,章节练习,案例分析

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

中级嵌入式系统设计师,章节练习,案例分析

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

中级嵌入式系统设计师,章节练习,案例分析

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

中级嵌入式系统设计师,章节练习,案例分析

中级嵌入式系统设计师,章节练习,案例分析

5.

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

中级嵌入式系统设计师,历年真题,2016年嵌入式系统设计师下午真题卷

问题:1.1 该系统的SRAM的地址线宽度为11,数据线宽度为8,其容量为多少字节?

问题:1.2 该系统分别设计了IOS和Android两种不同操作系统下的客户端程序,二者在开发上都使用MVC(模型(M)—视图(V)—控制器(C))设计模式。在典型的程序设计中,用户可以直接和视图进行交互,通过对事件的操作,可以触发视图的各种事件,再通过控制器,以达到更新模型或数据的目的。请完善图1-2所示的流程模型。

中级嵌入式系统设计师,历年真题,2016年嵌入式系统设计师下午真题卷

问题:1.3 该系统采用数字式激光传感器检测PM2.5、PM10,并通过异步串行接口将数据上报给处理器,通信波特率为9600bps,上报周期为1.5秒,数据帧内容包括:报文头、指令号、数据(6字节)、校验和及报文尾,具体字段描述如表1-1所示。

中级嵌入式系统设计师,历年真题,2016年嵌入式系统设计师下午真题卷

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

中级嵌入式系统设计师,历年真题,2016年嵌入式系统设计师下午真题卷中级嵌入式系统设计师,历年真题,2016年嵌入式系统设计师下午真题卷中级嵌入式系统设计师,历年真题,2016年嵌入式系统设计师下午真题卷