【计算机类职业资格】计算机水平考试中级嵌入式系统设计师2013年下半年下午真题及答案解析.doc

上传人:explodesoak291 文档编号:1339084 上传时间:2019-10-17 格式:DOC 页数:10 大小:100.50KB
下载 相关 举报
【计算机类职业资格】计算机水平考试中级嵌入式系统设计师2013年下半年下午真题及答案解析.doc_第1页
第1页 / 共10页
【计算机类职业资格】计算机水平考试中级嵌入式系统设计师2013年下半年下午真题及答案解析.doc_第2页
第2页 / 共10页
【计算机类职业资格】计算机水平考试中级嵌入式系统设计师2013年下半年下午真题及答案解析.doc_第3页
第3页 / 共10页
【计算机类职业资格】计算机水平考试中级嵌入式系统设计师2013年下半年下午真题及答案解析.doc_第4页
第4页 / 共10页
【计算机类职业资格】计算机水平考试中级嵌入式系统设计师2013年下半年下午真题及答案解析.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、计算机水平考试中级嵌入式系统设计师 2013 年下半年下午真题及答案解析(总分:15.00,做题时间:150 分钟)试题一 阅读以下关于电梯模拟控制系统设计方案的说明,回答下列问题。 说明 王工在实验室负责自动电梯模拟控制系统的设计,自动电梯模拟控制系统需要完成电梯运行控制算法、输入界面和输出界面三项主要任务。系统结构图如图 1 所示。 (分数:3.00)(1).电梯根据控制状态的迁移规则进行迁移,其状态迁移图如图 2 所示。请根据下面状态转移的条件,完成状态迁移图。 可供选择的状态转移条件: a其他楼层有呼叫请求; b无呼叫请求; c乘客进入电梯或等待一段时间后; d到达请求楼层; e电梯所

2、在楼层有呼叫请求。 (分数:1.00)_(2).电梯运行处理程序的流程图如图 3 所示。请完成该流程图。 (分数:1.00)_(3).系统采用多级优先级中断结构,如图 4 所示。它要求 CPU 在执行完当前指令时转而对中断请求进行服务。设备 A 连接于最高优先级,设备 B 次之,设备 C 又次之。IRQx 为中断请求信号,INTx 为 CPU 发出的中断响应信号。现假设:T DC为硬件中断周期时间;T M为一个指令执行周期时间;T A、T B、T C分别为 A、B、C 的中断服务程序执行时间;T S、T R为保护现场和恢复现场所需的时间。图 5 是中断处理过程示意图。(分数:1.00)_试题二

3、阅读以下关于某嵌入式处理器和存储器方面的说明,回答下列问题。说明在某嵌入式系统设计中,需要使用嵌入式主处理器对外围模拟视频信号进行采集、编码、存储和网络传输。图 1 为李工设计的该嵌入式系统的原理框图:采用两片 TVP5146 芯片进行两路模拟视频数据采集,在该处理器外围采用 MAX3232 芯片进行串口扩展,以方便系统调试,同时在该原理图中还设计了相应的Flash 存储器接口,DDR 存储器,网络及电源等电路。在该电路设计中,视频采集芯片 TVP5146 需要主处理器通过 I2C 接口进行采集模式、亮度、对比度、增益等参数的调节,但是主处理器只有一个 I2C 接口,因此需要将两个 TVP51

4、46 挂载的同一个 I2C 总线上,如图 2 所示 TVP5146 的 I2C 芯片地址选择如表 1 所示,当进行 I2C 读时,I 2C 地址的最低位是 1,当进行写操作时,I 2C 地址最低位是 0,A0 由外围电路的高低电平决定,高电平为 1,低电平为 0。(分数:3.00)(1).(答案用十六进制表示,比如 0xAA)根据图 2 及表 1 所示,对图 2 中的 TVP5146(1)和 TVP5146(2)两个芯片分别进行 I2C 读写操作时,其对应的地址依次是:TVP5146(1)读操作时的 I2C 地址: _(1)_ TVP5146(1)写操作时的 12C 地址: _(2)_ TVP

5、5146(2)读操作时的 12C 地址: _(3)_ TVP5146(2)写操作时的 I2C 地址: _(4)_ (分数:1.00)_(2).(答案用十六进制表示,比如 0xAA) 在图 2 原理图设计中,主处理器的串口控制器的时钟为 27M,在进行串口调试时,李工需要将串口配置为 9600bps 的波特率,需要对串口控制器的 DLL(Divisor Latches Low 寄存器)和 DLH(Divisor Latches High 寄存器)进行配置,DLL 和 DLH 的寄存器分别如图 2-3 和图 2-4所示。 (分数:1.00)_(3). (答案用十六进制表示,比如 0xAA)在李工对

6、 TVP5146 进行配置时,需要编写 I2C 的读写函数,在进行 I2C 的读写操作时,需要对 I2C 的控制寄存器、数据寄存器以及状态寄存器进行配置和查询。具体的写操作流程为:先配置控制寄存器为写模式,再检查状态寄存器,如果准备就绪,则向数据寄存器写数据,写完之后进行状态寄存器查询状态,根据状态退出写操作。具体的读操作流程为:先配置控制寄存器为读模式,再检查状态寄存器,如果准备就绪,则从数据寄存器中读出,然后退出。李工所选用的处理器对应的 I2C 控制寄存器、数据寄存器、状态寄存器各自的定义如表 2 表 3 和表 4 所示。(分数:1.00)_试题三 阅读以下关于软件测试的说明,回答下列问

7、题。 说明 使用在汽车、飞机中的嵌入式软件,由于直接影响人的生命及财产安全,测试要求更为严格。语句覆盖、判定覆盖、条件覆盖和 MC/DC 覆盖是通常对这类软件的要求。 以下是一段 C 语言代码,请仔细阅读,并回答相关问题: int logicTest(int x, int y) int magic=0; if(x0 else magic=x+y-10; if(magic 0) magic=0; return magic; (分数:3.00)(1).请根据测试要求,简要说明语句覆盖、判定覆盖、条件覆盖和 MC/DC 覆盖的含义。(分数:1.00)_(2).画出以上代码的流程图。(分数:1.00)

8、_(3).请根据说明中的 C 语言代码,计算满足 MC/DC 覆盖要求的用例数量及条件取值范围。(分数:1.00)_试题四 阅读以下关于某嵌入式系统 BIT 的说明,回答下列问题。 说明 某公司负责研制一个嵌入式计算机系统,如图 1 所示。该系统以 PowerPC 处理器为核心,通过 AD 进行实时数据采集,并将采集来的数据进行预处理后,通过 RS422 总线发送给后端计算中心。 (分数:3.00)(1).王工负责对该系统进行故障模式分析,识别出了该系统可能出现的故障模式,如表 1 所示。请将属于CPU 和 RAM 的故障找出来。 (分数:1.00)_(2).王工设计了三种 BIT 测试程序,

9、分别是上电 BIT、周期 BIT、维护 BIT。运行流程如图 2 所示。 * 请回答下面三个问题。 (1)请问不影响和破坏任务正常运行的是哪一种 BIT? (2)请问具有最完备的测试用例集合,可用于故障隔离和定位的是哪一种 BIT? (3)请问确保设备单元在使用前都被测试的是哪一种BIT?(分数:1.00)_(3).李工负责设计 CPU 单元的 BIT 测试算法,通过对每组指令分别设计一组测试用例,定义不同的操作数、操作码和预期值,在指令运行后比较结果与预期值。由于该系统选用的处理器集成了多级 Cache(高速缓存),并且指令缓存和数据缓存是分开的,执行指令功能测试前需要刷新指令 Cache,

10、以保证与内存中的测试代码一致。每个测试项的测试结果正确为 0,故障为 1。 以 32 位字比较指令 cmpw 测试为例,cmpw将寄存器 rA 和 rB 内数据比较的结果(大于、小于、等于)放入条件寄存器 crx,其操作码为 0x7C000000,测试用例数据如表 2 所示。 cmpw 指令功能测试的算法流程示意如图 3 所示。请补全流程图 3 中的执行操作。 (分数:1.00)_试题五 阅读以下说明,回答下列问题。 说明 在某嵌入式处理器上,编写以下两段程序(编译选项中,存储采用 4 字节对齐方式)。 程序段 1: struct student1 char name10; long sno;

11、 char sex; float score4; *p1, a1, b1; 程序段 2: union student2 char name10; long sno; char sex; float score4; *p2, a2, b2; 汉诺塔问题说明:有 n 个盘子在 A 处,盘子从小到大,最上面的盘子最小,程序要把这 n 个盘子从 A 处搬到 C 处,可以在 B 处暂存,但任何时候都不能出现大的盘子压在小的盘子上面的情况。 下列是一段求解汉诺塔问题的 C 语言程序。 #include stdio.h void move(int n, char a, char c) static int

12、Step=1; printf(“Step %2d: Disk %d %c- %cn“,Step,n,a,c); Step+; void Hanoi(int n, char a, char b, char c) if (n1) Hanoi(n-1, a, c, b); move(n, a, c); Hanoi(n-1, b, a, c) ; else move(n, a, c); void main() Hanoi(3,A, B, C); (分数:3.00)(1).C 语言函数的一般格式为: 函数类型 函数名 (参数列表) 函数体; 简答下述问题。 (1)函数类型的含义是什么? (2)参数列表的

13、含义是什么? (3)C 语言函数之间的参数如何传递?(分数:1.00)_(2). 回答问题。 (1)sizeof(struct student1)结果是多少? (2)sizeof(union student2)结果是多少? (3)变量 a2 在程序段 2 中定义,写出执行以下语句后的输出结果。 strcpy(a2. name, “zhangwei“); a2. Sex=f; printf(“%s“, a2.name);(分数:1.00)_(3). 仔细阅读求解汉诺塔问题的 C 语言程序,完成其中(1)(4)空白填空。 运行结果为: Step 1:Disk 1 A-C Step 2: _(1)_

14、 Step 3:Disk 1 C-B Step 4: _(2)_ Step 5: _(3)_ Step 6:Disk2 B-C Step 7: _(4)_ (分数:1.00)_计算机水平考试中级嵌入式系统设计师 2013 年下半年下午真题答案解析(总分:15.00,做题时间:150 分钟)试题一 阅读以下关于电梯模拟控制系统设计方案的说明,回答下列问题。 说明 王工在实验室负责自动电梯模拟控制系统的设计,自动电梯模拟控制系统需要完成电梯运行控制算法、输入界面和输出界面三项主要任务。系统结构图如图 1 所示。 (分数:3.00)(1).电梯根据控制状态的迁移规则进行迁移,其状态迁移图如图 2 所

15、示。请根据下面状态转移的条件,完成状态迁移图。 可供选择的状态转移条件: a其他楼层有呼叫请求; b无呼叫请求; c乘客进入电梯或等待一段时间后; d到达请求楼层; e电梯所在楼层有呼叫请求。 (分数:1.00)_正确答案:( (1)其他楼层有呼叫请求,或 a; (2)到达请求楼层,或 d; (3)乘客进入电梯或等待一段时间后,或 c; (4)无呼叫请求,或 b; (5)电梯所在楼层有呼叫请求,或 e; (6)其他楼层有呼叫请求,或 a。)解析: 本题考查嵌入式系统设计,涉及嵌入式软件和微处理器基础知识的应用。 电梯控制系统是典型的嵌入式系统,本题所述是一个实验室环境下的自动电梯模拟控制系统,

16、许多地方都做了简化。电梯的运行由电梯控制模块完成,它负责修改电梯当前状态,根据电梯状态派遣电梯执行停止、运行、开门、关门等任务,设置电梯处于各种状态的运行时间,指挥电梯按照运行规则运行。 根据电梯运行的流程,把电梯划分为停止、运行、开门、关门 4 种控制状态,电梯控制状态转移图如下图所示。停止状态是指电梯在没有任何请求的情况下的静止状态,而不是指电梯在运行过程中开门前的停顿状况,本题忽略停顿状况,把电梯从运行状态直接迁移为开门状态。 (2).电梯运行处理程序的流程图如图 3 所示。请完成该流程图。 (分数:1.00)_正确答案:( (1)改变状态为开门 (2)当前层上移一层 (3)改变状态为开

17、门 (4)改变状态为向下 (5)改变状态为向上)解析: 电梯各个状态的处理过程是,根据电梯状态,调用相应的控制状态的处理程序来控制电梯的运行。图 3 为电梯运行状态的处理流程图。当进入电梯运行状态后,首先判断当前电梯的运行方向。程序处理逻辑如下: 1当电梯向上运行时: (1)若当前层有内部请求,或外部有向上请求,或外部有向上和向下请求,则改变状态为开门,返回;否则,转(2); (2)若当前层上方有内外请求,则当前层上移一层,返回;否则,转(3); (3)若当前层有外部向下请求,则改变状态为开门状态,返回;否则,转(4); (4)若当前层下方有内外请求,则改变状态为向下,返回。 2当电梯向下运行

18、时: (1)若当前层有内部请求,或外部有向下请求,或外部有向上和向下请求,则改变状态为开门,返回;否则,转(2); (2)若当前层下方有内外请求,则当前层下移一层,返回;否则,转(3); (3)若当前层有外部向上请求,则改变状态为开门状态,返回;否则,转(4); (4)若当前层上方有内外请求,则改变状态为向上,返回。(3).系统采用多级优先级中断结构,如图 4 所示。它要求 CPU 在执行完当前指令时转而对中断请求进行服务。设备 A 连接于最高优先级,设备 B 次之,设备 C 又次之。IRQx 为中断请求信号,INTx 为 CPU 发出的中断响应信号。现假设:T DC为硬件中断周期时间;T M

19、为一个指令执行周期时间;T A、T B、T C分别为 A、B、C 的中断服务程序执行时间;T S、T R为保护现场和恢复现场所需的时间。图 5 是中断处理过程示意图。(分数:1.00)_正确答案:( if(x0 else magic=x+y-10; if(magic 0) magic=0; return magic; (分数:3.00)(1).请根据测试要求,简要说明语句覆盖、判定覆盖、条件覆盖和 MC/DC 覆盖的含义。(分数:1.00)_正确答案:( )解析: 本题考查嵌入式软件测试的基本知识。 本问题考查嵌入式软件测试覆盖率的基本概念。 语句覆盖要求设计足够多的测试用例,运行被测程序,使

20、得程序中每条语句至少被执行一次。定覆盖(分支覆盖)要求设计足够多的测试用例,运行被测程序,使得程序中的每个判断的“真”和“假”都至少被执行一次。条件覆盖要求设计足够多的测试用例,运行被测程序,使得判定中的每个条件获得各种可能的结果,即每个条件至少有一次为真值,有一次为假值。MC/DC 覆盖要求每个条件的取值都有覆盖,每个判定值都有覆盖且每个条件都能独立影响判定结果,各覆盖率的含义如表所示。 (2).画出以上代码的流程图。(分数:1.00)_正确答案:( )解析:(3).请根据说明中的 C 语言代码,计算满足 MC/DC 覆盖要求的用例数量及条件取值范围。(分数:1.00)_正确答案:( 用例数

21、量:3 个; 条件取值范围: (x0 and y=0)、(x=0 and y0)及(x0 and y0) )解析: 本问题考查 MC/DC 覆盖率判定的综合运用。 MC/DC 与代码中的逻辑运算有关。本题代码中的逻辑运算为 x0 long sno; char sex; float score4; *p1, a1, b1; 程序段 2: union student2 char name10; long sno; char sex; float score4; *p2, a2, b2; 汉诺塔问题说明:有 n 个盘子在 A 处,盘子从小到大,最上面的盘子最小,程序要把这 n 个盘子从 A 处搬到

22、C 处,可以在 B 处暂存,但任何时候都不能出现大的盘子压在小的盘子上面的情况。 下列是一段求解汉诺塔问题的 C 语言程序。 #include stdio.h void move(int n, char a, char c) static int Step=1; printf(“Step %2d: Disk %d %c- %cn“,Step,n,a,c); Step+; void Hanoi(int n, char a, char b, char c) if (n1) Hanoi(n-1, a, c, b); move(n, a, c); Hanoi(n-1, b, a, c) ; else

23、move(n, a, c); void main() Hanoi(3,A, B, C); (分数:3.00)(1).C 语言函数的一般格式为: 函数类型 函数名 (参数列表) 函数体; 简答下述问题。 (1)函数类型的含义是什么? (2)参数列表的含义是什么? (3)C 语言函数之间的参数如何传递?(分数:1.00)_正确答案:( (1)的含义是:函数返回值的类型,无返回值时应写为 void。 (2)的含义是:函数的接口参数,可以为空,即表示没有参数,但函数名后面的()不能省略。 (3)C 语言函数之间的参数传递是传值,是通过栈来传递的。)解析: 本题考查 C 语言应用知识。 C 语言函数的一

24、般格式为: 函数类型 函数名 (参数列表) 函数体; 其中函数类型为函数返回值的类型,无返回值时应写 void;参数列表为函数的接口参数,可以为空,即表示没有参数,但函数名后面的()不能省略。 C 语言函数之间的参数传递是传值,是通过栈来传递的。调用时所有参数在栈中新开辟相应类型的单元并将实参值填入,函数中对参数的任何操作都是对栈中单元的操作,调用结束,栈中开辟的相应单元都会释放,并不影响实参变量的值。(2). 回答问题。 (1)sizeof(struct student1)结果是多少? (2)sizeof(union student2)结果是多少? (3)变量 a2 在程序段 2 中定义,写

25、出执行以下语句后的输出结果。 strcpy(a2. name, “zhangwei“); a2. Sex=f; printf(“%s“, a2.name);(分数:1.00)_正确答案:( (1)sizeof(struct student1)结果为:31 (2)sizeof(union student2)结果为:16 (3)执行语句后的结果为:“fhangwei”)解析: student1 是一个结构体,sizeof(struct student1)结果为所有元素字节数之和,因此sizeof(struct student1)结果为:10+4+1+16=31 字节。 student2 是联合体(

26、或共用体),sizeof(union student2)结果为其中最长一个元素的字节数。因此 sizeof(union student2)结果为:16 字节。 变量 a2在程序段 2 中定义,执行以下语句: strcpy(a2. name, “zhangwei“); a2. sex=f; printf(“%s“, a2. name); 结果为:“fhangwei“(3). 仔细阅读求解汉诺塔问题的 C 语言程序,完成其中(1)(4)空白填空。 运行结果为: Step 1:Disk 1 A-C Step 2: _(1)_ Step 3:Disk 1 C-B Step 4: _(2)_ Step

27、5: _(3)_ Step 6:Disk2 B-C Step 7: _(4)_ (分数:1.00)_正确答案:( (1)Disk 2 A-B (2)Disk 3 A-C (3)Disk 1 B-A (4)Disk 1 A-C)解析: 汉诺塔问题是指有 n 个盘子在 A 处,盘子从大到小,最上面的盘子最小,现在要把这 n 个盘子从A 出搬到 C 处,可以在 B 处暂存,但任何时候不能出现大的盘子压在小的盘子上面的情况。算法如下: (1)若 n=1,则可以将盘子直接从 A 处搬到 C 处; (2)假设 n-1 时,指导如何解; (3)则 n 时,根据(2)的假设,可以先把前 n-1 个盘子从 A 处通过 C 处搬到 B 处,就可以把第 n 个盘子直接从 A 处搬到 C 处,再把前 n-1 个盘子从 B 处通过 A 处搬到 C 处,则完成了全部盘子搬动。 因此,运行结果为: Step 1:Disk 1 A-C Step 2:Disk 2 A-B Step 3:Disk 1 C-B Step 4:Disk 3 A-C Step 5:Disk 1 B-A Step 6:Disk 2 B-C Step 7:Disk 1 A-C

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1