201311嵌入式下午真题

第 1 题

阅读以下关于电梯模拟控制系统设计方法的说明,回答问题1至问题3,将答案填入答题纸的对应栏内。
【说明】
王工在实验室负责自动电梯模拟控制系统的设计,自动电梯模拟控制系统需要完成电梯运行控制算法、输入界面和输出界面三项主要任务。系统结构图如图1-1所示。


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

【问题1】(6分)
电梯根据控制状态的迁移规则进行迁移,其状态迁移图如图1-2所示。请根据下面状态转移的条件,完成状态迁移图,将解答填入答题纸的对应栏中。
可供选择的状态转移条件:
a.其他楼层有呼叫请求;
b.无呼叫请求;
c.乘客进入电梯或等待一段时间后;
d.到达请求楼层;
e.电梯所在楼层有呼叫请求。


【问题2】(5分)
电梯运行处理程序的流程图如图1-3所示。请完成该流程图,将答案填写在答题纸的对应栏中。


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


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


当三个设备同时发出中断请求时,依次处理设备A、B、C的时间是多少?这种结构下中断饱和时间是多少?请将答案填写在答题纸的对应栏中。

答案与解析

  • 试题难度:一般
  • 知识点:嵌入式微处理器>其它
  • 试题答案:

    【问题1】
    (1)其他楼层有呼叫请求,或a;
    (2)到达请求楼层,或d;
    (3)乘客进入电梯或等待一段时间后,成c;
    (4)无呼叫请求,或b;
    (5)电梯所在楼层有呼叫请求,或e;
    (5)其他楼层有呼叫请求,或a。
    【问题2】
    (1)改变状态为开门
    (2)当前层上移一层
    (3)改变状态为开门
    (4)改变状态为向下
    (5)改变状态为向上

    【问题3】


  • 试题解析:

    本题考查嵌入式系统设计,涉及嵌入式软件和微处理器基础知识的应用。
    问题1和问题2根据题干的需求不难得到状态转移信息和电梯运行的处理流程。问题3是一个关于多级中断的问题。当设备A、设备B和设备C同时发出中断请求时,三个设备的优先级顺序是:设备A>设备B>设备C。所以是先处理设备A的中断,然后是设备B,最后是设备C。
    注意TM为一个指令的执行周期,只执行1次,然后是TDC是硬件中断周期是每个中断都会执行1次。
    硬件中断周期是指:当CPU采用中断方式实现主机与I/O交换信息时,CPU在每条指令执行阶段结束前, 都要发中断查询信号,以检测是否有某个I/O提出中断请求。如果有请求,CPU则要进入中断响应阶段,又称中断周期。在这阶段, CPU必须将程序断点保存到存储器中。
    所以,依次处理的时间为:
    设备A的时间=TM+TDC+TS+TA+TR
    设备B的时间=TDC+TS+TB+TR
    设备C的时间=TDC+TS+TC+TR
    中断饱和时间是指:全部的设备(设备A、B、C)同时发出中断请求的情况下,要把全部的中断请求按顺序响应一遍的总共花费的时间。所以,这种结构下中断饱和时间是:设备A的时间+设备B的时间+设备C的时间 

第 2 题

阅读以下关于某嵌入式处理器和存储器方面的说明,回答问题1至问题3,将答案填入答题纸的对应栏内。
【说明】
在某嵌入式系统设计中,需要使用嵌入式主处理器对外围模拟视频信号进行采集、编码、存储和网络传输。图2-1为李工设计的该嵌入式系统的原理框图:采用两片TVP5146芯片进行两路模拟视频数据采集,在该处理器外围采用MAX3232芯片进行串口扩展,以方便系统调试,同时在该原理图中还设计了相应的Flash存储器接口,DDR存储器,网络及电源等电路。
在该电路设计中,视频采集芯片TVP5146需要主处理器通过I2C接口进行采集模式、亮度、对比度、增益等参数的调节,但是三处理器只有一个I2C接口,因此需要将两个TVP5146挂载的同一个I2C总线上,如图2-2所示。TVP5146的I2C芯片地址选择如表2.1所示,当进行I2C读时,I2C地址的最低是1,当进行写操作时,I2C地址最低位是0,A0由外围电路的高低电平决定,高电平为1,低电平为0。




【问题1】(6分,答案用十六进制表示,比如0xAA)
根据图2-2及表2.1所示,对图2-2中的TVP5146(1)和TVP5146(2)两个芯片分别进行读写操作时,其对应的地址依次是:


【问题2】(3分,答案用十六进制表示,比如0xAA)
在图2-2原理图设计中,主处理器的串口拉制器的时钟为27M,在进行串口调试时,李工需要将串口配置为9600bps的波特率,需要对串口控制器的DLL(Divisor Latches Low寄存器)和DLH(Divisor Latches High寄存器)进行配置,DLL和DLH的寄存器分别如图2-3和图24所示。


根据以上信息,DLL和DLH寄存器应该分别被配置为:
DLL:(1)
DLH:(2)
【问题3】(6分,答案用十六进制表示,比如OxAA)
在李工对TVP5146进行配置时,需要编写的读写函数,在进行   的读写操作时,需要对   的控制寄存器、数裾寄存器以及状态寄存器进行配置和查询。具体的写操作流程为:先配置控制寄存器为写模式,再检查状态寄存器,如果准备就绪,则向数据寄存器写数据,写完之后进行状态寄存器查询状态,根据状态退出写操作。具体的读操作流程为:先配置控制寄存器为读模式,再检查状态寄存器,如果准备就绪,则从数据寄存器中读出,然后退出。李工所选用的处理器对应的   控制寄存器、数据寄存器、状态寄存器各自的定义如表2.2、表2.3和表2.4所示。




李工所编写的   读写函数如下所示:


请将空(1)~(4)处空缺的代码补充完整。

答案与解析

  • 试题难度:一般
  • 知识点:嵌入式系统总线&通信接口>其它
  • 试题答案:

    【问题1】
    (1)0xB9(2)0xB8(3)0xBB(4)0xBA
    【问题2】
    (1)0xFC 或者0xFD
    (2)0x0A
    【问题3】
    (1)*pdata = I2C_DATA
    (2)0x8003
    (3)I2C_DATA=wdata
    (4)I2C_STAT&0x80

  • 试题解析:

    本题考查嵌入式系统设计,涉及嵌入式软件和硬件基础知识的应用,尤其是嵌入式处理器外设控制及操作方面。
    I2C BUS(Inter Integrated Circuit BUS,内部集成电路总线)是由Philips公司推出的二线制串行扩展总线,用于连接微控制器及其外围设备。I2C总线是具备总线仲裁和高低速设备同步等功能的高性能多主机总线。直接用导线连接设备,通信时无需片选信号。
    在I2C总线上,只需要两条线—串行数据SDA线、串行时钟SCL线,它们用于总线上器件之间的信息传递。SDA和SCL都是双向的。每个器件都有一个唯一的地址以供识别,而且各器件都可以作为一个发送器或接收器(由器件的功能决定)。
    I2C总线的数据传输过程:
    ①开始:主设备产生启动信号,表明数据传输开始。
    ②地址:主设备发送地址信息,包含7位的从设备地址和1位的数据方向指示位(读或写位,表示数据流的方向)。
    ③数据:根据指示位,数据在主设备和从设备之间进行传输。数据一般以8位传输,MSB先传;具体能传输多少量的数据并没有限制。接收器产生1位的ACK(应答信号)表明收到了每个字节。传输过程可以被中止和重新开始。
    ④停止:主设备产生停止信号,结束数据传输。

第 3 题

阅读以下关于软件测试的说明,回答题1至问题3,将解答填入答题纸的对应栏内。
【说明】
使用在汽车、飞机中的嵌入式软件,由于直接影响人的生命及财产安全,测试要求更为严格。语句覆盖、判定覆盖、条件覆盖和MC/DC覆盖是通常对这类软件的要求。
以下是一段C语言代码,请仔细阅读并回答相关问题:



【问题1】(6分)
请根据测试要求,简要说明语句覆盖、判定覆盖、条件覆盖和MC/DC覆盖的含义。将答案填写在答题纸的对应栏中。
【问题2】(5分)
画出以上代码的流程图,将答案填写在答题纸的对应栏中。
【问题3】(4分)
请根据【说明】中的C语言代码,计算满足MC/DC覆盖要求的用例数量及条件取值范围,将答案填写在答题纸的对应栏中

答案与解析

  • 试题难度:一般
  • 知识点:嵌入式系统实施知识>软件测试
  • 试题答案:

    【问题1】


    【问题2】



    【问题3】
    用例数量:3个;
    条件取值范围:
    (x>0 and y<=0)、(x<=0 and y>0)及(x>0 and y>0)

  • 试题解析:

    本题考查嵌入式软件测试的基本知识。
    【问题1】
    1.语句覆盖
    设计足够多的测试用例,使得被测试程序中的每条可执行语句至少被执行一次。
    2.分支覆盖
    设计足够多的测试用例,使得被测试程序中的每个判断的“真”、“假”分支至少被执行一次。
    3.MC/DC覆盖
    要求在一个程序中每一种输入输出至少得出现一次,在程序中的每一个条件必须产生所有可能的输出结果至少一次,并且每一个判定中的每一个条件必须能够独立影响一个判定的输出,即在其他条件不变的前提下仅改变这个条件的值,而使判定结果改变。
    4.条件覆盖
    设计足够多的测试用例,使得被测试程序中的每个逻辑条件的可能值至少被满足一次。
    【问题2】
    需要根据程序画程序流程图,这是测试人员必备的技巧。注意开始和结束的符号。
    【问题3】
    用例数量:3个;条件取值范围:(x>0 and y<=0 )、(x<=0 and y>0)及(x>0 and y>0)。

第 4 题

阅读以下关于某嵌入式系统BIT的说明,回答问题1至问题3,将答案填入答题纸的对应栏内。


【说明】
某公司负责研制一个嵌入式计算机系统,如图4-1所示。该系统以PowerPC处理器为核心,通过AD进行实时数据采集,并将采集来的数据进行预处理后,通过RS422总线发送给后端计算中心。


同时为了提高产品的安全性和可靠性,设计实现了机内自测试(Built_In_TeSt,BIT)。BIT依靠自身电路和程序完成对计算机平台硬件的功能检查、故障诊断与隔离。

【问题1】(6分)
王工负责对该系统进行故障模式分析,识别出了该系统可能出现的故障模式,如表4.1所示。请将属于CPU和RAM的故障填写在答题纸的对应栏中。


【问题2】(3分)
王工设计了三种BIT测试程序,分别是上电BIT、周期BIT、维护BET。运行流程如图4-2所示。


请回答下面三个问题,将答案填写在答题纸的对应栏中。
(1)请问不影响和破坏任务正常运行的是哪一种BIT?
(2)请问具有最完备的测试用例集合,可用于故障隔离和定位的是哪一种BIT?
(3)请问确保设备单元在使用前都被测式的是哪一种BIT?
【问题3】(6分)
李工负责设计CPU单元的BIT测试算法,通过对每组指令分别设计一组测试用例,定义不同的操作数、操作码和预期值,在指令运行后比较结果与预期值。由于该系统选用的处理器集成了多级Cache(高速缓存),并且指令缓存和数据缓存是分开的,执行指令功能测试前需要刷新指令Cache,以保证与内存中的测试代码一致。每个测试项的测试结果正确为0,故障为1。
以32位字比较指令cmpw测试为例,cmpw将寄存器rA和rB内数据比较的结果(大于、小于、等于)放入条件寄存器crx,其操作码为0x7C000000,测试用例数据如表4.2所示。


cmpw指令功能测试的算法流程示意如图4-3所示。请补全流程图4-3中的执行操作,将答案填写在答题纸的对应栏中。


答案与解析

  • 试题难度:一般
  • 知识点:嵌入式系统实施知识>其它
  • 试题答案:

    【问题1】
    CPU故障:2,4,7
    RAM故障:1,6,9
    【问题2】
    (1)周期BIT
    (2)维护BIT
    (3)上电BIT
    【问题3】
    (1)刷新指令Cache(高速缓存)
    (2)将res与测试用例表中的预期结果进行比较
    (3)测试结果ret=1

  • 试题解析:

    测试模式设计常用的BIT包括:上电自检(IBIT)、周期自检(CBIT)、启动BIT和维修自检(MBIT)。
    IBIT用于任务前,CBIT用于任务中MBIT用于离线状态。这三种BIT针同一系统的不同阶段,以提高故障检测和隔离能力:
    (1)IBIT:系统上电后立即开始,通常只运行一次,以保证系统在提供安全功能前是完好的;同时还可以验证系统正常运行时无法验证的重要设备的故障,比如部分故障隔离装置等。
    (2)CBIT:系统正常运行器件的测试,以保证系统在运行过程中故障即使被检测出;可为针对持续的状态量的检测,也可以为周期性的功能性检测,安全评估的重要对象。
    (3)启动BIT在系统运行过程中,由操作人员启动运行,检测设备中可能存在的故障。
    (4)MBIT:系统离线状态下的测试,以改善系统的可维修性和安全性,也可用来覆盖在线自检无法覆盖的故障模式检测。

第 5 题

阅读以下说明,回答问题1至问题3,将答案填入答题纸对应栏内。
【说明】
在某嵌入式处理器上,编写以下两段程序(编译选项中,存储采用4字节对齐方式)。


汉诺塔问题说明:有n个盘子在A处,盘子从小到大,最上面的盘子最小,程序要把这n个盘子从A处搬到C处,可以在E处暂存,但任何时候都不能出现大的盘子压在小的盘子上面的情况。
下列是一段求解汉诺塔问题的C语言程序。


【问题1】(3分)
C语言函数的一般格式为:


简答下述问题,将答案填写在答题纸中对应栏目。
(1)<函数类型>的含义是什么?
(2)<参数列表>的含义是什么?
(3)C语言函数之间的参数如何传递?
【问题2】(6分)
回答问题,将答案填写在答题纸中对应题目。
(1)sizeof(struct student1)结果是多少?
(2)sizeof(union student2)结果是多少?
(3)变量a2在程序段2中定义,写出执行以下语句后的输出结果。


【问题3】(6分)
仔细阅读求解汉诺塔问题的C语言程序,完成其中(1)~(4)空白填空,将答案填入答题纸的对应栏内。


答案与解析

  • 试题难度:较难
  • 知识点:嵌入式软件程序设计>嵌入式程序设计>面向过程的语言
  • 试题答案:

    【问题1】
    (1)<函数类型> 的含义是:函数返回值的类型,无返回值时应写为void。
    (2)<参数列表> 的含义是:函数的接口参数,可以为空,即表示没有参数,但函 数名后面的0不能省略。
    (3)C语言函数之间的参数传递是传值,是通过栈来传递的。
    【问题2】
    (1)sizeof(struct studentl)结果为:31
    (2)sizeof(union student2)结果为:16
    (3)执行语句后的结果为:“fhangwei”
    【问题3】
    (1)Disk 2 A--->B

    (2)Disk 3 A--->C
    (3)Disk 1 B--->A
    (4)Disk 1 A--->C

  • 试题解析:

    本题考查C语言应用知识。
    【问题1】

    C语言函数的一般格式为:
    <函数类型> <函数名> (<参数列表>){
    <函数体>;
    }
    <函数类型> :一般函数都会返回一个值(return 后面跟随的值),这个返回值的数据类型,就是函数的返回类型。也有一些函数没有返回值,只是执行一些具体的操作(比如打印输出等),这些没有返回值的函数在定义时其返回类型为void型。
    <函数名>:函数头部分中用小括号括起来的,是函数需要接收的变量的声明,即形式参数(简称形参)声明,多个形参用逗号分隔。也有不接收任何形参的函数,此时,在小括号中一般会写入void。
    在 C 语言中,函数的参数传递方式有两种:值传递与地址传递。
    值传递的特点是单向传递,即主调函数调用时给形参分配存储单元,把实参的值传递给形参,在调用结束后,形参的存储单元被释放,而形参值的任何变化都不会影响到实参的值,实参的存储单元仍保留并维持数值不变。
    地址传递的特点是形参并不存在存储空间,编译系统不为形参数组分配内存。数组名或指针就是一组连续空间的首地址。因此在数组名或指针作函数参数时所进行的传送只是地址传送,形参在取得该首地址之后,与实参共同拥有一段内存空间,形参的变化也就是实参的变化。
    【问题2】
    sizeof是C语言中保留关键字,也可以认为是一种运算符,单目运算符;sizeof是计算对象所占的字节数,通常用来查看变量、数组或结构体等所占的字节个数。
    【问题3】
    汉诺塔问题是指在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘(如图1)。游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。

results matching ""

    No results matching ""