问答题阅读以下关于嵌入式软件测试的叙述,回答问题1至问题3,将解答填入对应栏内。 【说明】 某嵌入式软件主要用于控制飞机起落架。飞机起落架的可靠性直接关系着机载人员的人身安全。根据载机设备对软件可靠性要求,一般将软件分为3级:关键级软件,主要级软件和一般软件。由于该嵌入式软件被定义为关键软件,要求按关键级软件进行测试。
问答题阅读以下关于某嵌入式系统设计的说明,回答问题1至问题4,将答案填入答题纸的对应栏内。【说明】某公司承接了某嵌入式系统的研制任务。该嵌入式系统由数据处理模块、系统管理模块、FC网络交换模块和智能电源模块组成,系统组成如图1-1所示。数据处理模块处理系统的应用任务;系统管理模块除了处理系统的应用任务外,还负责管理整个嵌入式系统;FC网络交换模块采用消息机制,支持广播和组播,主要负责系统的数据交换;智能电源模块负责给其他模块供电,该模块根据系统命令可以给其他模块供电或停止供电。
问答题阅读以下关于某嵌入式系统设计方案的叙述。[说明]某公司承接了开发周期为6个月的某机载嵌入式系统软件的研制任务。该机载嵌入式系统硬件由数据处理模块、大容量模块、信号处理模块、FC网络交换模块和电源模块组成,如图1-1所示。数据处理模块和大容量模块的处理器为PowerPC7447,数据处理模块主要对机载数据进行处理,完成数据融合;大容量模块主要存储系统数据,同时也有数据处理的能力;信号处理模块的处理器为专用的数字信号处理器DSP,完成雷达数据处理,并将处理后的数据发送给数据处理模块;FC网络交换模块为已开发的模块,本次不需要开发软件,主要负责系统的数据交换;电源模块主要负责给其他模块供电,电源模块上没有软件。PowerPC7447和DSP是32位处理器,内存按字节编址。PowerPC7447以大端方式(big_endian)存储数据,DSP以小端方式(littleendian)存储数据。
问答题[问题3](6分)
请简述什么是临界资源?什么是临界区?
请完成[程序3]和[程序4]的形式化定义,将应填入____(n)____处的内容写在答题纸的对应栏中。
问答题[问题5]
malloc函数申请的空间位于哪一个段?
问答题[问题3]
画出UML模型中常用关系符的图示:依赖、泛化、关联、聚合和实现。
问答题[问题4]
如果把Enter_Critical_Section()函数中的两条语句互换一下位置,会出现什么情况?
问答题阅读以下关于嵌入式操作系统软件编码优化的技术说明,根据要求回答问题1至问题5。【说明】由于嵌入式系统对实时性的要求较高,因此一般要求对代码的性能进行优化,使代码的执行速度越快越好。图6-22给出了两个算术运算的程序段(a)、(b)。
问答题[问题3](4分)
李工编写某嵌入式软件时,遇到了一些问题,请帮助李工解答下面2个问题,并将答案填写在答题纸中对应的栏目。
(1)李工在编译时,程序没有通过编译,经检查程序后将文件头的 # include 改为 # include"filename.h"后编译通过,请问 # include 和 # include"filename.h"的区别是什么?
(2)李工在编写一段C++程序时,需要调用一段已编译的C语言函数,为什么要加extem"C"?
问答题试题三(共15分)下面是关于嵌入式软件测试方面的叙述,回答问题1和问题2,将解答填入答题纸的对应栏内。【说明】甲公司是一个专业的软件测评中心,承担了某机载软件测试任务。王工是该测试任务的负责人。用户指出,被测件是控制飞机飞行的关键软件,其安全性要求很高,必须按有关规定开展测评工作。
问答题试题三(共15分)阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。[说明]操作系统主要功能之一是处理机管理,处理机管理主要是实现处理机扩充,以支持多个进程的并行运行,提高计算机的计算效率。进程是动态的概念,通常称进程为程序的一次执行。进程的主体部分是程序,包括程序和数据。进程在执行期间具备确定的状态。线程是进程中某个单独执行的控制流,也称为轻量进程。
问答题【问题2】 王工在编写某嵌入式程序时,用到对文件系统的操作,由于要保证系统的安全性,要求必须使用文件检测函数feof()和ferron(),完成【程序1】中的空(1)~(3),将答案写到答题纸相应的位置。
问答题[问题1]
代码段、数据段和bss段的大小是在什么时候确定的?
问答题请根据[说明]中的C语言代码,计算满足MC/DC覆盖要求的用例数量及条件取值范围。
问答题阅读以下有关软件工程开发的叙述,回答问题1至问题3,将答案填入对应栏内。【说明】V模型是在快速应用开发模型基础上演变而来的,由于将开发过程构造成一个V字型而得名,V模型强调软件开发的协作和速度,将软件实现和验证有机结合起来,在保证较高的软件质量情况下缩短开发周期,下图为V模型的完整诠释。
问答题 阅读以下说明和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, iht 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)
{ /*局部变量声明,略*/
/*驱动程序代码,略*/
问答题[问题4]
在图16-4所示的程序中,变量gvCh、gvShort、gvInt、gvLong、array和p分别存放在哪一个段?
问答题 阅读以下有关80X86汇编语言的叙述,回答问题1和问题2,将解答填入对应栏内。
【说明】 本题由两部分组成,第一部分为计算AX寄存器的值,第二部分为判错题。