1、嵌入式系统设计师-30 及答案解析(总分:45.00,做题时间:90 分钟)一、试题一(总题数:1,分数:15.00)阅读以下关于中断的叙述。 说明 在某嵌入式系统中,王工设计的计算机模块如图所示。它要求 CPU 在执行完当前指令后转而对中断请求进行处理。假定:TDC 为查询链中每个设备的延迟时间,Ta、Tb、Tc 分别为设备 A、B、C 的中断服务程序所需的执行时间,TS 和 TR 为保存现场和恢复现场所需的时间。 (分数:15.00)(1).一般计算机系统根据对中断处理的策略不同,可分为单级中断系统和多级中断系统。本项目中王工设计的系统属于哪一类中断系统?请将设备 A、设备 B、设备 C
2、三个设备的中断优先级按照从高到低的次序排列。(分数:3.75)_(2).本系统不允许中断嵌套,如果 CPU 响应中断,则中断处理过程按照如下流程执行,将内容填入相应的位置。 中断处理过程流程: a. CPU 检查响应中断的条件是否满足; b.如果 CPU 响应中断,则_; c._; d.分析中断原因; e._; f.退出中断,_; g._,CPU 继续执行。(分数:3.75)_(3).当设备 A、设备 B、设备 C 同时发出中断请求时,请计算出处理器处理设备 A、B、C 的时间 TA、TB和 TC。如果处理三个设备所需要的总时间为 T,那么本系统所设计的中断极限频率 f 是多少?(分数:3.7
3、5)_(4).嵌入式系统中多用 I/O 设备管理软件来管理外设。I/O 设备管理软件一般分为 4 层,层次关系和每一层的主要功能说明如图所示。请给出 4 层软件的名称,将内容填入相应的位置。 (分数:3.75)_二、试题二(总题数:1,分数:15.00)阅读以下关于某嵌入式系统设计方案的叙述。 说明 某公司承接了开发周期为 6 个月的某机载嵌入式系统软件的研制任务。该机载嵌入式系统硬件由数据处理模块、大容量模块、信号处理模块、FC 网络交换模块和电源模块组成,如图所示。数据处理模块和大容量模块的处理器为 PowerPC7447,数据处理模块主要对机载数据进行处理,完成数据融合;大容量模块主要存
4、储系统数据,同时也有数据处理的能力;信号处理模块的处理器为专用的数字信号处理器 DSP,完成雷达数据处理,并将处理后的数据发送给数据处理模块;FC 网络交换模块为已开发的模块,本次不需要开发软件,主要负责系统的数据交换;电源模块主要负责给其他模块供电,电源模块上没有软件。 PowerPC7447 和 DSP 是 32 位处理器,内存按字节编址。PowerPC7447 以大端方式( big_endian)存储数据,DSP 以小端方式(little endian)存储数据。 (分数:15.00)(1).在数据处理模块 1 中,需要使用 A/D 变换器对外部电源模块的电压进行检测。当前数据处理模块中
5、的A/p 变换器为 10 位,当 A/D 变换器的输入模拟电压最大为 5.115V 时,A/D 输出为 3FFH。 通过配置 A/D 变换器的中断寄存器及比较寄存器(比较寄存器的值是用来和 A/D 转换结果进行比较),可以将 A/D 变换器配置为输入电压大于一定值时产生中断,也可以配置为输入电压小于一定值时产生中断,通过此种方式向系统报警。 请回答以下三个问题。 (1)此 A/D 变换器的量化间隔为多少 mV?(量化间隔为 A/D 变换器最低有效位 1 位所代表的模拟电压值) (2)如果规定下限阈值为 4.092V,要使用中断检测这个电压,此时 A/D 变换器的比较寄存器应配置为多少? (3)
6、如果采用查询方式实现电源电压超限报警功能,程序如何判断 A/D 变换器完成了单次数据转换?(分数:5.00)_(2).李工负责该系统软件的研发。在软件策划过程中,为了加快软件的开发,确保进度,李工将软件分解为若干软件配置项,每个软件配置项指定一人开发。每个配置项的开发过程包括:软件需求分析、软件概要设计、软件详细设计、软件编码、软件单元测试和部件级测试六个阶段。李工的做法符合软件工程的要求吗?为什么?(分数:5.00)_(3).田工负责编写信号处理模块与数据处理模块的通信程序,约定好的数据组织方式如表所示。 表 网络数据结构 数据域 A(1 字节) 数据域 B(4 字节) 数据域 C(2 字节
7、) 数据域 D(16 字节) 以下是信号处理模块端的一段程序: unsigned int msgid=Ox01;/表示从信号处理模块发送到数据处理模块 2 的消息 ID typedef struct FCSNDData_struct unsigned char A; unsigned int B; unsigned short C; unsigned char D16; FCSND DATA; FCSND_DATA sendData; FillfcData( /接收到的消息 ID typedef struct FCRCV_Data _struct unsigned char A; unsign
8、ed int B; unsigned short C; unsigned char D16; FCRCV_DATA; FCRCV_DATA recvData; recvfc( (msgid,/表示从信号处理模块发送到数据处理模块 2 的消息 ID typedef struct FCSNDData_struct unsigned char A; unsigned int B; unsigned short C; unsigned char D16; FCSND DATA; FCSND_DATA sendData; FillfcData( /接收到的消息 ID typedef struct FCR
9、CV_Data _struct unsigned char A; unsigned int B; unsigned short C; unsigned char D16; FCRCV_DATA; FCRCV_DATA recvData; recvfc( (msgid,&recvData,sizeof (FCRCV_DATA); /接收数据 请问以上程序是否存在问题?如果存在问题,请分析原因。(分数:5.00)_正确答案:()解析:有问题。 (1)数据结构定义有边界对齐问题; (2)接收和发送端的处理程序没有对大小端转换进行处理。 解析 本题中,田工在发送和接收消息时采用的数据类型为 FCSND
10、- DATA 和 FCRCV_DATA,数据类型中有字符型、整型、短整型、字符数组;而发送端为信号处理模块,其处理器为专用的数字信号处理器 DSP。接收端为数据处理模块,其处理器为PowerPC7447。在嵌入式系统中,C 语言的编译器在专用的信号处理器 DSP 和 PowerPC7447 很可能不同,不同的编译器对数据有边界的对齐处理会有不同的方式,不一定采用上表规定的组织方式。可能的情况是:(1)两者都不是上表规定的内存组织方式; (2)信号处理模块数据可能与数据处理模块的内存组织方式不同。 解决办法为在数据结构设计中只用字符型和字符数组,不同其他类型数据。 另外,题干中已经明确:Powe
11、rPC7447 和 DSP 是 32 位处理器,内存按字节编址。PowerPC7447 以大端方式(big_endian)存储数据,DSP 以小端方式(little_endian)存储数据。因此,需要对大小端转换进行处理,在发送端或接收端都可以,而本题明显没进行大小端转换处理。三、试题三(总题数:1,分数:15.00)阅读以下关于嵌入式软件测试用例设计的叙述。 说明 某程序段的流程如图所示,x、y 是两个变量,K、J 表示一段程序执行体,如下表所示为本题可供选择的四组测试用例组。 (分数:15.00)(1).简答以下问题。 (1)条件覆盖的含义是什么? (2)路径覆盖的含义是什么?(分数:5.
12、00)_正确答案:()解析:(1)条件覆盖是指设计足够的测试用例,使得被测程序每一个判定中的每个条件的所有可能结果至少出现一次。 (2)路径覆盖是指设计足够的测试用例,使得被测程序中每条路径至少执行一次。 解析 本题考查软件测试的基本知识。 条件覆盖是指设计足够的测试用例,使得被测程序每一个判定中的每个条件的所有可能结果至少出现一次。路径覆盖是指设计足够的测试用例,使得被测程序中每条路径至少执行一次。(2).在程序测试用例设计中,有语句覆盖、条件覆盖、判定覆盖(分支覆盖)和路径覆盖等。其中,_是最强的覆盖准则。 请把以下 4 个选项中正确的选项序号填入上述空白处。 语句覆盖 条件覆盖 判定覆盖
13、(分支覆盖) 路径覆盖(分数:5.00)_正确答案:()解析:(1)(路径覆盖) 解析 在结构测试中,根据覆盖目标的不同,可以分为语句覆盖、条件覆盖、判定覆盖(分支覆盖)和路径覆盖等。 语句覆盖的含义是设计足够的测试用例,使得被测程序每一条语句至少被执行一次。 判定覆盖(分支覆盖)的含义是设计足够的测试用例,运行被测程序,使得程序中每个判定的取真分支和取假分支至少执行一次。 其中,路径覆盖是最强的覆盖准则。(3).为了对上图所示的程序段进行覆盖测试,必须适当地选取测试用例组。实现判定覆盖至少应采用的测试用例组是_和_,实现条件覆盖至少应采用的测试用例组是_;实现路径覆盖至少应采用的测试用例组是
14、_和_。 请把以下 8 个选项中正确的选项序号填入上述空白处。 测试用例组 I 和 II 测试用例组 II 和 III 测试用例组 III 和 IV 测试用例组 I 和 IV 测试用例组 I、II 和 III 测试用例组 II、III 和 IV 测试用例组 I、III 和 IV 测试用例组 I、II 和 IV(分数:5.00)_正确答案:()解析: 其中,第 1 和第 2 空的答案顺序可互换,第 4、5 空的答案顺序可互换。 解析 为判定覆盖选取测试用例情形:对第一个判定选取测试用例组 I 和 II,当用 I 覆盖判定的 T 分支时,不会走到第二个分支;当用 II 覆盖判定的 F 分支时,第二个判定需要另取一个测试用例组覆盖其 T 分支,此时取测试用例组 III或 IV 即可。 为条件覆盖选取测试用例情形:取测试用例组 I、III 和 IV,就可以覆盖所有 4 个条件的取值。 为路径覆盖选取测试用例情形:总共三条路径,需要三个测试用例,可选使各路径为 T 的测试用例。I、II、III 或 I、II、IV 均可。