2011年下半年嵌入式系统设计师下午试卷案例考试真题答案解析



1
 
某公司承接了开发周期为6个月的某机载嵌入式系统软件的研制任务。该机载嵌入式系统硬件由数据处理模块、大容量模块、信号处理模块、FC网络交换模块和电源模块组成,如图1-1所示。数据处理模块和大容量模块的处理器为POWCTPC7447,数据处理模块主要对机载数据进行处理,完成数据融合;大容量模块主要存储系统数据,同时也有数据处理的能力:信号处理模块的处理器为专用的数字信号处理器DSP,完成雷达数据处理,并将处理后的数据发送给数据处理模块;FC网络交换模块为已开发的模块,本次不需要开发软件,主要负责系统的数据交换;电源模块主要负责给其他模块供电,电源模块上没有软件。
PowerPC7447和DSP是32位处理器,内存按字节编址。PowerPC7447以大端方式(big_endian)存储数据,DSP以小端方式(little_endian)存储数据。

2011年下半年嵌入式系统设计师下午试卷案例考试真题答案解析第1张

 
问题:1.1   在数据处理模块1中,需要使用A/D变换器对外部电源模块的电压进行检测。当前数据处理模块中的A/D变换器为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) 如果釆用查询方式实现电源电压超限报警功能,程序如何判断A/D变换器完成了单次数据转换?
 
问题:1.2   李工负责该系统软件的研发。在软件策划过程中,为了加快软件的开发,确保进度,李工将软件分解为若干软件配置项,每个软件配置项指定一人开发。每个配置项的开发过程包括:软件需求分析、软件概要设计、软件详细设计、软件编码、软件单元测试和部件级测试六个阶段。李工的做法符合软件工程的要求吗?为什么?
 
问题:1.3   田工负责编写信号处理模块与数据处理模块的通信程序,约定好的数据组织方式如表1-1所示。
2011年下半年嵌入式系统设计师下午试卷案例考试真题答案解析第2张
以下是信号处理模块端的一段程序:
2011年下半年嵌入式系统设计师下午试卷案例考试真题答案解析第3张

以下是数据处理模块2端的一段程序:

2011年下半年嵌入式系统设计师下午试卷案例考试真题答案解析第4张
请问以上程序是否存在问题?如果存在问题,请分析原因。

 
 

2
 
图2-1为使用某嵌入式处理器和8255对打印机进行控制的电路图,其中8255的中断请求PC3接到处理器的中断请求输入端2011年下半年嵌入式系统设计师下午试卷案例考试真题答案解析第5张上,打印机的数据口接在8255的PA0-PA7上,打印机的输出电平2011年下半年嵌入式系统设计师下午试卷案例考试真题答案解析第6张接在8255的PC6上。
为了使用嵌入式处理器对打印机进行控制,在程序设计时,需要将8255的PAPS置为工作方式1;PB口设置在工作方式0,配置为输入;PC口的PCO、PCI、PC2、PC3和PC4定义为输出。
为了在打印机输出为低电平时通过8255的PC3产生有效的中断请求信号INTRA,必须使得A口的中断请求使能INTE=1,实际上就是通过C口的按位复位操作将PC6置1,整个程序分为四部分:依次是8255的初始化,嵌入式处理器的中断初始化,嵌入式处理器的主程序和打印字符的中断处理程序。其中8255的端口配置功能如表2-1所示。嵌入式处理器的中断使能控制字含义如表2-2所示,该处理器的典型汇编指令如表2-3所示。
2011年下半年嵌入式系统设计师下午试卷案例考试真题答案解析第7张
2011年下半年嵌入式系统设计师下午试卷案例考试真题答案解析第8张
2011年下半年嵌入式系统设计师下午试卷案例考试真题答案解析第9张
2011年下半年嵌入式系统设计师下午试卷案例考试真题答案解析第10张
 
问题:2.1   根据图2-1所示,通过嵌入式处理器访问8255的PA口、PB口和PC口对应的地址分别是什么?(请用十六进制描述)
对应的地址:
PA口:(1)
PB口:(2)
PC口:(3)
 
问题:2.2   在嵌入式处理器的汇编语言中,最简单的指令寻址方式为立即寻址和直接寻址,请回答下面两个汇编语言语句所描述的含义,将答案填写在答题纸的对应栏中。
MOV A,#3AH:(1)
MOV R4,3AH:(2)
 
问题:2.3   以下汇编程序用于打印机输出控制,请将下面汇编程序的空(1)〜(5)补充完整,并将解答填入答题纸的对应栏中。
8255的A口工作在方式1输出,初始化程序:
2011年下半年嵌入式系统设计师下午试卷案例考试真题答案解析第11张
2011年下半年嵌入式系统设计师下午试卷案例考试真题答案解析第12张
 
 

3
 
某程序段的流程如图3-1所示,x、y是两个变量,K、J表示一段程序执行体,表3-1所示为本题可供选择的四组测试用例组。2011年下半年嵌入式系统设计师下午试卷案例考试真题答案解析第13张
 
问题:3.1   简答以下问题。
(1) 条件覆盖的含义是什么?
(2) 路径覆盖的含义是什么?
 
问题:3.2  

在程序测试用例设计中,有语句覆盖、条件覆盖、判定覆盖(分支覆盖)和路径覆
盖等。其中, 是最强的覆盖准则。
请把以下4个选项中正确的选项序号填入上述空白处。
①语句覆盖
②条件覆盖
③判定覆盖(分支覆盖)
④路径覆盖

 
问题:3.3   为了对图3-1所示的程序段进行覆盖测试,必须适当地选取测试用例组。实现判定覆盖至少应采用的测试用例组是(1)和(2),实现条件覆盖至少应采用的测试用例组是(3);实现路径覆盖至少应采用的测试用例组是(4)和(5).
请把以下8个选项中正确的选项序号填入上述空白处。
①测试用例组I和II
②测试用例组II和m
③测试用例组ID和IV+
④测试用例组I和IV
⑤测试用例组I、II和m
⑥测试用例组II、m和iv
⑦测试用例组I、m和iv
⑧测试用例组I、II和IV
 
 

4
 
阅读以下关于中断的叙述,回答问题1至问题4,将答案填入答题纸的对应栏内。【说明】
在某嵌入式系统中,王工设计的计算机模块如图4-1所示。它要求CPU在执行完当前指令后转而对中断请求进行处理。假定:TDC为查询链中每个设备的延迟时间,Ta、Tb、Tc分别为设备A、B、C的中断服务程序所需的执行时间,TS和TR为保存现场和恢复现场所需的时间。
2011年下半年嵌入式系统设计师下午试卷案例考试真题答案解析第14张
 
问题:4.1   一般计算机系统根据对中断处理的策略不同,可分为单级中断系统和多级中断系统。本项目中王工设计的系统属于哪一类中断系统?请将设备A、设备B、设备C三个.设备的中断优先级按照从高到低的次序排列。
 
问题:4.2   本系统不允许中断嵌套,如果CPU响应中断,则中断处理过程按照如下流程执行,将(1)〜(5)的内容填入答题纸上相应的位置。
中断处理.过程流程:
a) CPU检查响应中断的条件是否满足;
b) 如果CPU响应中断,则(1):
c) (2);
d) 分析中断原因;
e) (3):
f) 退出中断,(4):
g) (5),CPU继续执行。
 
问题:4.3   当设备A、设备B、设备C同时发出中断请求时,请计算出处理器处理设备A、B、C的时间TA、TB和TC。如果处理三个设备所需要的总时间为T,那么本系统所设计的中断极限频率f是多少?
 
问题:4.4   嵌入式系统中多用I/O设备管理软件来管理外设。I/O设备管理软件一般分为4层,层次关系和每一层的主要功能说明如图4-2所示。请给出4层软件的名称,将(1)〜(4)的内容填入答题纸上相应的位置。

2011年下半年嵌入式系统设计师下午试卷案例考试真题答案解析第15张

 
 

5
 
在开发某嵌入式系统时,设计人员根据系统要求,分别编写了如下三部分程序,其中:
【C代码1】是李工为了在嵌入式平台上开发一段可变参数函数,在X86平台上实现的一个参数个数可变函数实例。
【C代码2】是王工在编写软件时,自己编写的内存拷贝函数。
【C代码3】是赵工编写的一段数据处理的程序,其中fiin()的含义为从已创建的一个单向链表中查找倒数第index个结点。他的设计思路为:首先创建两个指针ptrl,ptr2,并且都指向链表头,然后ptrl向前走index步,这样ptrl和ptr2之间就间隔index个结点,然后ptrl和ptr2同时向前步进,当ptrl到达最后一个结点时,ptr2就是倒数第index个结点了。ReverseListO为赵工编写的对已有单向链表进行逆序重排的函数。
2011年下半年嵌入式系统设计师下午试卷案例考试真题答案解析第16张
2011年下半年嵌入式系统设计师下午试卷案例考试真题答案解析第17张
2011年下半年嵌入式系统设计师下午试卷案例考试真题答案解析第18张
2011年下半年嵌入式系统设计师下午试卷案例考试真题答案解析第19张
2011年下半年嵌入式系统设计师下午试卷案例考试真题答案解析第20张
 
问题:5.1   执行C代码1后,Sum的值应为多少?请用十进制表示。
 
问题:5.2   请问C代码2中static的作用是什么?const的作用是什么?丨王工自己编写的内存拷贝函数安全吗?如存在缺陷,请指出缺陷在哪里。
 
问题:5.3   仔细阅读并分析C代码3,填补其中的空(1)〜(5)。
 
 

,