一起答

2013年上半年软考《嵌入式系统设计师》下午模拟试卷二

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 编译器对程序进行一定的优化是非常有必要的,高级语言的程序可以被转化为汇编语言的指令形式。通常优化的方法有(1)、循环优化、废代码的清除等。

     对嵌入式系统进行性能测试可以衡量系统的实时性,分析嵌入式软件的优劣,同时分析程序的执行时间可以帮助分析CPU功耗等特性。最坏执行时间是指(2)。

  2. 在嵌入式系统中,由于软/硬件资源有限,且系统对实时性和可靠性要求较高,因此在进行嵌入式软件开发时,要注意对执行时间、存储空间和开发/维护时间这三种资源的使用进行优化。请具体说明在编写代码时,需要做到哪几点编码准则?

  3. 在一台采用S3C44BOX微处理器(32位RISC结构)的嵌入式系统中,将图6-22所示的(a)、(b)程序段分别重复11 000次,(a)程序段需要2.13 ms;(b)程序段需要1.01 ms。

     由此可见,在进行算术运算编码时遵守哪些编码准则?

  4. 假如加油机内油量足够,油价为5元/升,用户的账户金额为800元,那么在基本流 A4输入油量的过程中,请运用边界值分析方法为A4选取合适的输人数据(即油量,单位为升)。

  5. 图6-22所示的(a)、(b)程序段的功能是完全一样的,都是对一个结构体数组的各个元素进行初始化,但采用两种不同的方法来实现。请在200字以内归纳这两个算术运算程序段所采用的实现方法。

  6. 阅读以下关于嵌入式操作系统软件编码优化的技术说明,根据要求回答问题1至问题5。

     【说明】

     由于嵌入式系统对实时性的要求较高,因此一般要求对代码的性能进行优化,使代码的执行速度越快越好。图6-22给出了两个算术运算的程序段(a)、(b)。

    在嵌入式系统设计过程中,给定一份软件设计规格说明书后,下一步的工作就是编写代码。通常编码工作包含哪些步骤?

  7. 对于基本流A来说,表6-6所示中哪些测试用例属于正面测试用例,哪些测试用例属于负面测试用例。请用表6-6中相应的“测试用例ID号”回答问题。

  8. 请在150字以内简要说明以表6—6所示的方法创建测试用例矩阵的优点。

  9. 场景中的每一个场景都需要确定测试用例,一般采用矩阵或决策表来确定和管理测试用例。表6-5是一种通用格式,表中各行代表各个测试用例,而各列代表测试用例的信息。本例中的测试用例包含测试用例ID号、场景(或说明/条件)、测试用例中涉及的所有数据元素(作为输人或已经存在于数据库中)以及预期结果等项目。

     测试用例的设计步骤通常是:首先确定执行用例场景所需的数据元素(本例中包括账号、是否黑名单卡、输入油量、账面金额以及加油机油量),然后构建矩阵,最后确定包含执行场景所需的适当条件的测试用例。在表6-6的测试矩阵中,V表示有效数据元素,I表示无效数据元素,n/a表示不适用,例如CW01表示“成功加油”基本流。请按上述规定为其他应用场景设计测试用例矩阵。

  10. 编译程序的功能是什么?解释程序与编译程序的主要区别是什么?请在150字以内简要说明。

  11. 阅读以下利用场景法设计测试用例的技术说明,回答问题1至问题5。

     [说明]

     现在的软件几乎都是由事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成了事件流。这种在软件设计方面的思想也可被引入到软件测试中,生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时测试用例也更容易得到理解和执行。

     用例场景是通过描述流经用例的路径来确定的过程,这个流经过程要从用例开始到结束遍历其中所有基本流(基本事件)和备选流(分支事件)。以下表6-4是对某IC卡加油机应用系统基本流的描述,表6-5是对该IC卡加油机应用系统备选流的描述。

    图6-9是对该IC卡加油机应用系统的基本流路径和备选流路径的描述,请用题干中描述的相应字每将图中(1)~(6)空缺处的内容填写完整。

  12. 阅读以下说明和x86汇编语言代码,根据要求回答问题1至问题3。

     【说明】

     在某嵌入式安全监测系统中,对某任务的加工操作需通过数据采集(Collect_task)、计算(Calculate_task)这两个不同的程序段来完成,并且执行程序段Collect_task和Calculate _task的顺序及次数有如下约定:

     Collect_task(2次)→Calculate_task(1次)→Collect_task(5次)→Calculate_task(4次)→Collect_task(2次)→Calculate_task(2次)

     表6-22 所示为x86系统部分指令及寄存器说明。

    采用逻辑尺控制法实现以上要求的汇编程序如下:

     【汇编程序代码】

       N     EQU (1) 

       RULE   EQU (2) 

       CODE   SEGMENT

       ASSUME CS:CODE

       START:  MOV  AX,RULE

             MOV  CL,N

       LOP:   SAL  AX,1

             JC   (3) 

       Collect: CALL Collect_task   ;执行Collect_task程序段

             JMP   (4) 

       Calculate:CALL Calculate_task  ;执行Calculate_task程序段

       NEXT:   (5) 

             JNZ   (6) 

             MOV  AH,4CH     ;功能号送入AH寄存器

             INT   (7)     ;结束程序运行,中断返回

             (8) 

             END  START

    请根据试题的要求,将汇编程序代码中(1)~(8)空缺处的内容填写完整。

  13. 请根据试题的要求,将汇编程序代码中(1)~(8)空缺处的内容填写完整。

  14. 请用MOV语句实现汇编程序代码中“LEASI,BINTAB”语句的功能。

  15. 该汇编程序执行后,FLAG存储单元中的数值是什么?使用对分查表法查询位于这 256个字节数据表中的数据时,“CMPAL,[BX]”最多被执行几次?

  16. 阅读以下说明和x86汇编语言代码,根据要求回答问题1至问题3。表6-3所示为 x86系统指令及寄存器说明表。

     [说明]

     在计算机控制中,有些数据补偿、计算及转换等参数的计算非常复杂,编程难,程序长且运算费时,但是用数表却比较容易实现。

     设有256个字节的数据,已按从小到大的顺序存放在以BINTAB为首地址的数据区单元中,现要求查找其中值为126的数据,用对分查表法查询的汇编程序如下:

     [汇编程序代码]

    DATA  SEGMENT

    BINTAB DBl8,25,32,46,56,78,…      ;第1~100个数据

        DB 90,95,99,100,106,126,…    ;第101~200个数据

        DB 189,195,197,202,206,216,…   ;第201~256个数据

    COUNT  EQU  256

    FLAG   DW    ?

    KEY   EQU  (1) 

    DATA  ENDS

    STAK  SEGMENT

    STPN  DB 20 DUP(?)

    STAK  ENDS

    CODE  SEGMENT

        ASSUME CS,CODE, DS,DATA, ES:DATA, SS:STAK

    BINSEAT PROC FAR

    START, MOV  AX, DATA

        MOV  DS, AX

        MOV  ES, AX

        LEA  SI, BINTAB

        MOV  CX, COUNT

        MOV  DX, 1

        MOV  AX, SI

        ADD  AX, CX

        MOV  DI, AX

        MOV  AL, KEY

    LOP0,  MOV  BX, SI

        ADD  BX, DI

        SHR  BX, 1

        CMP  AL, [BX]

        JZ  FOUND

        PUSHF

       (2) 

        JZ  NFOUND

        POPF

        JL  LESS

        MOV  SI, BX

        JMP  NEXT

    LESS,  (3) 

    NEXT,  (4) 

        JMP  LOP0

    NFOUND: MOV  AX, DX     ;未找到,标志全1送DX

    FOUND: MOV  AX, DX

       MOV  FLAG, AX

       RET

    BINSEAT ENDP

    CODE ENDS

          (5)

    请根据试题的要求,将汇编程序代码中(1)~(5)空缺处的内容填写完整。

  17. 以下是利用MCS-51系列单片机汇编语言实现模拟I2C总线接收N个字节数据的程序段(RDNBYTE),请将汇编程序代码中(9)~(13)空缺处的内容填写完整。表6-21所示为MCS-51系列单片机部分汇编指令及寄存器说明。

    程序中已定义了标号为START的启动位子程序、标号为STOP的停止位子程序、标号为MACK的发送应答位子程序、标号为MNACK的发送非应答位子程序、标号为 CACK的应答位检查子程序、标号为WRBYT的向VSDA线上发送1个数据字节的子程序、标号为RDBYT的从VSDA线上读取1个数据字节的子程序。调用RDNBYTE程序的归一化操作命令是    MOV SLA,#SLAR    MOV NUMBYTE,#N    LCALL RDNBYT 【汇编程序代码】    VSDA  EQU  P1.6   ;虚拟I2C总线数据线    VSCL  EQU  P1.5   ;虚拟I2C总线时钟线    SLA  EQU  50H   ;寻址字节存放单元    NUMBYTE EQU  51H   ;传送字节数存放单元    MTD  EQU  30H   ;发送数据缓冲区    MRD  EQU  40H   ;接收数据缓冲区    SLAW0 EQU  0AOH   ;写AT24C64(器件地址为0AOH)    SLAR0 EQU  0A1H   ;读24C64    SLAW1 EQU  40H   ;写PCF8574(器件地址为040H)    SLAR1 EQU  41H   ;读PCF8574    ;模拟I2C总线接收N个字节数据    RDNBYTE:MOV  R3,NUMBYTE        LCALL START ;发送启动位        MOV  A,SLA ;发送寻址字节(读)         (9)          (10)         JB   F0,RDNBYTE    RDN:  MOV  R1,#MRD    RDN1:  (11)         MOV  @R1,A        DJNZ  R3,ACK ;N个字节读完否?未完转         (12)         LCALL STOP  ;发送停止位        RET    ACK:(13)         INC  R1        SJMP  RDN1  ;转读下一个字节数据  (9)~(13)空缺处供选择的答案  A.LCALL START  B.LCALL MACK  

    C.LCALL CACK  D.LCALL RDBYT  

    E.LCALL WRBYT  F.LCALL MNACK  G.LCALL STOP

  18. 图6-18给出了I2C总线开始条件与停止条件的时序图。通常I2C总线的开始条件、停止条件总是由(1)产生。在开始条件产生后,总线被认为处于(2),在完成数据传输产生停止条件后,总线被认为处于空闲状态。在时钟信号的高电子期间,SDA传输线上的电平必须稳定,只有在SCL传输线上的时钟信号为(3),数据线上的高低电子才允许发生变化,此时传送的数据才有效。每一个写到SDA传输线上的数据字节必须为8位长度,每一次传输的字节数没有限制,每传输一个字节必须跟一个(4),传输字节时最高位在前。

  19. I2C总线的寻址过程是在(5)后发送第1个字节,该字节地址决定主控器选择哪一个从器件,还可以通过 (6) 方式同时寻址所有的I2C器件,但当某个I2C器件不需要进行数据传输时,将忽略该寻址方式而不作任何应答。如果某个I2C器件需要获取数据,则将发出(7)信号并作为一个(8)。

  20. 阅读以下关于嵌入式系统I2C总线接口电路的技术说明,根据要求回答问题。

    【说明】

     I2C总线是一种多主控器总线,对多个IC器件具有控制总线的能力。采用串行I2C总线技术设计接口电路,可节约嵌入式系统微处理器的I/O端口。图6-17给出了一种实现了键盘、时钟和实时参数存储三个功能模块的应用电路。图6-17中仅应用I2C总线构成单主控器的系统。此时时钟线SCL仅由微处理器驱动,因此可以用微处理器的一根I/O线作为SCL信号线,将其设置为输出方式,由软件控制产生串行时钟信号;用微处理器的另一根I/O线作为I2C总线的串行数据线,由软件控制在时钟的低电平期间读取或输出数据。

     在图6-17中采用ATMEL公司的E2PROM AT24C64(IC8)实现了系统初始化数据、仪表系数、用户设置的参数或某些重要的实时数据参数的存储。DS1302时钟芯片可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.5~5.5 V。8位并行I/O口扩展器件PCF8574具有口输出锁存功能,可直接驱动大电流LED管,同时还带有一个中断请求输出端INT(漏极开路方式)。在图6-17中,将PCF8574器件的8位准双向口外挂了一个4×4键盘矩阵。

    电阻R36、R37在图6-17电路中有何作用。请在100字以内简要说明。