当前位置:首页 → 计算机类 → 软件水平考试 → 中级嵌入式系统设计师->在某嵌入式系统设计中,使用8片RAM进行64KRAM外部存储
在某嵌入式系统设计中,使用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:(1)0000H-1FFFH (2)2000H-3FFFH(3)E000H-FFFFH (4)RAM5
在该嵌入式系统设计中,使用8片RAM进行64KRAM外部存储器扩展。该CPU共有16根地址线,8根数据线。在设计中,各个RAM片选信号依次连接在74LS138八位输出信号上,74LS138地址选择线连接在CPU地址线A15,A14,A13上,因此,对8个RAM选择依赖于CPU地址线A15,A14和A13电平。
根据74LS138可知,对于RAM0~RAM78个RAM而言,依次对应A15,A14,A13值为000,001,010,011,100,101,110,111。
同时,由于每个RAM空间大小为8K,占据地址线为A0~A12,因此,可以知道各个RAM地址范围依次是:RAM0:0000H-1FFFHRAM1:2000H-3FFFHRAM2:4000H-5FFFHRAM3:6000H-7FFFHRAM4:8000H-9FFFHRAM5:A000H-BFFFHRAM6:C000H-DFFFHRAM7:E000H-FFFFH
问题2:(1)RAM6(2)D
由上题可知,对应C000H地址片选为RAM6,也就是说RAM6一直处于被选通状态。从原理图中连接情况可以看出,CS片选只有一直是低电平状态下才可以有效。
从原理图中可以看出,WE以及MREQ信号都是低电平有效,同时由题目中知道,该管脚为片内上拉到电源,因此如果该CS一直有效,可能潜在原因包括与WE信号或者MREQ信号接错,或者是直接与地短接。
问题3:ABD
如果A15与CPU断开,并且接到高电平,则说明A15一直为高,那么A15,A14,A13取值可能范围为100,101,110,111。也就是说,此时存储器寻址范围只能是A15=1存储地址空间,与之前8片RAM相比,现在只能寻址到4片RAM,因此先前64KB空间中只能寻址到高32KB地址空间。同时,由于高位A15一直为1,因此,如果按照用户期望访问总共64KB空间低32KB空间时,会错误访问到高32KB地址空间。
在开发某嵌入式系统时,设计人员根据系统要求,分别编写了如下程序,其中:
[程序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)。