当前位置:首页计算机类软件水平考试中级嵌入式系统设计师->阅读以下关于某嵌入式系统多路数据采集说明,回答下列问题。[说

阅读以下关于某嵌入式系统多路数据采集说明,回答下列问题。

[说明] 某嵌入式系统中,存在16路数据采集通道,为了提高数据采集可靠性,对16路采集通道均采用双余度设计,为了监控采集通道是否发生故障,对各路双余度通道采集值进行比较,只有当该通道两个余度设备采集值均不小于45时,才表示该路通道正常。

设计人员设计函数num_of_passer用于统计无故障通道数目,在该函数设计中考虑了如下因素:

9采用如下数据结构存储通道号及采集值: Struct value {unsigned int No; //通道号,1到16 unsigned short Value1; //余度1采集值 unsigned short Value2; //余度2采集值 }

10当输入参数异常时,函数返回-1;

11若正确统计了无故障通道数目,则返回该数目;

12该函数需要两个输入参数,第一个参数是用于存储通道号及余度采集值数组,第二个参数为通道总数目。

开发人员根据上述要求使用ANSI C对代码实现如下(代码中第一个数字代表行号): 1)unsigned int num_of_passer(struct value array[], unsigned int num) { 2)unsigned int n=0; //循环变量 3)unsigned int counter; //无故障通道数目 4)if((array=NULL)||(num==0)||(num>16)) 5)return-1; //当输入参数异常时,函数返回-1 6)for(n=0; nimage.png=num; n++) { 7)if((array[n].Value1>45) && ((array[n].Value2>45))) 8)counter=counter+1; } 9)return counter; }

1、嵌入式软件中通常使用圈复杂度来衡量程序可维护性(一般要求圈复杂度不大于10),请计算函数num_of_passer圈复杂度。

2、作为测试人员,请参照表1序号1方式使用代码审查方法找出该程序中所包含至少3处错误。

中级嵌入式系统设计师,章节练习,基础复习,中级嵌入式系统设计师练习

3、覆盖率是度量测试完整性一个手段,也是度量测试有效性一个手段。在嵌入式软件白盒测试过程中,通常以语句覆盖率、分支覆盖率和MC/DC覆盖率作为度量指标,请指出对函数num_of_passer达到100%语句覆盖、100%分支(DC.覆盖和100%MC/DC覆盖所需最少测试用例数目,如表2所示。

中级嵌入式系统设计师,章节练习,基础复习,中级嵌入式系统设计师练习

答案:
本题解析:

1、圈复杂度:7

2、中级嵌入式系统设计师,章节练习,基础复习,中级嵌入式系统设计师练习

3、中级嵌入式系统设计师,章节练习,基础复习,中级嵌入式系统设计师练习

1、本题考查软件测试一些基本概念和通过代码审查查找软件缺陷以及设计测试用例能力。 此题目要求考生认真阅读题目所给软件设计说明信息和软件代码,熟悉结构体数据类型和不同代码覆盖率要求,结合软件测试一些基本概念,在此嵌入式软件中进行实际应用。

控制流程图分析是一个静态分析过程,它提供静态度量标准技术,一般主要运用在白盒测试方法中。控制流图是McCabe复杂度计算基础,McCabe度量标准是将软件流程图转化为有向图,然后以图论知识和计算方法来衡量软件质量。

McCabe复杂度包括圈复杂度(Cyclomatic complexity)、基本复杂度、模块涉及复杂度、设计复杂度和集成复杂度等。 在软件测试概念里,圈复杂度“用来衡量一个模块判定结构复杂程度,数量上表现为独立线性路径条数,即合理预防错误所需测试最少路径条数,圈复杂度大说明程序代码可能质量低且难于测试和维护,根据经验,程序可能错误和高圈复杂度有着很大关系”。

圈复杂度大说明程序代码判断逻辑复杂,可能质量低且难于测试和维护。程序可能错误和高圈复杂度有着很大关系。 嵌入式软件中通常使用圈复杂度来衡量程序可维护性,一般要求圈复杂度不大于10。函数num_of_passer。流程图如图1所示。

中级嵌入式系统设计师,章节练习,基础复习,中级嵌入式系统设计师练习

有以下3种方法计算圈复杂度:

(1)没有流程图算法: 基数为1,碰到以下项加1: 分支数(如if、for、while和do while);switch中case语句数; 如果条件是2个复合条件话,则加2,否则加1。

(2)给定流程图G圈复杂度V(G),定义为V(G)=E-N+2,E是流图中边数量,N是流图中结点数量。

(3)给定流程图G圈复杂度V(G),定义为V(G)=P+1,P是流图G中判定结点数量。

按第1种没有流程图算法,函数num_of_passer中一个for,两个if,但是一个if是3个复合条件应该加3,另一个if是两个组合条件,应该加2,所以圈复杂度为基数(1)+for(1)+if(3)+if(2)=7,圈复杂度为7。

按第2种圈复杂度V(G),定义为V(G)=E-N+2算法,函数num_of_passer流程图中E为16,N为11,所以V(G)=16-11+2=7。

按第3种圈复杂度V(G),定义为V(G)=P+1,函数num_of_passer流程图中P为6,所以V(G)=P+1=6+1=7。

上述3种算法中任意方法,函数num_of_passer圈复杂度都计算为7。

2、代码审查是不执行软件代码,而通过阅读软件代码发现代码可能存在错误过程。代码审查测试内容包括检查代码和设计一致性;检查代码执行标准情况;检查代码逻辑表达正确性;检查代码结构合理性;检查代码可读性。

通过对说明阅读,按照说明中描述要求进行函数num_of_passer代码审查。

阅读第1行代码,函数返回值定义为unsigned int;而在说明第(2)条描述了当输入参数异常时,函数返回-1;这样发现说明和代码不一致,显然代码定义unsigned int不能返回-1,此为第1处错误。修改函数返回值定义为int类型即可。

阅读第3行代码,定义了无故障通道数目counter,在定义时未进行初始化,并且在第8行使用前依然未初始化。这就导致counter初值为非确定值,可能出错,此为第2处错误。在第3行定义counter时初始化为0或者在使用前进行初始化为0均可。

阅读第4行代码,对模块输入参数进行合法性检查,num合法值为1至16;然后查找使用num之处,在第6行对num进行了使用,但第6行使用时却从0开始,而且是小于等于num,这就意味着如果第4行num值为最大值16,在第6行就需要循环判断17次(0到16),而本题说明中描述很清楚,最多就16路通道,此为第3处错误。

但此问题更改有两种方案,方案1可以更改第4行num>16为num>=16,缩小此参数合法范围;方案2可以更改第6行nimage.png=num为nimage.pngnum减少循环次数。

阅读第7行代码,对每个通道采集双余度值进行有效性判断。按照说明,当余度设备采集值均不小于45时,才表示该路通道正常;但代码中使用当余度设备采集值均大于45时,表示该路通道正常,在对边界点45处理上与说明不一致,此为第4处错误。将第7行代码中两个“>”符号修改为“>=”即可与说明一致。

3、覆盖率是度量测试完整性一个手段,也是度量测试有效性一个手段。在嵌入式软件白盒测试过程中,通常以语句覆盖率、分支覆盖率和MC/DC覆盖率作为度量指标。语句覆盖率指程序中每条可执行语句至少被执行一次。分支覆盖指程序中每个判定取所有可能值至少一次。

MC/DC覆盖率指在一个程序中每一种输入输出至少应出现一次,在程序中每一个条件必须产生所有可能输出结果至少一次,并且每个判定中每个条件必须能够独立影响一个判定输出,即在其他条件不变前提下仅改变这个条件值,而使判定结果改变。

对函数num_of_passer来说,为了使其中所有语句至少执行一次,程序中两种返回值必须各覆盖一次,所以为达到100%语句覆盖率,至少需要两个测试用例,即参数异常测试用例和参数正常测试用例。 函数num_of_passer在第4行和第7行有两处条件判断,为了使程序中每个判定取所有可能值至少一次,第4行需要取TRUE和FALSE,第7行需要取TRUE和FALSE。

由于第4行取FALSE时,就能覆盖到第7行判定,同时又由于第7行判定在一个大于一次循环中,一个测试用例就可以覆盖到第7行TRUE和FALSE,所以函数num_of_passer100%分支覆盖也最少两个测试用例就可以满足,即一个第4行取TRUE测试用例和一个第4行取FALSE、第7行取TRUE和FALSE测试用例即可,由于第7行条件判断在多次循环中,取TRUE和FALSE测试用例也比较好构造。

函数num_of_passer组合条件也出现在第4行和第7行。对第4行组合条件需要4个测试用例来满足MC/DC覆盖,分别为①参数array为NULL,②array不为NULL且num为0,③array不为NULL且num为大于16值,④array不为NULL且num为1到16之间值。

对第7行组合条件需要3个测试用例来满足MC/DC覆盖,分别为①Value1>45且Value2>45,②Value1>45且Value2<=45,③Value1<=45且Value2为任意值。由于取第4行array不为NULL且num为1到16之间值测试用例时,程序将执行到第7行,这时由于第7行在一个多次循环中,第7行需要3个测试用例都可以在此用例中进行覆盖,所以最少需要4个测试用例就可以使函数num_of_passer满足100%MC/DC覆盖。

更新时间:2022-08-10 06:59
纠错

你可能感兴趣的试题

问答题

在开发某嵌入式系统时,设计人员根据系统要求,分别编写了如下程序,其中:

[程序1]:实现两个变量值互换;

[程序2]:完成某功能C语言程序;

[程序3]和[程序4]:是P、V操作形式化定义,设S为信号量。在多道程序系统中,进程是并发执行。这些进程间存在着不同相互制约关系,主要表现为同步和互斥两个方面。信号量是解决进程间同步与互斥有效方法。[程序1]void swap (int n1, int n2){int tmp=n1;n1=n2;n2=tmp;}[程序2]#include image.pngstdio.h>int fun (int n){int f0=0, f1=1, f, i;if (n==0) return 0;if (n==1) return 1;for(i=2; iimage.png=n; i++){f=f0+f1;f0=f1;f1=f;}return f;}void main(){int n=5;printf ("fun(%d)=%d\n", n, fun(n));n=7;printf ("fun(%d)=%d\n", n, fun(n));n=9;printf ("fun(%d)=%d\n", n, fun(n));}[程序3]P操作形式化定义:P (S){__1____;if(__2____){阻塞该进程;将该进程插入信号量S等待队列;}}[程序4]V操作形式化定义:V(S){__3____;if(___4___){从信号量S等待队列中取出队首进程;将其插入就绪队列;}}

问题1:执行[程序1]后,没有能够实现两个变量值交换,为什么?请修改上述函数,实现两个变量值交换,要求函数无返回值,形式为:void swap(...)。

问题2:请问[程序2]运行结果是什么?

问题3:请简述什么是临界资源?什么是临界区? 请完成[程序3]和[程序4]形式化定义。

查看答案
问答题

某直升机显示控制计算机是其座舱显控系统核心部件,将来自飞行员参数和控制命令与载机飞行参数信息进行融合处理后,在显示器上显示。该显示控制计算机由一个显示控制单元和一个输入输出单元组成,它们之间通过双口RAM进行数据交换,如图4-1所示。

中级嵌入式系统设计师,章节练习,基础复习,中级嵌入式系统设计师练习

显示控制单元采用Freescale公司PowerPC8270高性能、低功耗32位处理器,并设计有系统FLASH存储器、用户FLASH存储器、SDRAM存储器。CPU内部宾成存储器控制器,提供地址译码、数据处理周期访问时序、SDRAM时钟等功能。输入输出单元采用Ti公司DSP F2812高性能、低功耗16位处理器,采用ARINC429总线用于接收导航计算机、大气数据计算机等外部设备数据。

ARINC429解算程序严格遵循ARINC429规范,其通用字格式如表4-1所示,字长32Bit,不用数据位填“0”。当接收到ARINC429数据后,首先判断状态位,只有在状态和标号正确情况下,才进一步根据分辨率等进行解算数据含义

中级嵌入式系统设计师,章节练习,基础复习,中级嵌入式系统设计师练习

问题1、系统FLASH存储器存储容量是8MB,用于存储CPU模块引导程序、BIT测试程序,FLASH在板编程程序,网口操作系统,用户程序。

系统FLASH地址分配在存储空间高端,地址空间为(1)~OxFFFFFFFF。用户FLASH存储器存储容量是为(2),用于记录数据存储。FLASH地址分配在存储空间高端,地址空间为0x78000000?0x7BFFFFFF。SDRAM存储容量是256MB,用于运行操作系统和应用软件,地址空间位于存储器低端0x00000000~3)。

请完成(1)~(3)填空。

问题2、根据ARINC429数据标号(D8-D1)可知该数据为高度表数据。根据系统定义,高度表数据分辨率为0.1米,即D9为1表示0.1米,D10为1表示0.2米,D11为1表示0.4米,依此类推。若接收数据帧中D28-D9位是0000.0000.0111.1101.0000,则当前高度是(1)米。若当前高度是100米,则数据帧中D28-D9位应为(2)。请完成(1)和(2)填空。

问题3、显示控制单元和输入输出单元通过双口jiao换信息,两个处理器上软件采用相同定义结构体来定义双口单元,方便交换信息。

以下是双口结构体定义:typedef struct{char ctrlWord; /*通道工作方式控制字*/char head; /*F1FO 控制头指针*/char tail; /*FIFO 控制尾指针*/short fifo[32] ; /*FIFO 缓冲区*/}SPM_CHAN_RX429; /*ARINC429 接收通道定义*/为了避免由于不同编译环境对上述数据结构产生不同编译结果,建议对上述数据结构通过设置紧缩属性(packed属性),强迫编译器采用字节对齐方式,在该模式下,SPM_CHAN_RX429结构体占用(1)字节存储空间。ARINC429接收通道设计为由一个首尾相连FIFO数组形成环形队列。

输入输出单元根据头指针向环形队列写入数据,头指针始终指向下一个要写入位置,并且限制写入数据最多为31个,即队尾与队首之间至少保留一个元素空间。

显示控制单元根据尾指针从环形队列读取数据,尾指针始终指向下一个要读取位置。初始化环形队列C语言为:typedef struct{char ctrlWord; /*通道工作方式控制字*/char head; /*F1FO 控制头指针*/char tail; /*FIFO 控制尾指针*/short fifo[32] ; /*FIFO 缓冲区*/}SPM_CHAN_RX429; /*ARINC429 接收通道定义*/SPM_CHAN_RX429 *pBuf;pBuf= (SPM_CHAN_RX429 *) ADDR_3RAM_PPC; /*双口地址宏定义*/ pBuf->ctrlWord=0;pBuf->head=O; pBuf->tail=O;判断队列为空C语言为(2)。判断队列为满C语言为(3)。;请完成(1)~(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,则使用本周期计算控制率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)。

中级嵌入式系统设计师,章节练习,基础复习,中级嵌入式系统设计师练习

查看答案
问答题

在某嵌入式系统设计中,使用8片RAM进行64KRAM外部存储器扩展,如图所示。该CPU有16根地址线,8根数据线,在设计中,利用CPU作为访问控制信号,该访问控制信号低电平有效。另外,R/W作为读写命令信号(高电平为读,低电平为写)。8片8Kx8位RAM芯片与CPU相连,RAM芯片片选内部为上拉电阻到电源,各个RAM芯片片选信号和74138译码器输出相连,译码器地址选择端连接到CPUA13,A14,A15地址线上。

中级嵌入式系统设计师,章节练习,基础复习,中级嵌入式系统设计师练习

问题1:根据上图所示,写出RAM0,RAM1和RAM7地址范围(请用16进制进行表示)。RAM0: (1)RAM1: (2)RAM7: (3)若CPU操作地址总线为A800H,结合上图所示示意图,CPU访问是哪个RAM存储器 ?(4) ?。

问题2:如果运行时发现不论往哪片RAM写入数据后,以C000H为起始地址存储芯片都有与其相同数据,假设芯片与译码器可靠工作,则说明:

(1)RAM0~RAM7中______片选输入端总是处于低电平。

(2)如果有问题存储芯片片选输入端总是处于低电平,以下可能原因中描述不正确是______。A.该存储芯片CS端与存储芯片端错连或短路B.该存储芯片CS端与CPU端错连或短路C.该存储芯片CS端与地线错连或短路D.该存储芯片CS端悬空

问题3:根据连接图,若出现地址线A15与CPU断线,并搭接到高电平上,下面描述中正确是______。(该题为多选题)A.此时存储器只能寻址A15=1地址空间B.此时存储器只能寻址总共64KB空间高32KB地址空间C.此时访问64KB空间高32KB地址空间时会错误地访问到低32KB地址空间D.此时访问64KB空间低32KB地址空间时会错误地访问到高32KB地址空间

查看答案
问答题

阅读以下关于电梯模拟控制系统设计方案说明,回答下列问题。

[说明]王工在实验室负责自动电梯模拟控制系统设计,自动电梯模拟控制系统需要完成电梯运行控制算法、输入界面和输出界面三项主要任务。系统结构图如图1所示。

中级嵌入式系统设计师,章节练习,基础复习,中级嵌入式系统设计师练习

根据电梯运行流程,把电梯划分为停止状态、运行状态、开门状态和关门状态4种控制状态。停止状态是指电梯在没有任何请求情况下静止状态,而不是指电梯在运行过程中开门前停顿状况,本题忽略停顿状况,把电梯从运行状态直接迁移为开门状态。电梯根据控制状态迁移规则进行状态迁移,系统初始时,电梯处于停止状态。

问题1:电梯根据控制状态迁移规则进行迁移,其状态迁移图如图2所示。请根据下面状态转移条件,完成状态迁移图。可供选择状态转移条件:a.其他楼层有呼叫请求;b.无呼叫请求;c.乘客进入电梯或等待一段时间后;d.到达请求楼层;e.电梯所在楼层有呼叫请求。

中级嵌入式系统设计师,章节练习,基础复习,中级嵌入式系统设计师练习

问题2:电梯运行处理程序流程图如图3所示。请完成该流程图。

中级嵌入式系统设计师,章节练习,基础复习,中级嵌入式系统设计师练习

问题3:系统采用多级优先级中断结构,如图4所示。它要求CPU在执行完当前指令时转而对中断请求进行服务。设备A连接于最高优先级,设备B次之,设备C又次之。IRQx为中断请求信号,INTx为CPU发出中断响应信号

中级嵌入式系统设计师,章节练习,基础复习,中级嵌入式系统设计师练习

现假设:TDC为硬件中断周期时间;TM为一个指令执行周期时间;TA、TB、TC分别为A、B、C中断服务程序执行时间;TS、TR为保护现场和恢复现场所需时间。图5是中断处理过程示意图。

中级嵌入式系统设计师,章节练习,基础复习,中级嵌入式系统设计师练习

当三个设备同时发出中断请求时,依次处理设备A、B、C时间是多少?这种结构下中断饱和时间是多少?

查看答案
问答题

企业根据利润提成发放奖金。利润低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元部分按10%提成,高于10万元部分,可提成15%;利润在20万到40万之间时,高于20万元部分,可提成20%;40万到60万之间时高于40万元部分,可提成25%;60万到100万之间时,高于60万元部分,可提成30%;高于100万元时,高于100万元部分可提成35%o已知企业本年度12个月月利润存储在数组profit中,程序要求根据月利润计算月奖金并存储到数组bonus中,然后计算并返回该企业年度总利润total_profito该程序实现如下:

【程序】int calculate_bonus(const int profit[ ], int bonus[ ]){int n=12;int i=0;int sum_profit=0;int bonus1,bonus2,bonus4,bonus6,bonuslO;bonus1=100000*0.1;bonus2=bonus1+100000*0.15;bonus4=bonus2+200000*0.2;bonus6=bonus4+200000*0.25; bonusl0=bonus6+400000*0.3;for (i=0;iimage.pngn; i++){if (profit[i]image.png=100000)(1);else if(profit[i]image.png=200000)(2);else if(profit[i]image.png=400000)(3);else if(profit[i]image.png=600000)(4);else if(profit[i]image.png=1000000)(5) ;else(6) ;}/*以下代码计算年度总利润*/i=0;while(iimage.pngn)sum_profit += profit[++i];return sum_profit;}

问题:1 在程序中,使用关键字const修饰输入参数profit,请将这样修饰作用写到(1)处。如果程序中bonus数组也使用const修饰,是否正确,并给出解释,请将答案写到(2)处。

问题:2 分析程序中计算年度总利润代码,指出错误一行代码,将错误代码写到(1)处;然后用一条语句实现正确代码,将正确代码写到(2)处。

问题:3 根据题意分析程序,完成程序中(1)~(6),每个空行只能写一行代码,即用一条语句来描述。

查看答案
问答题

某直升机显示控制计算机是其座舱显控系统核心部件,将来自飞行员参数和控制命令与载机飞行参数信息进行融合处理后,在显示器上显示。该显示控制计算机由一个显示控制单元和一个输入输出单元组成,它们之间通过双口RAM进行数据交换,如图4-1所示。

中级嵌入式系统设计师,章节练习,基础复习,中级嵌入式系统设计师练习

显示控制单元采用Freescale公司PowerPC8270高性能、低功耗32位处理器,并设计有系统FLASH存储器、用户FLASH存储器、SDRAM存储器。CPU内部宾成存储器控制器,提供地址译码、数据处理周期访问时序、SDRAM时钟等功能。输入输出单元采用Ti公司DSP F2812高性能、低功耗16位处理器,采用AF.INC429总线用于接收导航计算机、大气数据计算机等外部设备数据。

ARINC429解算程序严格遵循ARINC429规范,其通用字格式如表4-1所示,字长32Bit,不用数据位填“0”。当接收到ARINC429数据后,首先判断状态位,只有在状态和标号正确情况下,才进一步根据分辨率等进行解算数据含义。

中级嵌入式系统设计师,章节练习,基础复习,中级嵌入式系统设计师练习

问题:1 系统FLASH存储器存储容量是8MB,用于存储CPU模块引导程序、BIT测试程序,FLASH在板编程程序,网口操作系统,用户程序。系统FLASH地址分配在存储空间高端,地址空间为(1)~OxFFFFFFFF。用户FLASH存储器存储容量是为(2),用于记录数据存储。FLASH地址分配在存储空间高端,地址空间为0x78000000?0x7BFFFFFF。SDRAM存储容量是256MB,用于运行操作系统和应用软件,地址空间位于存储器低端0x00000000~3)。请完成(1)~(3)填空。

问题:2 根据ARINC429数据标号(D8-D1)可知该数据为高度表数据。根据系统定义,高度表数据分辨率为0.1米,即D9为1表示0.1米,D10为1表示0.2米,D11为1表示0.4米,依此类推。若接收数据帧中D28-D9位是0000.0000.0111.1101.0000,则当前高度是(1)米。若当前高度是100米,则数据帧中D28-D9位应为(2)。请完成(1)和(2)填空。

问题:3 显示控制单元和输入输出单元通过双口交换信息,两个处理器上软件采用相同定义结构体来定义双口单元,方便交换信息。以下是双口结构体定义:typedef struct{char ctrlWord; /*通道工作方式控制字*/char head; /*F1FO 控制头指针*/char tail; /*FIFO 控制尾指针*/short fifo[32] ; /*FIFO 缓冲区*/}SPM_CHAN_RX429; /*ARINC429 接收通道定义*/为了避免由于不同编译环境对上述数据结构产生不同编译结果,建议对上述数据结构通过设置紧缩属性(packed属性),强迫编译器采用字节对齐方式,在该模式下,SPM_CHAN_RX429结构体占用(1)字节存储空间。ARINC429接收通道设计为由一个首尾相连FIFO数组形成环形队列。输入输出单元根据头指针向环形队列写入数据,头指针始终指向下一个要写入位置,并且限制写入数据最多为31个,即队尾与队首之间至少保留一个元素空间。显示控制单元根据尾指针从环形队列读取数据,尾指针始终指向下一个要读取位置。初始化环形队列C语言为:typedef struct{char ctrlWord; /*通道工作方式控制字*/char head; /*F1FO 控制头指针*/char tail; /*FIFO 控制尾指针*/short fifo[32] ; /*FIFO 缓冲区*/}SPM_CHAN_RX429; /*ARINC429 接收通道定义*/SPM_CHAN_RX429 *pBuf;pBuf= (SPM_CHAN_RX429 *) ADDR_3RAM_PPC; /*双口地址宏定义*/ pBuf->ctrlWord=0;pBuf->head=O; pBuf->tail=O;判断队列为空C语言为(2)。判断队列为满C语言为(3)。;请完成(1)~(3)填空。

查看答案
问答题

某飞行器供油阀控制软件通过控制左右两边油箱BL、BR向左右发动机EL、ER供油,既要保证飞行器正常飞行,又要保证飞行器平衡,该软件主要完成功能如下:

(1)无故障情况下,控制左油箱Bl向左发动机BL供油,右油箱EL向右发动机BR供油,不上报故障;

(2)当左油箱BL故障时,控制右油箱BR分别向左、右发动机EL和ER供汩,并上报二级故障——左油箱故障;

(3)当右油箱BR故障时,控制左油箱BL分别向左、右发动机EL和ER供汩,并上报二级故障——右油箱故障;

(4)当左发动机EL故障时,根据左右油箱剩油量决定(如果左右油箱剩油量之差大于等于50升,则使用剩油量多油箱供油,否则同侧优先供油)左油箱BL还是右油箱BR向右发动机Er供油,并上报一级故障——左发动机故障;

(5)当右发动机ER故障时,根据左右油箱剩油量决定(如果左右油箱剩油量之差大于等于50升,则使用剩油量多油箱供油,否则同侧优先供油)左油箱BL.还是右油箱BR向左发动机El供油,并上报一级故障——右发动机故障;

(6)当一个油箱和一个发动机同时故障时,则无故障油箱为无故障发动机供油,并上报一级故障——故障油箱和发动机所处位置;

(7)当两个油箱或两个发动机同时故障或存在更多故障时,则应进行双发断油控制,并上报特级故障——两侧油箱或两侧发动机故障;

(8)故障级别从低到高依次为二级故障、一级故障和特级故障,如果低级故障和高级故障同时发生,则只上报最高级别故障。

问题:1 在嵌入式软件测试中,一般采用测试方法有白盒测试、黑盒测试和灰盒测试方法,白盒测试方法中需要基于(1)进行测试;根据本题给定条件,最恰当测试方法应选择(2)。

问题:2 覆盖率是度量测试完整性一个手段,也是度量测试有效性一个手段。在嵌入式软件白盒测试过程中,通常以语句覆盖率、分支覆盖率和MC/DC覆盖率作为度量指标。在实现第6条功能时,设计人员对部分功能采用了下列算法:if((BL==故障)&&(EL==故障)){BR供油ER;BL断油;EL断油;}请指出对上述算法达到100%语句覆盖、100%分支(DC)覆盖和100%MC/DC覆盖所需最少测试用例数目。请完成表3-1中(1)?(3)填空。

中级嵌入式系统设计师,章节练习,基础复习,中级嵌入式系统设计师练习

问题:3 为了测试此软件功能,测试人员设计了表3-2所示测试用例,请填写该表中空(1)?(9),并将答案填写在对应栏中。

中级嵌入式系统设计师,章节练习,基础复习,中级嵌入式系统设计师练习

查看答案
问答题

某公司承接了一个数据处理模块项目,由沈工负责模块方案设计,沈工设计方案如图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语言代码补全。

中级嵌入式系统设计师,章节练习,基础复习,中级嵌入式系统设计师练习

中级嵌入式系统设计师,章节练习,基础复习,中级嵌入式系统设计师练习

查看答案
问答题

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

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)。

中级嵌入式系统设计师,章节练习,基础复习,中级嵌入式系统设计师练习

查看答案