![](https://lstatic.shangxueba.com/sxbzda/h5/images/m_q_title.png)
阅读以下有关嵌入式系统设计的说明,在答题纸上回答问题1至问题3。【说明】 某公司承接了某机载嵌入
![](https://lstatic.shangxueba.com/sxbzda/h5/images/tips_org.png)
第1题
【说明】
某公司承接了某机载嵌入式系统的研制任务。该机载嵌入式系统由数据处理模块、大容量模块、信号处理模块、数据交换模块和电源模块等组成。数据处理模块有2个,分别完成数据融合和导航通讯任务;大容量模块主要功能是存储系统数据,同时要记录信号处理模块、数据处理模块的自检测、维护数据,向数据处理模块提供地图数据;信号处理模块的处理器为专用的DSP,接收红外、雷达等前端传感器数据并进行处理,将处理后的有效数据(数据带宽较大)发送给数据处理模块;数据交换模块主要负责系统的数据交换;电源模块主要负责给其它模块供电,电源模块上没有软件。
要求该机载嵌入式系统符合综合化、模块化的设计思想,并考虑系统在生命周期中的可靠性和安全性,以及硬件的可扩展性和软件可升级性,还要求系统通讯延迟小,支持多模块上的应用任务同步。
【问题1】
在设计系统架构时,李工提出了如图3-1所示的系统架构,即模块间的网络通信采用光纤通信(Fiber Channel,FC)技术,而王工认为应采用VME总线架构,如图3-2所示。王工的理由是公司多年来基于VME总线技术设计了多个产品,技术成熟,且费用较小。但公司经过评审后,决定采用李工的方案。
请用500字以内的文字,说明VME和FC各自的特点,并针对机载嵌入式系统的要求,指出公司采用李工方案的理由。
【问题2】
公司依据ARINC653标准,设计了满足ARINC653标准的操作系统,该操作系统对系统中可能发生的模块级、分区级和进程级的错误进行处理,实现了如图3-3所示的系统健康监控机制,请分别将备选答案中的各种错误和健康监控部件填入图3-3中的(1)~ (5)。
备选答案:分区健康监控、分区初始化阶段出现的分区配置错误、分区切换时出现的错误、应用进程错误、进程健康监控。
注:ARINC653标准(Avionics Application Software Standard Interface)是美国航空电子工程协会AEEC于1997年为航空民用飞机的模块化综合航空电子系统定义的应用程序接口标准,该标准提出了分区( Partition)的概念以及健康监控(health monitoring)机制。分区是应用的一种功能划分,也是操作系统调度的基本单位,严格按预先分配的时间片调度。分区间具有时空隔离特点。分区内的每一执行单元称为进程。
【问题3】
为了实现满足ARINC653标准的操作系统的时空分区隔离机制,项目组选择了PowerPC作为数据处理模块的处理器(CPU)。这样,当一个分区出现故障时,不会蔓延到模块中同一处理器的其它分区。请用500字以内的文字,说明如何采用PowerPC实现应用与内核以及诸应用之间的隔离和保护。
第2题
【说明】
构件(component)也称为组件,是一个功能相对独立的具有可复用价值的软硬件单元。近年来,构件技术正在逐步应用于大型嵌入式系统的软件设计。某公司长期从事飞行器电子设备研制工作,已积累了大量成熟软件。但是,由于当初管理和设计等原因,公司的大量软件不能被复用,严重影响了公司后续发展。公司领导层高度重视软件复用问题,明确提出了要将本公司的成熟软件进行改造,建立公司可复用的软件构件库,以提升开发效率、降低成本。公司领导层决定将此项任务交给技术部门的王工程师负责组织实施。两个月后,王工程师经过调研、梳理和实验,提交了一份实施方案。此方案得到了公司领导层的肯定,但在实施过程中遇到了许多困难,主要表现在公司软件架构的变更和构件抽取的界面等方面。
【问题1】(共9分)
请用200字以内文字说明获取构件的方法有哪几种?开发构件通常采用哪几种策略?并列举出两种主流构件标准。
【问题2】(共6分)
由于该公司已具备大量的成熟软件,王工程师此次的主要工作就是采用遗留工程 (Legacy Engineering)方法,将具有潜在复用价值的软件提取出来,得到可复用的构件。因此,在设计软件时与原开发技术人员产生了重大意见分歧,主要分歧焦点在于大家对构件概念理解上的差异。请根据你对构件的理解,判断表3-1给出的有关构件的说法是否正确,将答案写在答题纸上。
【问题3】(共10分)
王工程师的实施方案指出:本公司的大部分产品是为用户提供标准计算平台的,而此平台中的主要开发工作是为嵌入式操作系统研制板级支持软件(BSP)。为了提高BSP软件的复用,应首先开展BSP构件的开发,且构件架构应符合国外GENESYS规范定义的嵌入式系统架构风格。图3-1给出了架构风格定义的构件通用接口,其中:链接接口 (LIF)是构件对外提供的功能服务接口;局部接口建立了构件和它的局部环境的连接,如传感器、作动器或人机接口;技术相关接口(TDI)提供了查看构件内部、观察构件的内部变量的手段,如诊断等;技术无关接口(TII)用来在运行时配置、复使、重启构件的接口。现需要针对BSP中常用的RS-232串行驱动程序设计一个可复用的软构件,请说明该软构件四类接口的具体功能。
图3-1 GENESYS规范定义的构件接口
第3题
阅读以下关于嵌入式系统能耗管理设计的描述,在答题纸上回答问題1至问题3。
随着嵌入式系统智能化技术的持续发展,系统的能耗问题已成为亟待解决的难题。某宇航公司研发的一款手持式野外辅助装备,需要较长的巡航时间,由于设计时对功耗问题考虑不周,使得产品出现了批次责任事故。公司领导决定抽调王工等5人组建专门的攻关小组,要求在三个月内完成故障归零。王工接到任务后,经反复论证 与实验,给公司提交了一份基于软件动态节能的改进方案,得到了领导及专家的好评。
【问题1】(7分) 在嵌入式系统中节能技术一般分为静态节能和动态节能两种,请用300字以内文 字分别说明什么是静态节能技术和动态节能技术,并列举三种动态节能技术。 【问题2】(6分) 王工的方案得到认可后,他带领团队研究了调度方式和系统能耗之间的关系,请用150字以内的文字说明为了节约系统能耗而釆用的设备调度策略的核心思路,并说明设备调度策略与任务实时性的关系。 【问题3】(12分) 根据上述设备有效调度时刻的策略,分析以下实例,并将答案写在答题纸上。 手持式野外辅助装备由三个实时任务和三个独立设备组成(分别表示为:t1、t2 和t3;s1、s2和S3),表3-1给出了手持式设备实时任务的时间参数表,这些任务使用独立的设备并且所有设备的特征一致,各设备待机超时可直接进入睡眠状态,处于睡眠状态的设备要经过转换状态后才能进入运行状态。假设初始状态(t=0)设备处于工作状态,且所有设备的工作状态功率为60mw/ms,转换功率为30mw/ms,睡眠功率 为10mv/ms。同时假设设备被唤醒的转换时间为10ms。设备待机后被关闭的超时值为10ms。 图3-1给出了未考虑节能需求时任务调度算法,在釆用了设备有效时刻调度策略之后,三个设备100ms周期内将按一定顺序被依次关闭和唤醒。图3-2给出了采用设备有效时刻调度策略后s1的功率随时间的变化规律。请计算此时三个设备在100ms 周期内的功耗,并计算100ms周期内,每个设备的节能比。 节能比 = (未节能情况下的系统能耗 - 节能后系统能耗)÷ 未节能情况下的系统能耗
第4题
在传统的嵌入式系统中,由于应用背景的不同,架构风格存在着差异。某公司长期从事各类嵌入式电子产品的研发工作,为了扩展业务.拟承担安全关键嵌入式产品的研制,为了统一本公司嵌入式产品的架构,以兼顾安全关键系统和非安全关键系统,公司领导层提出了采用国外近年新的跨领域嵌入式系统架构,新架构主要有6个特点:
(1)面向构件化
(2)开放式
(3)支持多种安全级别
(4)服务的层次化
(5)确定性核心
(6)内部组合的标准化
图3-1给出了跨领域嵌入式系统架构,图中CS表示领域无关的核心服务、OS表示领域无关的选择性服务、DSC表示领域相关的中心服务、DSO表示领域相关的选择性服务。该架构通常称为“腰”型架构,将嵌入式系统分为核心服务层、域服务层和应用服务层三个层次,实现了应用间相对无关性设计,架构的腰部为与领域无关的核心服务。
【问题l】(8分)
请用200字以内文字说明图3-1“腰”型架构的特点。
【问题2】 (10分)
针对图3-1的“腰”部的核心层,表3-1中给出了10种服务,请判断这些服务中哪些属于核心服务(Core Services),哪些属于选择性服务(Optional Service),将结果填到表3-1中。
【问题3】(7分)
该公司遵从图3-1定义的嵌入式架构风格,梳理了现有产品序列,定义了公司产品中涉及的软件主要包括以下4类:
(1)基于分区化的嵌入式操作系统(如:VxWorks653)
(2)存储管理部件(如:文件系统)
(3)支持产品互联的多种网络协议部件(如:TCP/IP、ppp、CAN、1394等)
(4)应用软件
请根据你所掌握的上述软件的相关知识,说明这些软件应归属图3-1中核心服务层、
域服务层和应用服务层中的哪一层。并举例说明上述软件提供的服务中哪些归属于架构的OS、CS、DSC和DSO服务,填写表3-2。
第5题
填入答题纸的对应栏内。
【说明】
在某嵌入式系统设计中,需要使用嵌入式主处理器对外围模拟视频信号进行采集、
编码、存储和网络传输。图2-1为李工设计的该嵌入式系统的原理框图:采用两片
TVP5146芯片进行两路模拟视频数据采集,在该处理器外围采用MAX3232芯片进行串
口扩展,以方便系统调试,同时在该原理图中还设计了相应的Flash存储器接口,DDR
存储器,网络及电源等电路。
在该电路设计中,视频采集芯片TVP5146需要主处理器通过I2C接口进行采集模式、
亮度、对比度、增益等参数的调节,但是三处理器只有一个12C接口,因此需要将两个
TVP5146挂载的同一个I2C总线上,如图1-2所示。TVP5146的I2C芯片地址选择如表
2.1所示,当进行I2C读时,I2C地址的最低位是1,当进行写操作时,I2C地址最低位是
0,AO由外围电路的高低电平决定,高电32为1,低电平为0。
【问题1】 (6分,答案用十六进制表示,比如O(AA)
根据图2-2及表2.1所示,对图2-2中的TVP5146(1)和TVP5146(2)两个芯片分别进
行I2C读写操作时,其对应的地址依次是:
TVP5146(1)读操作时的I2C地址: (1)
TVP5146(1)写操作时的12C地址: (2)
TVP5146(2)读操作时的I2C地址: (3)
TVP5146(2)写操作时的I2C地址: (4)
【问题2】(3分,答案用十六进制表示,比如( xAA)
在图2-2原理图设计中,主处理器的串口控制器的时钟为27M,在进行串口调试时,
李工需要将串口配置为9600bps的波特率,需要对串口控制器的DLL (Divisor Latches
Low寄存器)和DLH(Divisor Latches High寄存器)进行配置,DLL和DLH的寄存器分
别如图2-3和图2-4所示。
‘ 根据以上信息. DLL和DLH寄存器应该分别被配置为:
DLL: (l)
, DLH: (2)
【问题3) (6分,答案用十六进制表示,比如OxAA)
在李工对TVP5146进行配置时,需要编写I2C的读写函数,在进行I2C的读写操作
时,需要对I2C的控制寄存器、数据寄存器以及状态寄存器进行配置和查询。具体的写
操作流程为:先配置控制寄存器为写模式,再检查状态寄存器,如果准备就绪,则向数
据寄存器写数据,写完之后进行状态寄存器查询状态,根据状态退出写操作。具体的读
操作流程为:先配置控制寄存器为读模式,再检查状态寄存器,如果准备就绪,则从数
据寄存器中读出,然后退出。李工所选用的处理器对应的I2C控制寄存器、数据寄存器、
状态寄存器各自的定义如表2.2、表2.3和表2.4所示。
请将空(1)---(4)处空缺的代码补充完整
第6题
阅读以下关于某嵌入式系统BIT的说明,回答问题1至问题3,将答案填入答题纸
的对应栏内。
【说明】
【说明】
某公司负责研制一个嵌入式计算机系统,如图4-1所示。该系统以PowerPC处理器
为核心,通过AD进行实时数据采集,并将采集来的数据进行预处理后,通过RS422总
线发送给后端计算中心。
同时为了提高产品的安全性和可靠性,设计实现了机内自测试(Built In Test,BIT)。
BIT依靠自身电路和程序完成对计算机平台硬件的功能检查、故障诊断与隔离。
【问题1】(6分)
王工负责对该系统进行故障模式分析,识别出了该系统可能出现的故障模式,如表
4.1所示。请将属于CPU和RAM的故障填写在答题纸的对应栏中。
【问题2](3分)
王工设计了三种BIT测试程序,分别是上电BIT、周期BIT、维护BIT。运行流程
如图4-2所示。
图4-2软件运行流程示意图
请回答下面三个问题,将答案填写在答题纸的对应栏中。
(1)请问不影响和破坏任务正常运行的是哪一种BIT?
(2)请问具有最完备的测试用例集合,可用于故障隔离和定位的是哪一种BIT?
(3)请问确保设备单元在使用前都被测式的是哪一种BIT?
【问题3](6分)
李工负责设计CPU单元的BIT测试算法,通过对每组指令分别设计一组测试用例,
定义不同的操作数、操作码和预期值,在指令运行后比较结果与预期值。由于该系统选
用的处理器集成了多级Cache(高速缓存),并且指令缓存和数据缓存是分开的,执行指
令功能测试前需要刷新指令Cache,以保证与内存中的测试代码一致。每个测试项的测
试结果正确为0,故障为1。
以32位字比较指令cmpw测试为例,cmpw将寄存器rA和rB内数据比较的结果(大于、
小于、等于)放入条件寄存器CIX,其操作码为Ox7COOOOOO,测试用例数据如表4.2所示。
表4.2字比较指令CI ipw测试用例数据
cmpw指令功能测试的算法流程示意如图4—3所示。请补全流程图4.3中的执行操作,
将答案填写在答题纸的对应栏中。
第7题
【问题1】(12分) 请用300字以内文字说明什么是多核技术和多线程技术,并回答李工的意见是否正确,为什么? 【问题2】(6 分) 在多核环境下,线程的活动有并行和并发两种方式,请用300字以内的文字说明这两种方式的含义及差别。 【问题3】(7 分) 请根据自己所掌握的多核、多线程的知识,判别表 3-1给出的说法是否正确,并将答案写在答题纸上对应空白处(填写正确或错误)。
第8题
阅读以下关于嵌入式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各数的平方。 该段代码运行后,没有得到应有的结果,请说明出错原因,将答案填入答题纸的对应栏内。
”
【问题3】(6分)
某嵌入式处理器工作在大端方式 (Big-endian)下, 其中unsigned int为32位, unsigned short为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);
/* 第三次输出 */
}
第9题
【说明】
在开发某嵌入式系统时,设计人员根据系统要求,分别编写了如下程序,其中:
【程序1】;实现两个变量的值的互换;
【程序2】:完成某功能的C语言程序;
【程序3】和【程序4】:是P、V操作的形式化定义,设S为信号量。在多道程序系
统中,进程是并发执行的。这些进程间存在着不同的相互制约关系,主要表现为同步和
互斥两个方面。信号量是解决进程间同步与互斥的有效方法。
【程序1】
【程序3】
P操作的形式化定义
P (S)
{
(1):
If(2) {
阻塞该进程;
将该进程插入信号量S的等待队列
}
}
【程序4】
V操作的形式化定义:
V(S)
{
(3)
if(4) {
从信号量s的等待队列中取出队首进程
将其插入就绪队列:
}
}
【问题1】(6分)
执行【程序1】后,没有能够实现两个变量值的交换,为什么?请修改上述函数
实现两个变量值的交换,要求函数无返回值,形式为:void swap(...)。请将答案填写在
答题纸中对应的栏目。
【问题2】(3分)
请问【程序2】运行结果是什么?
【问题3】(6分)
请简述什么是临界资源?什么是临界区?
请完成【程序3】和【程序4】的形式化定义,将应填入(n)处的内容写在答题纸
的对应栏中。
第10题
阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
在某嵌入式系统设计中,使用8片RAM进行64KRAM的外部存储器扩展,如图2-1所示。该CPU共有16根地址线,8根数据线,在设计中,利用CPU的作为访问控制信号,该访问控制信号低电平有效。另外,
作为读写命令信号(高电平为读,低电平为写)。8片8Kx8位的RAM芯片与CPU相连,RAM芯片的片选内部为上拉电阻到电源,各个RAM芯片的片选信号和74138译码器的输出相连,译码器的地址选择端连接到CPU的A13,A14,A15地址线上。
【问题1】(8分)
根据上图所示,写出RAM0,RAM1和RAM7的地址范围(请用16进制进行表示)。
RAM0: (1)
RAM1: (2)
RAM7: (3)
若CPU操作的地址总线为A800H,结合图2-1所示的示意图,CPU访问的是哪个RAM存储器(4)。
【问题2】(4分)
如果运行时发现不论往哪片RAM写入数据后,以C000H为起始地址的存储芯片都有与其相同的数据,假设芯片与译码器可靠工作,则说明:
(1) RAM0~RAM7中(1) 的片选输入端总是处于低电平。
(2)如果有问题的存储芯片的片选输入端总是处于低电平,以下可能原因中描述不正确的是(2) 。
A.该存储芯片的CS端与存储芯片的端错连或短路
B.该存储芯片的CS端与CPU的端错连或短路
C.该存储芯片的CS端与地线错连或短路
D.该存储芯片的CS端悬空
【问题3】(3分)
根据连接图,若出现地址线A15与CPU断线,并搭接到高电平上,下面描述中正确的是( )。(该题为多选题)
A.此时存储器只能寻址A15=1的地址空间
B.此时存储器只能寻址总共64K字节空间的高32K字节地址空间
C.此时访问64K字节空间的高32K字节地址空间时会错误地访问到低32K字节地址空间
D.此时访问64K字节空间的低32K字节地址空间时会错误地访问到高32K字节地址空间
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!