题库 题库
🏘️ 爱查询 > 题库 > 嵌入式系统设计师应用技术

嵌入式系统设计师应用技术

简答题 试题一(15 分)
    阅读下面有关车载 GPS 终端系统的叙述,回答问题 1 至问题 3,将答案填入答题纸的对应栏中。
【说明】
    GPS 是全球定位系统(Global Position System)。车载 GPS 终端是置于机动车内的实时定位装置,它的应用对象是需要定位和调度的车辆。车辆可以通过终端与GPS进行实时、准确的定位,并能够通过无线通讯网络上报远程的车辆调度中心。中心可以通过 终端远程监视车行轨迹,并可在特殊情况下通过终端控制车辆。同时,终端还装备车载电话,可以在出现特殊情况时及时地通知车辆调度中心。图 1-1 所示为车载终端系统的用例图,对于车载 GPS 终端系统来说,主要的角色有两个:车辆调度中心用户和车载终端用户。
 
    图 1-1 车载终端系统用例
    图 1-2 所示为车载终端系统中的 GSM 无线电通讯模块的状态图,用于与调度中心进行联系。GSM 模块共有四个状态:通话中、有问题、待命、短消息通讯中。
 
    图 1-2 无线电通讯模块状态图
    图 1-3 为车载终端用户在遇到特殊情况下通过车载电话或按键与调度中心保持通讯的处理过程顺序图。
 
    图 1-3 处理过程顺序图
【问题1】(4分)
    图 1-2 的状态图不完全,请将其补充完整,并将下面给出的转换关系填入图 1-2 的适当位置。
    转换关系:① 用户需要语言通话    ② 通话完成
    ③ 重新连接网络    ④ 未找到网络或网络出错
【问题2】(6分)
    按照你对 GPS 终端系统的理解,将下列 A~F 标记的处理过程填入到图1-3 中的(1)~(6)处,并选择正确的处理顺序。
    A. 语音对话/按下按钮    B. 发送信息到通讯模块    C. 监听命令
    D. 接收成功要求监听信息  E. 要求监听    F. 通过 GSM发送信息
    处理顺序选项:① ABDFCE    ② ACDBFE    ③ ABCDEF    ④ ACBDEF
【问题3】(5分)
    画出 UML 模型中常用关系符的图示:依赖、泛化、关联、聚合和实现
查看答案
简答题 试题二(15分)
    阅读以下说明和 X86 汇编语言代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
    设有数组 X 和 Y。  X 数组中有 X1、X2、……、X10 十个数,Y 中有 Y1、Y2、……、 Y10 十个数。编制程序计算:
    Z1=X1+Y1    Z2=X2+Y2    Z3=X3-Y3    Z4=X4-Y4
    Z5=X5-Y5    Z6=X6+Y6    Z7=X7-Y7    Z8=X8-Y8
    Z9=X9+Y9    Z10=X10+Y10
    设置一个 10 位的标志尺:LOGIC_RULE,若它的每一位决定了当前按顺序该做加法(该位为 0)或减法(该位为 1)操作,则由上列等式可知 LOGIC_RULE 中的低 10 位应是 (1) 。
【汇编程序代码】
 
    附:指令及寄存器说明:
    MOV    传送字或字节
    PUSH    把字压入堆栈
    HR    逻辑右移
    JC    有进位时转移
    JMP    无条件转移指令
    SUB    减法
    ADD    加法
    LOOP    CX 不为零时循环
    JNE/JNZ    不等于时转移
    CMP    比较
    段寄存器 2 个:
    CS:    代码段寄存器
    DS:    数据段寄存器
    数据寄存器 4 个:
    AX:    累加器
    BX:    基址寄存器
    CX:    计数寄存器
    DX:    数据寄存器
查看答案
简答题 试题三(15分)
    阅读以下说明和 C 语言代码,回答问题 1 至问题 4,将解答填入答题纸的对应栏内。
【说明】
    有两个任务(编号分别为 0 和 1)需要访问同一个共享资源,为了解决竞争条件(race condition)的问题,我们需要实现一种互斥机制,使得在任何时刻只能有一个任务访问该共享资源。代码一给出了一种实现方法。
【代码一】
 
    当一个任务要访问临界资源时,就可以调用代码一给出的这两个函数。代码二给出了任务 0 的一个例子。
【代码二】
 
【问题1】(2分)
    什么是临界资源(critical ?resource)?请用 100 字以内文字简要说明。
【问题2】(6分)
    代码一所示的方法能够实现共享资源的互斥访问吗?请用 300 字以内文字举例说明。
【问题3】(4分)
    代码一采用了一种繁忙等待(busy waiting)的策略,这种策略的缺点是什么?请用100字以内的文字简要说明。
【问题4】(3分)
    如果把 Enter_Critical_Section()函数中的两条语句互换一下位置,会出现什么情况?
查看答案
简答题 试题四(15 分)
    阅读以下说明和 C 语言代码,回答问题 1 至问题 5,将解答填入答题纸的对应栏内。
【说明】
    在实模式存储管理方案下,嵌入式系统的内存地址空间的布局一般可以分为五个段:
    代码段(text)、数据段(data)、bss 段(bss)、堆(heap)和栈(stack)。
    图 4-1 为一段例程。
 
    图 4-1
【问题 1】(2 分)
    代码段、数据段和 bss 段的大小是在什么时候确定的?
【问题 2】(3分)
    常用的堆空间的管理方法主要有哪两种?
【问题 3】(2分)
    当图 4-1 所示的程序经过编译链接并装入内存时,与 while 语句相对应的可执行代 码存放在哪一个段?
【问题 4】(6分)
    在图 4-1 所示的程序中,变量 gvCh、gvShort、gvInt、gvLong、array、p分别存放在哪一个段?
【问题 5】(2分)
    malloc函数申请的空间位于哪一个段?
查看答案
简答题 试题五(15 分)
    阅读以下关于嵌入式系统中异步串口的叙述,回答问题 1 至问题 4。
【说明】
    异步串口是嵌入式处理器上最常用资源之一。一般而言,异步传输的数据以帧的方 式传输。每一帧有效数据前有一个起始位,帧结束于一个或多个停止位。异步串口的数据由起始位和停止位分割成数据帧。常用的异步串口数据帧格式如图 5-1 所示。
 
    图 5-1 异步串口数据帧格式
    RS-232、RS-422 和 RS-485 都是常用的异步串口标准,它们的时序完全一样,只是在电气特性上有所区别,它们之间通过通用异步收发器(UART)可实现转换。UART ?控制器可以集成到芯片中或者通过嵌入式处理器总线连接,所以,通常从 UART 发出的异步串口时序的逻辑电平都是处理器 I/O 电压标准(比如:TTL、LVTTL 等标准)。若要求符合 RS-232、RS-422 或者 RS-485 的电气特性,则需要接口电路做转 换。使用 MAX3232 芯片实现的串口电平转换的电路原理图如图 5-2 所示。
 
    图 5-2 使用 MAX3232 芯片实现的串口电平转换的电路原理图
【问题 1】(3分)
    请说明异步传输和同步传输的不同之处。
【问题 2】(4分)
    根据图 5-1,请用 300 字以内文字简要描述异步串口的数据传输过程。
【问题 3】(4分)
    如果系统设计采用串行数据传输最高波特率为 115200bps、16 倍分频,则时钟至少为多少赫兹?
【问题 4】(4分)
    图 5-2 所示的电路原理图设计实现了几路串口?每个串口为多少条连接线?
查看答案
简答题 试题一(共20分)
    阅读下面有关某项目自动化配送中心处理机控制系统的叙述,回答问题1至问题3,将答案填入答题纸的对应栏内。
【说明】
  某企业大型配送控制中心通常采用自动化方式存取仓库内的货物,配送控制中心对货物的存取由两部分组成:其一,配送控制中心管理和调度多台配送车;其二,配送车根据指令从仓库货架上存取货物。
  图1-1为某企业大型仓库货物存取示意图。图中配送车上安装有智能控制设备,通过视频接口接收图像数据,实施对货架位置的定位识别,然后将识别信息发送到配送控制中心。配送控制中心向配送车发送控制命令,将配送车上的货物放置到指定的货架位置,或从指定的货架位置上取出货物,装载到该配送车。
 
    图1‐1  大型仓库货物存取示意图
    图1-2所示为智能设备控制配送车从货架上取货的工作过程示意图。
 
    图1‐2  配送车取货的工作过程示意图
【问题1】(9分)
    假设图1-1中的智能设备采用8051微处理器,该微处理器的定时器主频为12MHz。该智能设备中的数据采集周期分别为10ms、15ms、1s,请给出:
  (1)设备中定时器应设置的最大计时单位;
  (2)8051定时器计数寄存器的初始值;
  (3)若8051采用外部时钟接入方式,请完成图1-3中的连接方式。
 
    图1‐3  8051外部时钟接入示意图
【问题2】(6分)
    根据图1-2所示的配送车取货的工作过程示意图,得到图1-4所示的配送车取货软件流程图,请在图中的 (n) 处填入适当的内容。
 
    图1-4 配送车取货的软件流程图
【问题3】(5分)
    按照你对8051微处理机的理解,填写表1-1中的(1)~(5)空格,完成表中给出的5种寻址方式的指令格式。
    表1-1  8051寻址方式
 
    注:MOV: 将存储器的内容取到累加器中
    A: 累加器
    Ri: 通用寄存器
    PC: 指令寄存器
    DPTR:  间址寄存器
查看答案
简答题 试题二(共15分)
    阅读以下关于嵌入式软件测试的叙述,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
  某嵌入式软件主要用于控制飞机起落架。飞机起落架的可靠性直接关系着机载人员的人身安全。根据载机设备对软件可靠性要求,一般将软件分为3级:关键级软件,主要级软件和一般软件。由于该嵌入式软件被定义为关键软件,要求按关键级软件进行测试。
【问题1】(5分)
    请根据测试要求,简要说明语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖的含义。
【问题2】(7分)
    根据本题所示的软件关键级别,回答该软件需要做哪几项覆盖测试?要求的覆盖率指标是多少?如果是一般级软件,应做哪几项覆盖测试?
【问题3】(3分)
    在软件单元测试中,主要测试对象是软件模块,如果被测程序中有多处调用了其它过程代码,测试中应如何处理这些功能的引用?软件的性能测试在测试工作的哪个阶段进行?
查看答案
简答题 试题三(共20分)
    阅读以下关于中断的叙述,回答问题1至问题3,将答案填入答题纸的对应栏内。
【说明】
    某计算机中断系统有4级中断I1,I2,I3和I4,中断响应的优先次序为I1→I2→I3→I4,即先响应I1,再响应I2,……,最后响应I4。每级中断对应一个屏蔽码,屏蔽码中某位为“1”表示禁止中断(关中断),若为“0”则表示允许中断(开中断)。各级中断处理程序与屏蔽码的关系如表3-1所示。
    表3-1  中断处理程序与屏蔽码的关系
 
【问题1】(6分)
    若ti时刻I1、I2和I4级同时产生中断,在各中断处理完成后,tj(ti<tj)时刻发出I3级中断申请,CPU为I3服务时,I1级发出请求,在CPU为I1服务时,I2级发出请求。请参照图3-1所示的格式,画出CPU的运行轨迹。
 
    图3-1  CPU的运行轨迹示意图
【问题2】(8分)
    若将中断优先次序设置为I1→I4→I3→I2,即先响应I1,再响应I4,……,最后响应I2。请重新设置各级的屏蔽码,填写表3-2。
    表3-2  中断处理程序与屏蔽码的关系
 
【问题3】(6分)
    设中断优先次序为I1→I4→I3→I2。若ti时刻I1、I2和I4级同时产生中断,在各中断处理完成后,tj(ti<tj)时刻发出I3级中断申请,CPU为I3服务时,I1级发出请求,在CPU为I1服务时,I2级发出请求。请画出这种情况下CPU的运行轨迹。
查看答案
简答题 试题四(共20分)
    阅读以下说明和C语言代码,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
    在实时系统中,许多控制软件需要将数据封装到一个数据结构中,以节省存储空间。对于位操作,使用汇编语言实现其访问比较容易,但会增加编程难度,因此现在普遍采用C语言实现。使用高级语言编程要特别注意结构的存储格式以及编译器的特性。本题所使用的编译器对变量按声明顺序分配地址。分析图4-1所示的C语言代码,回答以下问题。
 
    图4-1 C语言程序代码
【问题1】(8分)
    如果处理机按16位以大端方式(big_endian)编址,请在图4-2所示的存储器图表中填入myRadarData数据的存储内容(十六进制表示)。
 
    图4-2 myRadarData数据存储格式     
【问题2】(8分)
    在图4-1所示的程序中,第22行的语句执行完成后,下列语句的结果是多少?请将应填入(n)处的内容写在答题纸的对应栏中。
    q->X =  (1)
    q->Y =  (2)
    q->Z =  (3)
    q->U =  (4)
    若再执行一次q++,则下列语句的结果又是多少?请将应填入(n)处的内容写在答题纸的对应栏中。
    q->X =  (5)
    q->Y =  (6)
    q->Z =  (7)
    q->U =  (8)
【问题3】(4分)
    内存空间常划分为代码段(text)、数据段(data)、bss段(bss)、堆区(heap)和栈区(stack),那么图4-1中myRadarData数组的存储空间应分配在哪个段中?指针变量p、q应分配在哪个段中?
查看答案
简答题 试题一(共20分)
    下面是关于某测试设备的叙述,仔细阅读并分析,回答问题1至问题4,将答案填入答题纸的对应栏内。
【说明】
  某测试设备是一个嵌入式系统,是为了测试一个专用设备而研制的,如图1-1所示。测试设备用于测试被测设备的各项软、硬件功能,包括2路RS232串口、2路模拟量、电源以及专用设备的其它内部部件。在被测专用设备内部有专门的自检测程序,来测试内部各部件。测试设备的串口与被测设备相连接,加电后,通过按测试设备的周边键与被测设备握手同步,再向被测设备发送检测消息,被测设备测试自己的某项功能后,通过串口将测试结果发回给测试设备,显示在测试设备的LCD屏上。
  测试设备的硬件由处理器模块、IO模块和电源模块组成,处理器模块上有CPU、存储器、2路串口、键盘控制器;IO模块上有D/A、A/D转换器,用作为模拟量输入和采集电源的电压值,以测试被测设备的模拟量和电源;电源模块提供测试设备的电源;测试设备模块间采用ISA总线。
  测试设备的2路串口与被测设备相连,同时测试设备的D/A、A/D转换控制器的输入线路与被测设备的模拟量和电源线相连,可直接测试被测设备的2路RS232串口、2路模拟量、电源。
  测试设备的软件由底层驱动(串口驱动、D/A、A/D驱动和自定义键盘驱动)、嵌入式操作系统和测试软件组成。
 
    图1-1  某测试设备结构示意图
【问题1】(4分)
    设存储器容量为4兆字,字长32位,模块数为4,分别用顺序方式和交叉方式进行组织,存储周期为200ns,数据线宽度32位,总线传送周期为50ns,请计算顺序存储器和交叉存储器的平均存取时间(单位:ns)和带宽(单位:位/秒)。
【问题2】(6分)
    测试设备的软件工作过程为:测试设备和被测设备同时加电,测试设备的操作系统启动后自动执行测试程序。测试程序首先采集被测设备的电源是否正常,并在屏幕显示测试信息。如果被测设备正常,则向被测设备发送握手消息,与被测设备同步;如果同步不上,则报“不能与设备同步”,测试结束。接下来,测试程序接收周边键命令,按要求测试。如果测试2路模拟量,则由测试设备通过D/A转换,向被测设备发送模拟信号,被测设备得到模拟信号,判断正确性后,通过串口将结果返回给测试设备。另外,被测设备还有4个功能项是通过串口发送测试命令给被测设备的,由被测设备内的自测试程序测试后,将结果再通过串口传回给测试设备。
    请完成图1-2所示的流程图,按编号将正确答案填写在答题纸的对应栏中。
 
    图1-2  测试设备的测试软件流程图
【问题3】(6分)
    请把下面列出的6个空位的答案填入答题纸上相应的位置。
    1.ISA总线为  (1)    位总线;
    2.由模拟信号到数字信号的转换过程称为  (2)    ;
    3.将数字信号变成模拟信号的过程称为  (3)  ;
    4.D/A转换器的主要性能指标有  (4)    、    (5)    、    (6)    。(回答其中的三个主要性能指标即可)
【问题4】(4分)
    在本测试设备的异步串行传输中,数据格式为:数据位8位、奇校验位1位、停止位1位。当波特率为9600b/s时,每秒钟传送的有效数据是多少字节?为保证数据收发正确,试分析发送方和接收方时钟允许的误差范围,并以百分比形式给出最大误差。
查看答案
简答题 试题二(共15分)
    阅读以下关于输入输出接口设计的说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
    图2-1为采用查询方式工作的输入接口,地址译码器中A15~A1直接接或门输入。
 
    图2-1 输入接口的电路原理图
【问题1】(5分)
    输入设备在向接口传送 8位数据的同时,还传送负脉冲STB,该信号的作用是什么?
【问题2】(3分)
    D触发器的作用是什么?
【问题3】(7分)
    用查询方式将输入设备的一个数据读入CPU的BL中,程序段如下所示,请完成该段8086汇编程序,将(1)~(5)的内容填入答题纸上相应的位置。
    START: MOV  DX,  (1)
    NEXT1: IN  AL,DX
    NEXT2: AND  AL,  (2)
            JZ  (3)
            MOV  DX,  (4)
            IN  AL,DX
    NEXT3: MOV    (5)  ,AL
            RET
查看答案
简答题 试题三(共15分)
    阅读以下有关软件工程开发的叙述,回答问题1至问题3,将答案填入答题纸的对应栏内。
【说明】
    V模型是在快速应用开发模型基础上演变而来的,由于将开发过程构造成一个V字型而得名,V模型强调软件开发的协作和速度,将软件实现和验证有机结合起来,在保证较高的软件质量情况下缩短开发周期,图3-1为V模型的完整诠释。
 
    图3-1  V模型示意图
【问题1】(4分)
    图3-1所示的V模型中,与开发阶段中概要设计对应测试阶段称为 (1) 。在系统或配置项测试阶段处应采用(2)方法。请将(1)和(2)处的内容填入答题纸上相应位置。
【问题2】(4分)
    请完成下面叙述,在(3)、(4)处填入恰当的内容,将解答填写在答题纸的对应栏中。
    从图3-1中水平对应关系看,左边是软件设计过程,右边是软件测试过程。在软件设计过程中,SQA应按(3)进行检查活动。在软件测试过程中,系统测试是基于(4)的测试。
【问题3】(7分)
    完成下面对V模型优点的论述,将答案填写在答题纸的对应栏中。
    1. 客户需求分析对应验收测试。在进行需求分析、功能设计的同时,测试人员就可以阅读、审查分析结果,从而  (5)  。
    2. 系统设计人员做系统设计时,测试人员可了解实现的过程,可  (6)  。
    3. 设计人员做详细设计时,测试人员可参与设计,对设计  (7)  ,同时  (8)  ,并基于用例开发测试脚本。
    4. 编码的同时进行单元测试,可尽快找出程序中的缺陷,提高  (9)  。
    5. 避免了瀑布模型所带来的误区,即软件测试是在  (10)  之后进行。
查看答案
简答题 试题四(共10分)
    阅读以下有关80X86汇编语言的叙述,回答问题1和问题2,将解答填入答题纸的对应栏内。
【说明】
    本题由两部分组成,第一部分为计算AX寄存器的值,第二部分为判错题。
【问题1】(5分)
    已知DS=2000H,BX=0100H,SI=0002H,存储单元[20100H]到[20103H]依次存放12H、34H、56H、78H,[21200H]到[21203H]依次存放 2AH、4CH、B7H、65H,说明下列每一条指令执行后AX寄存器的内容。
    (1) MOV    AX,[1200H]
    (2) MOV    AX,[BX]
    (3) MOV    AX,[BX+1100H]
    (4) MOV    AX,[BX+SI]
    (5) MOV    AX,[BX][SI+1100H]
【问题2】(5分)
    下列MOV指令都是错误的,请指出错误原因。
    (1) MOV    ES,1234H
    (2) MOV    AL,300
    (3) MOV    [SP],AX
    (4) MOV    AX,BX+DI
    (5) MOV    20H,AH
查看答案
简答题 试题五(共15分)
    阅读以下说明和C语言代码,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
    在嵌入式操作系统设备管理的实现上,常使用到C语言的函数指针变量,由统一的管理函数调用不同的设备驱动程序。下面的一段 C 语言代码是驱动管理程序manage_device调用4个不同设备驱动程序,但没有用到函数指针变量。
【C语言代码】
/* 变量与类型说明*/
#include  "stdio.h"
#include  "stdlib.h"
extern int  sys_status;
extern int Dev_drv1(int arg1, int arg2);
extern int Dev_drv2(int arg1, int arg2);
extern int Dev_drv3(int arg1, int arg2);
extern int Dev_drv4(int arg1, int arg2);
#define  NOERROR  0
type struct {
    int  _fd;
  } TYP_DEV_TAB;
TYP_DEV_TAB  dev_tab[50]= {101,99, 80, 120,};
/* 程序代码 */
void  manage_device(int devid, int arg1, int arg2)
{  int  place ;
  int  ret;
    for(place=0 ; place<50 ; place++)
        if dev_tab [place]._fd == devid)  break;
    if(place>=50)
        printf(" NO DEVICE  fd = %d\n ",devid);
    switch(dev_tab [place]._fd) {
        case  80:
            ret = Dev_drv3(int arg1,int arg2);
            break;
        case  99:
            ret = Dev_drv2(int arg1,int arg2);
            break;
        case  101:
            ret = Dev_drv1(int arg1,int arg2);
            break;
        case  120:
            ret = Dev_drv4(int arg1,int arg2 );
            break;
  }
  if(ret!=NOERROR)
      printf(" DEVICE  %d  error!\n ", devid);
}
int  Dev_drv1(int arg1,int arg2 )
{
  /* 局部变量声明,略 */
  /* 驱动程序代码,略*/
}
int  Dev_drv2(int arg1,int arg2 )
{
  /* 局部变量声明,略 */
  /* 驱动程序代码,略*/
}
int  Dev_drv3(int arg1,int arg2)
{
  /* 局部变量声明,略 */
  /* 驱动程序代码,略*/
}
int  Dev_drv4(int arg1,int arg2)
{
  /* 局部变量声明,略 */
  /* 驱动程序代码,略*/
}
【问题1】(8分)
    请用C语言的函数指针变量,对manage_device函数进行改造,完成下面C语言代码中的(1)、(2)、(3)和(4)处的变量说明或语句,将解答填入答题纸的对应栏内。
【C语言代码】
/* 变量与类型说明*/
#include  "stdio.h"
#include  "stdlib.h"
extern int  sys_status;
extern int Dev_drv1(int arg1, int arg2);
extern int Dev_drv2(int arg1, int arg2);
extern int Dev_drv3(int arg1, int arg2);
extern int Dev_drv4(int arg1, int arg2);
#define  NOERROR  0
typedef struct {
    int  _fd;
    (1)函数指针变量说明;/*  变量名用process  */
} TYP_DEV_TAB;
TYP_DEV_TAB  dev_tab[50]= {{101, Dev_drv1},{99, Dev_drv2},
{80, Dev_drv3},{120, Dev_drv4},};
/* 程序 */
void  manage_device(int devid, int arg1, int arg2)
{  int  place ;
  int  ret;
  (2)函数指针变量说明;/*局部变量,变量名用ProcAction  */
    for(place=0 ; place<50 ; place++)  {
        if(dev_tab [place]._fd == devid) {
            (3)语句1;/*  变量名用ProcAction,得到具体函数的入口地址 */
            break;
        }
    }
    if(place>=50)
        printf("NO DEVICE  fd = %d\n",devid);
  (4)语句2;
    if(ret!=NOERROR)
        printf("DEVICE  %d  error!", devid);
}
【问题2】(3分)
    在C语言程序中,常在某些变量的说明前加extern,如本题在变量说明中的第一条加extern int sys_status;请说明加extern与不加extern的区别,在进行编译时会有什么样的不同处理?
【问题3】(2分)
    函数的参数存放在什么地址空间中?说明其作用范围。将答案填入答题纸的对应栏内。
【问题4】(2分)
    在设备驱动程序(函数)Dev_drv1中,对指针ptr的说明如下:
【C语言代码】
    int  Dev_drv1(int arg1,int arg2 )
    {
        struct  node {
            int  ID;
            char  name [20];
            int  range;
        } ;
        struct node  *ptr;
        /* 其它局部变量声明,略 */
        ptr  =  (struct  node *)malloc(sizeof(struct  node)*100);
        /* 其它程序代码,略*/
    }
  设int 为32位整数,char占8位。当对指针ptr赋完值后的值为0x3751C0,若再执行一条“ptr++;”语句,此时ptr的值为多少?(用十六进制表示)。
查看答案
简答题 试题一(共15分)
    下面是关于PDA设计方案的叙述,仔细阅读并分析,回答问题1至问题3,将答案填入答题纸的对应栏内。
【说明】
  个人数字助理(Personal Digital Assistant,PDA)是典型的嵌入式系统,具有计算、电话、网络和个人信息管理等多项功能。某单位欲开发一款PDA产品,选择S3C2410作为CPU,存储器采用SRAM、DRAM和NAND Flash三种内置存储器,显示器采用LCD,图1-1为PDA的硬件示意图。软件采用嵌入式Linux操作系统。
 
    图1-1  PDA的硬件配置图
【问题1】(3分)
    不同类型的存储器,其特性也不同,请完成表1-1中的空白处内容,在“易失性”栏中填写“是”或“否”,在“相对读写速度”栏中填写“快”、“中”或“慢”。
    表1-1  存储器的设备特征
 
【问题2】(5分)
    该PDA产品的软件如下所示:
    ⑴ 记事本    ⑹ 游戏软件
    ⑵ 电源管理      ⑺ GUI软件
    ⑶ TCP/IP协议栈      ⑻ GPS导航定位软件
    ⑷ 文件系统      ⑼ 处理触摸屏的软件
    ⑸ LCD驱动程序      ⑽ Word文字处理软件
    图1-2是PDA软件的层次关系示意图,共分为4类软件。
 
    图1-2 PDA软件层次关系示意图
    请说明上述10个软件所属的软件类别(将软件的编号填入答题纸相应的位置)。
    (注意:每个选项只能属于一类软件,有重复者按选错对待。)
【问题3】(7分)
    该PDA产品的操作系统采用嵌入式Linux,网络协议采用TCP/IP,图1-3是未完成的面向连接的socket通信流程图。
    请从下列子程序(参数和返回值略)中选择恰当者填入图1-3所示流程图的相应编号处。
    ⑴Accept()    ⑵ Bind()      ⑶ Connect()
    ⑷ Listen()    ⑸ Read()    ⑹ Write()
 
    图1-3 面向连接的socket通信流程图
查看答案
简答题 试题二(共15分)
    阅读以下关于LED接口电路的叙述,回答问题1至问题2,将答案填入答题纸的对应栏内。
【说明】
    某计算机系统采用内存和接口统一编址方式。内存可寻址空间为 1MB,内存地址用A0~A19传送,读写信号分别为 /MEMR和 /MEMW;接口可寻址空间为64KB,接口地址用A0~A15传送,读写信号分别为 /IOR和 /IOW。
    在该计算机系统上设计的LED接口电路如图2-1所示,分配的接口地址为0000H。图中的74374为锁存器,其真值表见表2-1。
   
    图2-1  LED接口电路图
    表2-1  74374锁存器的真值表
 
【问题1】(5分)
    图2-1所示的LED接口电路中有设计错误,请找出其中至少4处错误(从编号为①~⑧的备选答案中选择)。
    ① 74374的OE接5V
    ② A16~A19没参加接口地址译码
    ③ LED的限流电阻R的阻值太小
    ④ 译码器为或非门
    ⑤ LED阴极接电源
    ⑥ /MEMW没参加接口地址译码
    ⑦ /IOW没参加接口地址译码
    ⑧ LED的限流电阻R的阻值太大
【问题2】(10分)
    请针对【问题1】找出的LED接口电路设计中的错误,简要分析其故障原因。
查看答案
简答题 试题三(共15分)
    下面是关于嵌入式软件测试方面的叙述,回答问题1和问题2,将解答填入答题纸的对应栏内。
【说明】
    甲公司是一个专业的软件测评中心,承担了某机载软件测试任务。王工是该测试任务的负责人。用户指出,被测件是控制飞机飞行的关键软件,其安全性要求很高,必须按有关规定开展测评工作。
【问题1】(8分)
    王工与被测方讨论被测件的测试计划时,在测试环境方面产生了分歧。王工认为:由于当前被测件的实验平台要用于系统联试,没有时间提供给测评工作,测评工作可在仿真环境下进行,没有必要非得在目标机环境下测试;而被测方认为:软件测评工作仅仅用仿真环境是不够的,不能真实反映软件特性,可根据需要安排在实验平台上进行。
    请对双方的意见进行分析,回答①~④问题:
    王工和被测方的意见  ①  。
    ① A. 都对    B. 王工正确而被测方不完全正确
    C. 都不完全正确    D. 被测方正确而王工不完全正确
    你对有关测试环境的建议如下(请将建议填入答题纸的对应栏内):
    1.                            ②                                ;
    2.                            ③                                ;
    3.                            ④                                。
【问题2】(7分)
    仔细阅读以下有关修正的条件判定覆盖(MC/DC)和条件判定覆盖(C/DC)的叙述,回答①~④问题,并将其填入答题纸的对应栏内。
    由于被测件是关键级软件,按有关规定,被测件的测试必须达到MC/DC。MC/DC要求测试集满足  ①  条件;C/DC要求测试集满足  ②  条件。图3-1的例子中给出了两个判定条件的例子,则满足MC/DC要求的测试集是{  ③  },满足C/DC要求的测试集是
 
    图3-1  两个判定条件的例子
查看答案
简答题 试题四(共15分)
    阅读以下关于80X86处理器方面的叙述,请回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
  80X86计算机中的寻址方式包括程序寻址和数据寻址两类。数据寻址方式是指获取指令所需的操作数或操作数地址的方式;程序寻址方式是指程序中出现转移和调用时的程序定位方式。
    部分数据寻址方式见表4-1,其中,为每种数据寻址方式分配一个编号。
    表4-1  数据寻址方式及编号
 
    程序寻址方式见表4-2,其中,为每种程序寻址方式分配一个编号。
    表4-2  程序寻址方式及编号
 
【问题1】(6分)
    按照表4-1所列出的数据寻址方式,说明表4-3中各汇编指令指定的操作数或操作数地址属于哪类数据寻址方式,将答案填写在答题纸的对应栏中(直接填写编号即可)。
    表4-3  汇编指令采用的数据寻址方式
 
【问题2】(5分)
    按照表4-2的程序寻址方式,说明表4-4中各汇编指令中指定的地址属于哪类程序寻址方式,将答案填写在答题纸的对应栏中(直接填写编号即可)。
    表4-4  汇编指令属于的程序寻址方式
 
【问题3】(4分)
    以下汇编程序用于求寄存器AX中符号数的绝对值。请将下面汇编程序的空(1)~(4)补充完整,并将解答填入答题纸的对应栏中。
            CMP  AX, (1)
            JL    (2)
            JMP  (3)
YESNEG:  NEG  AX
NONEG:  MOV  RESULT, (4)
    将上述汇编程序改进如下,请将改进后的汇编程序的空(5)~(8)补充完整,并将解答填入答题纸的对应栏中。
            CMP  AX, (5)
            JGE    (6)
            NEG  (7)
NONEG:  MOV  RESULT, (8)
查看答案
简答题 试题五(共15分)
    阅读以下关于利用信号量机制解决进程同步与互斥方面的应用实例,回答问题1至问题3,将答案填入答题纸的对应栏内。
【说明】
    在多道程序系统中,进程是并发执行的。这些进程间存在着不同的相互制约关系,主要表现为同步和互斥两个方面。信号量机制是解决进程间同步与互斥的有效方法。下面是信号量应用实例。
    图5-1所示代码是在µC/OS-II操作系统上运行的一个应用的主函数。该函数创建了任务Task1和Task2,其中Task1实现从键盘读入一个字符的功能,Task2将该字符输出到屏幕,它们使用信号量和一个公共变量buffer来传递该字符。
    主函数、Task1和Task2中所调用的函数原型说明如下:
  a. 创建一个信号量:OS_EVENT *OSSemCreate(INT16U value);
  b. 创建一个任务:INT8U OSTaskCreate(void(* task)(void *pd),void *pdata,OS_STK *ptos,INT8U prio);
  c. 开始执行多任务:void OSStart(void);
  d. 从键盘读入一个字符:char scanc();
  e. 输出一个字符至屏幕:void printc(char ch);
  f. 发出一个信号量:INT8U OSSemPost(OS_EVENT *pevent);
  g. 等待一个信号量:void OSSemPend(OS_EVENT *pevent,INT16U timeout,
 
    图5-1  应用的主函数
【问题1】(5分)
    请简述什么是临界资源?什么是临界区?访问临界资源应遵循哪些原则?
【问题2】(4分)
    设S为信号量,P、V操作的形式化定义如图5-2和图5-3所示,请完成该形式化定义,将应填入(n)处的内容写在答题纸的对应栏中。
 
    图5-2  P操作的形式化定义
 
    图5-3  V操作的形式化定义
【问题3】(6分)
    请根据本题要求完善任务Task1(图5-4)和任务Task2(图5-5)的程序代码,填补图中的空缺,将答案填写在答题纸的对应栏中。
 
    图5-4  任务1的程序
 
    图5-5  任务2的程序
查看答案
简答题 试题一(共15分)
    阅读以下关于某嵌入式系统设计方案的叙述,回答问题1至问题3,将答案填入答题纸的对应栏内。
【说明】
    通常计算机按其体系结构分为冯•诺依曼(Von neumann)结构和哈佛(Harvard)结构。冯•诺伊曼结构,也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。复杂系统的不同处理器可采用不同类型体系结构。
  某嵌入式系统由数据处理模块、信号处理模块和光纤网络交换模块组成,如图 1-1所示。其中数据处理模块的主处理器选用 PPC7447,内部集成了二级 CACHE,并有SDAM存储器、FLASH、NvRAM、实时时钟、FC(Fabric Channel)通信接口、以太网接口和RS232接口;信号处理模块采用DSP TMS320C6000,并有 FC通信接口、RS232接口,用于SPM与外部数据通信;光纤网络交换模块提供FC协议交换能力,主要由控制单元和交换单元两部分组成。
  本嵌入式系统的数据处理模块主要接收外部命令、控制系统运行、与系统其它模块通讯;信号处理模块主要进行图形图像处理,需要较大的运算量和较高的运算速度。
 
    图1-1  某嵌入式系统组成
【问题1】(6分)
    回答下列问题,将答案填写在答题纸对应的栏目中。
    本嵌入式系统的数据处理模块采用  (1)  体系结构,信号处理模块采用  (2)体系结构。
    在设计中断时,中断触发方式一般分为沿中断和电平中断。沿中断利用  (3)  或(4)  作为中断触发信号, 电平中断利用  (5)  或  (6)  作为中断触发信号。
【问题2】(5分)
    在设计数据处理模块DPM时,假设某桥芯片内部集成一路递增定时器,定时器位宽为32位,最高位为控制使能位,输入时钟为25MHz。请回答下面三个问题,将答案填写在答题纸对应的栏目中(给出表达式即可)。
  (1)该定时器最长定时时间是多少(单位ns)?
  (2)设置10ms定时时间,则定时器的初值为多少?
  (3)若改为一路递减定时器,设置10ms定时时间,则定时器的初值为多少?
【问题3】(4分)
    嵌入式系统底层FC通讯驱动对大数据采用DMA数据传输。图1-2是未完成的DMA数据传输工作流程图,请从下面①~⑧中选择正确的答案,完成该图,将答案填写在答题纸的对应栏中。
 
    图1-2  DMA数据传输工作流程图
    备选答案:
    ① 字计数器计数    ②DMA发送中断      ③DMA响应
    ④DMA接收4个字节    ⑤ 发送内存地址      ⑥ 再次修改内存地址
    ⑦ 传送结束    ⑧ 继续传送
查看答案
简答题 试题二(共15分)
    阅读以下关于AD574(12位的A/D转换器)的叙述,回答问题1至问题3,将答案填入答题纸的对应栏内。
【说明】
    AD574可以通过简单的三态门、锁存器接口与微机系统的系统总线相连接,也可以通过可编程接口(如8255)与系统总线相连接。由表2-1可知,AD574可以工作在8位,也可以工作在12位。图2-1为以8255为接口芯片,将工作于12位下的AD574接到8位ISA系统总线上。
    表2-1  AD574的控制功能
 
  
    图2-1  AD574经过8255与8位ISA系统总线相连接
【问题1】(3分)
    在图2-1中,通过8255的A0、A1口地址选择信号线进行PA口、PB口、PC口的控制。回答下列问题,将答案填写在答题纸对应的栏目中。
    (1)A0为0,A1为0时控制(1)口。
【问题2】(4分)
    简要回答下列关于74LS138器件的功能以及作用的问题,将答案填写在答题纸对应的栏目中。
    (1)74LS138器件在图2-1中的功能是 (1) ;
 
【问题3】(8分)
   
    ;对8255初始化,此段程序放在应用程序开始的位置上
    INTI55: MOV    DX,  0063H
            MOV    AL,  10011010B  ;8255的A口8位,B口8位,以及C
                                        口的高4位均设置为输入,C口的低4
                                        位设置为输出
            OUT    DX,  AL        ;控制字写入8255的控制寄存器
            MOV    AL,  00000001B
            OUT    DX,  AL        ;使用位控方式将PC0置位
    ;以下是对输入信号进行一次变换的程序
    ACQUQ:MOV    DX,  0062H
            MOV  AL,  00000000B
            OUT    DX,  AL
            MOV  AL,    (1)  B  ;二进制表示
            OUT    DX,  AL          ;由PC0输出低电平到高电平启动变换
            NOP
            NOP
    WAITS:  IN    AL,DX        ;取出AD574的STS状态
            AND  AL,  (2)  H    ;判断变换是否结束, 十六进制表示
            JNZ    WAITS
            MOV  DX,0060H
            IN    AL,DX          ;读取A口取得A/D变换的低8位
            MOV  BL,  (3)      ;将A口获取的低8位放在BL中
            MOV  DX,0061H
            IN    AL,DX          ;读取B口数据
            AND  AL,  (4)  H  ;取AD574数据的高4位, 十六进制表示
            MOV  BH,AL
            RET
查看答案
简答题 试题三(共15分)
    下面是关于嵌入式软件测试方面的叙述,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
    某公司是一个有资质的专业嵌入式软件测评中心,承担了一项嵌入式软件的测试任务。按用户要求,需要对被测软件进行单元测试、部件(集成)测试和系统测试。
【问题1】(6分)
  软件测试中的单元测试、部件(集成)测试和系统测试都有各自的测试目标。以下描述中属于单元测试的是  (1)  ,属于部件(集成)测试的是  (2)  ,属于系统测试的是  (3)  ,请把以下8个选项的序号分别填入上述空白处,且不能重复。将答案填写在答题纸对应的栏目中。
    ① 测试对象为单个模块或者函数
    ② 测试对象包括整个软件系统,以及软件所依赖的硬件,外设等
    ③ 测试对象为多个模块或多个单元
    ④ 整个测试必须在系统实际运行环境中进行
    ⑤ 主要测试模块内部逻辑结构的正确性
    ⑥ 测试各个模块间的调用接口
    ⑦ 包括测试部分全局数据结构及变量
    ⑧ 主要测试局部数据结构及变量
【问题2】(5分)
    被测软件研制方提出,为节约成本,由软件开发人员对所开发的软件进行测试,测评中心仅仅进行测试结果确认,并按测评中心规定编写各种测试文档并出具证明。此提议遭到测评中心的反对。软件研制方认为:
  (1)自己编写的程序,结构熟悉,需求清楚,易发现问题;
  (2)自己测试后,又经过第三方的确认,是可行的;
  (3)知识产权可受保护。
  测评中心反驳:
  (1)程序不能由编写者自己测试,就像不能既当运动员又当裁判员一样;
  (2)自己测试,有弄虚作假的嫌疑;
  (3)软件测试不能丧失独立性,仅由测评中心确认,损害测评中心声誉,不行。
    针对上述情况,应该由  (1)  进行测试。软件研制方的3条理由正确的有  (2)条,错误的有  (3)  条;测评中心所说的正确的有  (4)  条,错误的有  (5)条。
【问题3】(4分)
    判断以下关于软件测试叙述的正确性,回答“错”或“对”, 并将其填入答题纸的对应栏内。
    (1)判定/条件覆盖使每个分支至少被执行一次,且判定中的每个条件都获得所有可能的逻辑值。
    (2)在没需求文档的条件下能够进行黑盒测试。
    (3)在进行压力测试的同时可以进行单元测试。
    (4)软件测试中设计的测试实例(test case)主要由输入数据和预期输出结果两部分组成。
查看答案
简答题 试题四(共 15分)
    阅读以下关于汇编语言方面的叙述,回答问题1至问题3,将答案填入答题纸的对应栏内。
【说明】
  汇编语言是面向机器的程序设计语言。在汇编语言中,用助记符代替机器码,用地址符号或标号代替地址码,直接同计算机的底层软件甚至硬件进行交互,具有代码优化、运行效率高等特点。本题针对的是x86平台下Microsoft公司的MASM6.x汇编语言。
【问题1】(6分)
    汇编语言中的数值表达式一般是指由运算符连接的各种常数所构成的表达式。汇编程序在汇编过程中计算表达式,由于在程序运行之前就已经计算出了表达式,所以运行速度没有变慢,而程序的可读性却增强了。表4-1列出了MASM常见的一些运算符及其含义,请将表4-1中①~⑥处运算符的含义写在答题纸的对应栏中。
    表4-1 运算符及含义
 
【问题2】(5分)
    运算符具有优先级。表4-2按照优先级从高到低排列常见的一些运算符,请从以下备选的运算符中按照优先级选择(1)~(5)处的运算符,将其写在答题纸的对应栏中。
    备选的运算符: XOR  MOD  HIGH  AND  GT
    表4-2 运算符的优先级
 
【问题3】(4分)
    BIOS 软件开发接口由一批子程序组成,负责管理系统内的输入输出设备,直接为操作系统和应用程序提供底层设备驱动服务。常用的BIOS服务及功能见表4-3所示。
    表4-3 常用的BIOS服务功能
 
    若调用视频服务功能(10H)中的光标设置子功能(02H),将视频页上的光标移到3行14列,用如下汇编语言实现,请补充完整下面程序中的(1)~(4)处,将答案填写在答题纸的对应栏中。
    MOV AH,  (1)  H    ;十六进制表示
    MOV DH,  (2)  H
    MOV DL,  (3)  H
    INT  (4)  H
查看答案
简答题 试题五(共15分)
    阅读以下关于嵌入式C语言编程方面的问题,回答问题1至问题3,将答案填入答题纸的对应栏内。
【说明】
    嵌入式C语言编程中常涉及位运算、宏定义的问题,以及大端方式(Big-endian)、小端方式(Little-endian)的访问问题。
【问题1】(4分)
    嵌入式系统中常要求用户对变量或寄存器进行位操作。下面的两个函数分别为设置和清除变量a的第5位。请使用下面的宏定义BIT5按要求对变量a进行相应的处理。在函数set_bit5中,用位或赋值操作(|=)设置变量a的第5位,在函数clear_bit5中,用位与赋值操作(&=)清除变量a的第5位。
    #define BIT5 (0x01<<5)
    static int a;
    void set_bit5(void)
    {
    ①  ;  /* 设置变量a的第5位 */
    }
    void clear_bit5(void)
    {
    ②  ;  /* 清除变量a的第5位 */
    }
【问题2】(5分)
    图5-1所示代码的设计意图是计算1~100各数的平方。该段代码运行后,没有得到应有的结果,请说明出错原因,将答案填入答题纸的对应栏内。
 
    图5-1 计算1到100平方数的代码
    图5-2是在不改变宏定义的情况下,对程序进行修改。请完成该段代码,将答案填入答题纸的对应栏内。
 
    图5-2 计算1到100平方数的代码
【问题3】(6分)
    某嵌入式处理器工作在大端方式(Big-endian)下,其中unsigned int为32位,unsignedshort为16位,unsigned char为8位。仔细阅读并分析下面的C语言代码,写出其打印输出的结果,将答案填入答题纸的对应栏内。
#include  "stdio.h"
#include  "stdlib.h"
void  *MEM_ADDR;
void mem_test(void)
{
  unsigned int *pint_addr = NULL;
  unsigned short *pshort_addr = NULL;
  unsigned char *pchar_addr = NULL;
  MEM_ADDR = (void *)malloc(sizeof(int));
  pint_addr = (unsigned int *)MEM_ADDR;
  pshort_addr = (unsigned short *)MEM_ADDR;
  pchar_addr = (unsigned char *)MEM_ADDR;
  *pint_addr = 0x12345678;
  printf("0x%x, 0x%x\n", *pshort_addr, *pchar_addr);
  /* 第一次输出 */
  pshort_addr++;
  *pshort_addr = 0x5555;
  printf("0x%x, 0x%x\n", *pint_addr, *pchar_addr);
  /* 第二次输出 */
  pchar_addr++;
  *pchar_addr = 0xAA;
  printf("0x%x, 0x%x\n", *pint_addr, *pshort_addr);
  /* 第三次输出 */
}
查看答案