复习题及答案.docx
《复习题及答案.docx》由会员分享,可在线阅读,更多相关《复习题及答案.docx(17页珍藏版)》请在冰豆网上搜索。
![复习题及答案.docx](https://file1.bdocx.com/fileroot1/2023-2/24/5a090a97-6f08-412e-a256-e71391cda185/5a090a97-6f08-412e-a256-e71391cda1851.gif)
复习题及答案
嵌入式复习纲要
填空题30’;名词解释20’;
阅读程序10’;问答题30’;
意见和感想10’(不少于300字)。
第一章
1、国内对于嵌入式系统的定义是什么?
p1
答:
嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁减,适用于应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
补充:
实时系统中任务有四种状态:
运行、就绪、挂起、冬眠。
2、什么是实时系统?
根据实时性,嵌入式操作系统有哪些类型?
答:
所谓实时系统是指在这种系统中,一个优先级高的任务能够得到立即的、没有延迟的服务,不需要等待任何其他优先级低的任务,一旦它得到CPU的使用权,将一直执行直到工作结束或者出现更高级别的进程。
嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件。
1)、传统的经典PTOS,包括VxWorks操作系统,以及其Tornado开发平台;2)、嵌入式Linux操作系统;3)、WindowsCE嵌入式操作系统;4)、uC/OS-II实时操作系统。
3、选择嵌入式操作系统原则有哪些?
答:
一般而言,在选择嵌入式操作系统时,可以遵循以下6个原则:
市场进入时间、可移植性、可利用资源、系统定制能力、成本、中文内核支持。
4、列举一些常见的嵌入式操作系统。
答:
常见的嵌入式系统有:
Linux、uClinux、WinCE、PalmOS、Symbian、eCos、uCOS-II、VxWorks、pSOS、Nucleus、ThreadX、Rtems、QNX、INTEGRITY、OSE、CExecutive。
5、嵌入式系统有什么特点?
p11
答:
专用于特定任务、多类型处理器和处理器系统支持、极其关注成本、是实时系统、可裁剪性好、可靠性高、大多有功耗约束。
6、说说嵌入式系统的发展趋势。
p12
答:
(1)、嵌入式开发是一项系统工程,因此要求嵌入式系统产商不仅要提供嵌入式软硬件系统本身,同时还需要提供强大的硬件开发工具和软件包支持;
(2)、网络化、信息化的要求随着因特网技术的成熟,带宽的提高而日益提高,使得单一功能的设备不再单一,结构更加复杂,这就要求芯片设计厂商在芯片上集成更多的功能;(3)、网络互联成为必然趋势:
未来的嵌入式设备为了适应网络发展的要求,必然要求硬件上提供各种网络通信接口;(4)、精简系统内核、算法,降低功耗和软硬件成本:
未来的嵌入式产品是软硬件紧密结合的设备,为了减低功耗和成本,需要设计者尽量精简系统内核,只保留和系统功能紧密相关的软硬件,利用最低的资源实现最适当的功能,这就要求设计者选用最佳的编程模型和不断改进的算法,优化编译器性能。
因此,既要求软件人员有丰富的硬件知识,又需要发展先进嵌入式技术;(5)、提供友好的多媒体人机界面:
嵌入式设备功能与用户亲密接触,最重要的因素就是它能提供非常友好的用户界面。
这方面的要求使得嵌入式软件设计者要在图形界面、多媒体技术上痛下苦功。
7、列举一些典型的嵌入式系统应用。
p10
答:
应用有:
(1)国防军事领域;
(2)工业控制;(3)交通管理;(4)信息家电;(5)办公自动化;(6)POS网络及电子商务;(7)医疗保健设备;(8)环境工程和自然;(9)机器人。
8、典型嵌入式系统硬件的基本组成。
p4
答:
嵌入式系统的硬件架构,是以嵌入式处理器为中心,由存储器、I/O设备、通信模块以及电源等必要的辅助接口组成。
嵌入式处理器可以分成:
(1)、嵌入式微处理器;
(2)、嵌入式微控制器;(3)、嵌入式DSP处理器;(4)、嵌入式片上系统。
外围设备根据功能一般分为:
存储设备、通信设备、I/O设备。
第二章
1、简述ARM处理器种类及特点。
答:
特点:
1)体积小,低功耗,低成本,高性能;2)支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;3)大量使用寄存器,指令执行速度更快;4)大多数数据操作都在寄存器中完成;5)寻址方式灵活简单,执行效率高;6)指令长度固定。
种类:
ARM7系列,ARM9系列,ARM9E系列,ARM10E系列,SecurCore系列,Inter的Xscale,Inter的StrongARM。
2、简述ARM处理器的工作状态。
答:
第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;
第二种为Thumb状态,此时处理器执行16位,半字对齐的Thumb指令。
3、什么是大端模式?
什么是小端模式?
答:
大端模式是指字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中;
小端模式是指字数据的高字节存储在高地址中,而字数据的低字节则存放在低地址中;
4、简述ARM微处理器的七种运行模式。
答:
1)用户模式(usr);2)快速中断模式(fip);3)外部中断模式(irp);4)管理模式(svc);5)数据访问终止模式(abt);6)系统模式(sys);7)未定义指令中止模式(und)。
5、简述ARM寄存器组织的特点。
答:
1)未分组寄存器R0-R7,即指向同一物理寄存器,未被系统用作特殊的用途;2)分组寄存器R8-R14,即每一次所访问的物理寄存器与处理器当前的运行模式有关;3)程序计数器PC(R15),即用作程序计数器(PC)。
4)R16:
用作CPSR(当前程序状态寄存器),它在任何运行模式下被访问。
每一种运行模式下又有一个专业的物理状态寄存器(SPSR),当发生异常时,SPSR用于保存CPSR的当前值,从异常退出时则可由SPSR来恢复CPSR。
6、简述ARM指令寻址方式。
答:
(1)、立即寻址:
操作数本身就在指令中给出,只要取出指令也就取到了操作数;
(2)、寄存器寻址:
就是利用寄存器中的数值作为操作数。
(3)、寄存器间接寻址:
是以寄存器中的值作为操作数的地址,而操作数本身放在存储器中。
(4)、基址变址寻址:
是将寄存器的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址。
(5)、多存储器寻址:
一条指令可由完成多个寄存器值的传送。
(6)、相对寻址:
一程序计数器当前值为基地址,指令中的地址标号作为偏移量,将两者相加之后得到操作数的有效地址。
(7)、堆栈寻址:
堆栈是一种数据结构,按先进后出的方式工作,使用一个称作堆栈指针的专用寄存器指示当前的操作地址,堆栈指针总是指向栈顶。
7、简述S3C44B0X的体系结构。
答:
(1)、集成了手持设备和通用嵌入式系统应用的解决方案;
(2)、16/32为RISC体系结构和ARM7TDMI处理器内核强大的指令体系;(3)、Thumb代码压缩机;(4)、基于JTAG的片上集成ICE调试方式支持解决方案;(5)、32*8位硬件乘法器;(6)、实现低共耗SAMBAII的新型总线结构。
8、简述S3C44B0X存储器管理的特点。
答:
(1)、支持数据存储的大,小端选择,有大端模式和小端模式;
(2)、地址空间具有8个存储器,每个存储器可达32MB,总共可达到256MB;(3)、对所有存储体的访问大小均可以进行改变,总线宽度可编程;(4)、8个存储器中,Bank0~Bank5可支持ROM,SRAM;Bank6,Bank7可支持ROM,SRAM和FP/EDO/SDRAM等,Bank6和Bank7存储容量大小相同;(5)、7个存储器的起始地址固定,1个存储器的起始地址可变。
9、S3C44B0X中功耗管理的5种模式?
答;1)正常模式;2)慢速模式;3)空闲模式;4)停止模式;5)LCD的SL空闲模式。
10、S3C44B0X具有多少个通用I/O口,它们都具有哪些功能?
答:
具有71个多功能输入/输出脚。
2个9位输入/输出端口(端口E和F);2个8位输入/输出端口(端口D和G);
1个16位输入/输出端口(端口G);
1个10位输出端口(端口A);1个11位输出端口(端口B)。
11、S3C44B0X中具有哪几个定时器,分别具有哪些功能特性?
答:
具有6个16位定时器,每个定时器可以按照中断模式或DMA模式工作。
定时器0,1,2,3和4具有PWM功能。
定时器5是一个内部定时器不具有对外输出口线。
定时器0具有死区发生器,通常用于大电流设备应用。
S3C44B0X的看门狗定时器用来在由于错误,恢复正常操作它也能使用一个正常的16位定时器来请求中断服务。
看门狗定时器产生服务信号。
具体特性如下:
1)6个16位定时器可以工作在中断模式或DMA模式;2)3个8位预分频器和2个5位分割器和1个4位分割器;3)输出波形的占空比可编程控制(PWM);4)自动加载模式或单触发脉冲模式;5)死区产生器;6)支持外部中断源;7)看门狗定时器溢出产生复位信号。
12、S3C44B0X的A/D转换器的类型是什么?
共具有几路A/D转换器?
答:
具有8路模拟信号输入的10位模/数转换器(ADC),它是一个逐次逼近型的ADC,内部结构中包括模拟输入多路复用器,自动调零比较器,时钟产生器,10位逐次逼近寄存器(SAR),输出寄存器。
第三章
1、设计电路板的最基本过程有哪些步骤。
p52
答:
(1)电路原理图的设计;
(2)产生网络表;(3)印制电路板的设计。
2、硬件系统调试的基本方法。
p77
答:
电源、晶振及复位电路,S3C44B0X及JTAG接口电路,SDRAM接口电路的调试,Flash接口电路的调试。
第四章
1、什么是交叉编译p81
答:
是指在某个主机平台上(比如PC上)用交叉编译器编译出可在其他平台上(比如ARM)运行的代码的过程。
2、ARM常用编译器有哪些?
p82
答:
1)、ARMSDT;2)、ARMDeveloperSuite;3)、ARMREALVIEWDEVELOPERSUITE;4)、IAREWARM;5)、KEILARM-MDKARM;6)、WINARM(GCCARM);7)、armgcc。
3、什么是JTAG?
p84
答:
JTAG是JOINTTESTACTIONGROUP的简称。
IEEE1149.1标准就是由JTAG这个组织最初提出的,最终由IEEE批准并且标准化。
所以,这个IEEE1149.1标准一般也俗称JTAG调试标准。
4、目前常见的调试方式有哪几种?
答:
目前常见的调试方法有:
1)、指令集模拟器;2)、驻留监控软件;
3)、JTAG仿真器;4)、在线仿真器。
目前常用的调试工具有:
1)、H-JTAG调试代理;2)、BanyanDaemon;3)、J-LINK;4)、U-LINK。
5、arm-linux-gcc和arm-elf-gcc有什么不同?
答:
arm-linux-*和arm-elf-*的使用没有一个绝对的标准,排除不同库实现的差异,gcc可以编译任何系统。
arm-linux-*和arm-elf-*都可以用来编译裸机程序和操作系统,只是在遵循下面的描述时系统程序显得更加协调:
arm-linux-*针对运行linux的ARM机器,依赖于指定的C语言库Glibc。
因为linux同样使用Glibc,使得arm-linux-*在运行linux的ARM机器上编译显得更加和谐。
arm-elf-*则是一个独立的编译体系,不依赖于指定的C语言库Glibc,可以使用newlib等其他C语言库,不要求操作系统支持,当其使用为嵌入式系统而设计的一些轻巧的C语言库时编译裸机程序(没有linux等大型操作系统的程序),如监控程序,bootloader等能使得系统程序更加小巧快捷。
第五章
1、串口实验p138;2、键盘与中断p172;3、LED实验p75;4、LCD实验p154。
能读懂以上4个实验的所有代码,能详细解释关键代码!
注:
跑马灯试验p127
第六章
1、嵌入式uC/OS的特点和应用。
p187
答:
特点:
公开源代码、可移植性、可固化、可裁剪、占先式、多任务、可确定性、任务栈、系统服务、中断管理、稳定性与可靠性。
应用:
μC/OS-II是一个结构简单、功能完备和实时性很强的嵌入式操作系统内核,适合于广大的嵌入式系统开发人员和爱好者入门学习,以及高校教学和科研。
μC/OSII很适合开发那些对系统要求不是很苛刻,且RAM和ROM有限的各种小型嵌入式系统设备。
(网上找的)
2、可重入函数的特点。
答:
可重入的代码指的是一段可以被多个任务同时调用,而不必担心会破坏数据的代码(比如:
一个函数)。
可重入型函数在任何时候都可以被中断执行,过一段时间以后又可以继续运行,而不会因为在函数中断的时候被其他的任务重新调用,而影响函数中的数据
为保证函数具有可重入性,关键在于:
使用本地数据;不返回指向静态数据的指针,所有数据都有函数的调用者提供;不为连续的调用持有静态数据;通过制作全局数据的本地拷贝来保护全局数据;不调用任何不可重入函数。
3、uC/OS移植的基本条件。
p193
答:
(1)、处理器的C编译器能产生可重入代码;
(2)、在程序中可以打开或者关闭中断;(3)、处理器支持中断,并且能产生定时中断(通常在10—100Hz之间);(4)、处理器支持能够容纳一定量数据的硬件堆栈(通常是几千字节);(5)、处理器有将堆栈指针和其他CPU寄存器的内容存储和读出到堆栈(或者内存)的指令。
第七章
1、嵌入式uClinux的特点和应用领域。
p220
答:
嵌入式uClinux操作系统主要有三个基本部分组成:
引导程序、uClinux内核(由内存管理、进程管理和中断处理等构成)和文件系统。
μClinux最大特点在于针对无MMU处理器设计,不能使用处理器的虚拟内存管理技术,只能采用实存储器管理策略。
可以利用功能强大的Linux资源,因此适合开发对事件要求不高的小容量、低成本的各类产品,特别适用于开发与网络应用密切相关的嵌入式设备或者PDA设备。
(网上找的)
2、BootLoader的主要功能。
p134
答:
BootLoader是在操作系统内核运行之前运行的第一段小程序。
主要功能有:
(1)、初始化硬件设备;
(2)、建立内存空间的映射图——将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境;(3)、加载操作系统内核映象到RAM中,并将系统的控制权传递给它。
补充:
(这几个大家也看看,有异议的自己重新确认答案)
1、S3C44B0X内部有(8KB)CACHE;(30)个中断源;(6)个16位定时器,其中(定时器5)是一个内部定时器不具有对外输出口线,通常作为UCLINUX的内部定时器;
2、关键字volatile的含义:
说明变量在程序执行中可被隐含地改变;
3、ARM存储器最大最小端口模式的区别:
定义了不同长度的数据类型的对齐方式;
4、µCLINUX中的µ代表“微小”,C代表“控制器”;
5、端口I/O与内存映射I/O的区别:
I/O内存就是外设卡上的存储空间,与内存统一编址,使用相同的指令访问,I/O端口是外设卡上的一些寄存器,必须通过特定的指令来访问(网上找的)
二、画
软件工程考试复习题
一、画出实际的瀑布模型p16二、画出快速原型模型p17
三、画出增量模型p18四、画出简化的螺旋模型p20
五、可行性研究的工作过程及内容p36
答:
1).复查系统规模和目标;
2).研究目前正在使用的系统;
3).导出新系统的高层逻辑模型;
4).进一步定义问题;
5).导出和评价供选择的解法;
6).推荐行动方针;7).草拟开发计划;8.书写文档提交审查。
六、可行性研究的目的是什么?
要如何进行?
p35
答:
目的:
用最小的代价在尽可能短的时间内确定问题是否能够解决。
首先,需要进一步分析和澄清问题定义。
之后,分析员应该导出系统的逻辑模型。
从系统逻辑模型出发,探索若干可供选择的主要解决方法(即系统实现方案)。
对每种解法都应该仔细研究它的可行性,一般来说,至少应该从下述三方面研究每种解法的可行性:
(1)技术可行性;
(2)经济可行性;(3)操作可行性。
必要时还应该从法律、社会效益等更广泛的方面研究每种解法的可行性。
七、需求分析的任务是什么?
进行需求分析时要重点考虑哪些方面的问题?
p56
答:
1、确定对系统的综合要求:
1).功能需求——指定系统必须提供的服务。
通过需求分析应该划分出系统必须完成的所有功能。
2).性能需求——性能需求指定系统必须满足的定时约束或容量约束,如速度(响应时间)、信息量速率、主存容量、磁盘容量、安全性等。
3).可靠性和可用性需求——可靠性是指确保各应用及其相关的所有交易的完整性和一致性的能力;可用性是指一个系统应确保一项服务或者资源永远都可以被访问到。
4).出错处理需求——说明系统对环境错误应该怎样响应。
5).接口需求——描述应用系统与它的环境通信格式。
6).约束——在设计或实现应用系统时应遵守的限制条件。
常见的约束有:
精度;工具和语言约束;设计约束;应该使用的标准;应该使用的硬件平台。
7).逆向需求——说明软件系统不应该做什么。
8).将来可能提出的要求——应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。
2、分析系统的数据要求。
3、导出系统的逻辑模型。
4、修正系统开发计划。
八、典型的总体设计过程包括哪些步骤?
p92
答:
典型的总体设计过程包括九个步骤:
1)、设想供选择的方案;2)、选取合理的方案;3)、推荐最佳方案;4)、功能分解;5)、设计软件结构;6)、设计数据库;7)、制定测试计划;8)、书写文档;9)审查和复查。
九、总体设计的主要任务是什么?
总体设计的主要过程有哪些?
p91
答:
主要任务:
总体设计又称为概要设计或初步设计。
通过这个阶段的工作将划分出组成系统的物理元素—程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。
总体设计的另一项重要的任务是设计软件的结构,也就是要确定系统中每个程序是由哪个模块组成,以及这些模块相互间的关系。
主要过程:
①寻找实现目标系统的各种不同的方案。
②从这些供选择的方案中选取若干个合理的方案,为每个合理的方案都准备一份系统流程图,列出组成系统的所有物理元素。
③进行成本/效益分析,并且制定实现这个方案的进度计划。
从中选出一个最佳方案。
④进一步为这个最佳方案设计软件结构。
⑤进行必要的数据库设计,确定测试要求并且制定测试计划。
十、何谓耦合?
有哪些类型?
软件设计应该取哪种类型?
p97
答:
耦合是对一个软件结构内不同模块之间互连程度的度量。
类型:
数据藕合、控制藕合、公共环境藕合、内容耦合
设计原则:
尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合。
十一、何谓内聚?
有哪些类型?
软件设计应该取哪种类型?
p98
答:
内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。
低内聚有如下几类:
偶然内聚、逻辑内聚、时间内聚。
中内聚主要有两类:
过程内聚、通信内聚。
高内聚也有两类:
顺序内聚、功能内聚。
设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多;但是,低内聚很坏,不要使用。
十二、何谓白盒测试和黑盒测试?
p151
答:
黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。
也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息的完整性。
黑盒测试又称为功能测试。
与黑盒测试法相反,白盒测试法的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。
这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。
白盒测试又称为结构测试。
十三、测试过程由哪些步骤组成?
并分别加以说明。
P151
答:
1.模块测试——保证每个模块作为一个单元能正确运行,所以模块测试通常又称为单元测试。
在这个测试步骤中所发现的往往是编码和详细设计的错误。
2.子系统测试——把经过单元测试的模块放在一起形成一个子系统来测试。
这个步骤着重测试模块的接口。
3.系统测试——把经过测试的子系统装配成一个完整的系统来测试。
4.验收测试——把软件系统作为单一的实体进行测试,目的是验证系统确实能够满足用户的需要,在这个测试步骤中发现的往往是系统需求说明书中的错误。
验收测试也称为确认测试。
5.平行运行——同时运行新开发出来的系统和将被它取代的旧系统,以便比较新旧两个系统的处理结果。
十四、自顶向下集成步骤p158
答:
四个步骤:
1)、对主控制模块进行测试,测试时用存根程序代替所有直接附属于主控制模块的模块;2)、根据选定的结合策略(深度优先或宽度优先),每次用一个实际模块代换一个存根程序(新结合进来的模块往往又需要新的存根程序);3)、在结合进一个模块的同时进行测试;4)、为了保证加入模块没有引进新的错误,可能需要进行回归测试(即,全部或部分地重复以前做过的测试)。
十五、自底向上的结合策略p158
答:
自底向上的结合策略:
1、把低层模块组合成实现某个特定的软件子功能的簇;2、写一个驱动程序(用于测试的控制程序),协调测试数据的输入和输出;3、对由模块组成的子功能簇进行测试;4、去掉驱动程序,沿软件结构自下向上移动,把子功能簇组合起来形成更大的子功能簇。
上述第2步到第4步实质上构成了一个循环。
十六、何谓Alpha和Beta测试?
p161
答:
Alpha测试由用户在开发者的场所进行,并且在开发者对用户的“指导”下进行测试。
开发者负责记录错误和使用中遇到的问题。
总之,Alpha测试是在受控的环境中进行的。
Beta测试由软件的最终用户们在一个或多个客户场所进行。
与Alpha测试不同,开发者通常不在Beta测试的现场。
十七、设计黑盒测试方案时,主要应该考虑哪些方面的问题?
p172
答:
1)、怎样考虑功能的有效性?
2)、哪些类型的输入可构成好的测试用例?
3)、系统是否对特定的输入值特别敏感?
4)、怎样划定数据类的边界?
5)、系统能够承受什么样的数据率和数据量?
6)、数据的特定组合将对系统运行产生什么影响?
十八、调试途径有哪些?
p178
答:
有三种调试途径:
1)、蛮干法——是寻找软件错误原因的最低效的方法。
仅当所有其他方法都失败了的情况下,才应该使用这种方法。
2)、回溯法——一种相当常用的调试方法,当调试小程序时这种方法是有效的。
3)、原因排除法——包括分查找法、归纳法和演绎法。
十九、软件维护主要包括哪些方面?
p189
答:
包括:
维护组织、维护报告、维护的事件流、保存维护记录、评价维护活动。
1)、改正性维护:
诊断和改正错误的过程。
2)、适应性维护:
为了和变化了的环境适当地配合而进行的修改软件的活动。
3)、完善性维护:
在使用软件的过程中用户往往提出增加新功能或修改已有功能的建议,还可能提出一般性的改进意见。
4)、预防性维护:
为了改进未来的可维护性或可靠性,或为了给未来的改进奠定更好的基础而修改软件。
二十、现要设计一个教学管理系统,系统中有三个主要对象:
老师,学生,课程。
请画出其ER图。
P64
解:
二十一、假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。
对于每个需要再次定货的零件应该列出下述数据;零件编号、零件名称、定货数量、目前价格、主要供应者和次要供应者。
零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。
当某种零件的库存数量少于库存量临界值时就应该再次定货。
请画出该系统的数据流图。
P42
解:
1)、这种划分自动化边界的方法暗示以批量方式更新库存清单:
2)、另一种划分自动化边界的方法建议以联机方式更新库存清单:
二十二、假设某航空公司规定,乘客可以免费托运重量不超过30kg的行李。
当行李重量超过30kg时,对头等舱的国内乘客超重部分每公斤收费4元,