嵌入式系统设计习题与解答.docx
《嵌入式系统设计习题与解答.docx》由会员分享,可在线阅读,更多相关《嵌入式系统设计习题与解答.docx(54页珍藏版)》请在冰豆网上搜索。
嵌入式系统设计习题与解答
嵌入式系统设计大学教程习题与解答
第1章嵌入式系统设计基本概念(绪论)
1、嵌入式系统的定义是什么?
你是如何理解嵌入式系统的?
(P3)
答:
嵌入式系统一般定义为以应用为中心、以计算机技术为基础,软硬件可裁剪,应用系统对功能、可靠性、成本、体积、功耗和应用环境有特殊要求的专用计算机系统。
一个嵌入式系统就是一个硬件和软件的集合体,它包括硬件和软件两部分。
其中硬件包括嵌入式处理器/控制器/数字信号处理器(DSP)、存储器及外设器件、输入输出(I/O)端口、图形控制器等;软件部分包括操作系统软件(嵌入式操作系统)和应用程序(应用软件),由于应用领域不同,应用程序千差万别。
2、列出并说明嵌入式系统不同于其他计算机系统的主要特征。
(P3~P4)
答:
主要特征有:
∙系统内核小:
由于嵌入式系统一般是应用于小型电子装置,系统资源相对有限,所以内核较传统的操作系统要小得多。
∙专用性强:
嵌入式系统通常是面向特定任务的,个性化很强,其中软件系统和硬件的结合非常紧密,一般要针对硬件进行软件系统的移植。
∙运行环境差异大:
嵌入式系统使用范围极为广泛,其运行环境差异很大。
∙可靠性要求高:
嵌入式系统往往要长期在无人值守的环境下运行,甚至是常年运行,因此对可靠性的要求特别高。
∙系统精简和高实时性操作系统:
∙具有固化在非易失性存储器中的代码:
为了系统的初始化,几乎所有系统都要在非易失性存储器中存放部分代码(启动代码)。
为了提高执行速度和系统可靠性,大多数嵌入式系统常常把所有代码(或者其压缩代码)固化,存放在存储器芯片或处理器的内部存储器件中,而不使用外部存储介质。
∙嵌入式系统开发工作和环境:
嵌入式系统开发需要专门的开发工具和环境。
3、简述嵌入式系统的体系结构。
(P5)
答:
嵌入式系统自底向上包含四个部分:
硬件平台、嵌入式实时操作系统(RTOS)、硬件抽象层(HAL)和嵌入式实时应用程序。
硬件抽象层位于操作系统和硬件之间,包含了系统中与硬件相关的大部分功能。
屏蔽了底层硬件的多样性,操作系统不再直接面对具体的硬件环境,而是面向由这个中间层次所代表的、逻辑上的硬件环境。
4、嵌入式系统是怎样分类的?
(P8)
答:
根据不同的分类标准,嵌入式系统有不同的分类方法。
按嵌入式微处理器的位数分类:
嵌入式系统可分为4位、8位、16位、32位和64位等;按软件实时性需求分类:
可分为非实时系统(如PDA)、软实时系统(如消费类产品)和硬实时系统(如工业实时控制系统)。
按嵌入式系统的复杂程度分类:
嵌入式系统可分为小型嵌入式系统、中型嵌入式系统和复杂嵌入式系统。
5、什么是实时操作系统,其主要功能是什么?
(P8)
答:
实时多任务操作系统(RealTimemulti-taskingOperationSystem,RTOS)简称实时操作系统,主要用来完成嵌入式实时应用的任务调度和控制等核心功能。
这些功能是通过内核服务函数形式交给用户调用的,也就是RTOS的系统调用,或者叫做RTOS的API。
6、在日常生活中,你接触过哪些嵌入式产品?
他们都有些什么功能?
(P9~P10)
答:
[略]
第2章嵌入式系统设计基本概念
1、嵌入式系统的硬件由哪几个部分组成?
(P12~13)
答:
嵌入式系统的硬件系统是由嵌入式处理器、存储器、I/O接口电路、通信模块以及其他外部设备组成的。
其核心是嵌入式处理器。
存储器是构成嵌入式系统硬件的重要组成部分。
嵌入式处理器工作时,必须有附属电路支持,如时钟电路、复位电路、调试电路、监视定时器、中断控制电路等,这些电路并不完成数据的输入/输出功能,而是为嵌入式处理器的工作提供必要的条件。
嵌入式处理器与通用处理器的最大区别在于嵌入式处理器集成了大量的不同功能的I/O模块。
用户在开发嵌入式系统时,可以根据系统需求选择合适的嵌入式处理器,而无需再另外配备I/O电路。
此外,嵌入式系统通常还包括人机交互界面,用于系统与用户的交互。
人机界面常常使用键盘、液晶屏、触摸屏等部件,以方便与用户的交互操作。
2、通用处理器与嵌入式处理器有哪些相同和不同的地方?
(P13)
答:
嵌入式微处理器一般具备四个特点:
∙对实时和多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时操作系统的执行时间减少到最低限度;
∙具有功能很强的存储区保护功能,这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断;
∙可扩展的处理器结构,以能迅速地扩展出满足应用的高性能的嵌入式微处理器;
∙嵌入式处理器的功耗必须很低,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入式系统更是如此,功耗只能为mW甚至μW级。
嵌入式处理器与通用处理器的最大区别在于嵌入式处理器集成了大量的不同功能的I/O模块。
用户在开发嵌入式系统时,可以根据系统需求选择合适的嵌入式处理器,而无需再另外配备I/O电路。
3、常用的嵌入式处理器通常分成哪几大类?
(P13)
答:
嵌入式系统中的处理器通常分为三大类,即微处理器(Micro-ProcessorUnit,MPU)、微控制器(Micro-ControllerUnit,MCU)和数字信号处理器(DSP)。
微处理器是指功能较强大的CPU,它不是为任何特定的计算目标而设计的。
因此这种芯片通常用于个人计算机与服务器。
微控制器是针对嵌入式系统而设计的,它将CPU、存储器以及其他外设都集成在同一片电路板上。
数字信号处理器(DSP)中的CPU是针对快速离散时间信号处理计算的。
因此,DSP非常适用于音频及视频通信。
现代的芯片生产工艺已经允许将重要处理器的内核和各种外围的芯片器件整合在一起,以进一步降低功耗,达到专用的需求,这时,便出现了片上系统SoC(SystemOnChip)。
4、什么是嵌入式外围设备?
简要说明嵌入式外围设备是如何分类的。
(P22~23)
答:
5、嵌入式操作系统的发展经历了哪几个阶段?
(P28)
答:
嵌入式操作系统伴随着嵌入式系统的发展,大致经历了四个阶段:
第一阶段:
无操作系统的嵌入算法阶段,以单芯片为核心的可编程控制器形式的系统,具有与监测、伺服、指示设备相配合的功能。
第二阶段:
以嵌人式CPU为基础、简单操作系统为核心的嵌入式系统。
由于CPU种类繁多,因此通用性比较差;系统开销小,效率高;具有一定的兼容性和扩展性;系统主要用来控制系统负载以及监控应用程序运行。
第三阶段:
通用的嵌入式实时操作系统阶段。
以嵌入式操作系统为核心的嵌入式系统,能运行于各种类型的微处理器上,兼容性好;内核精小、效率高,具有高度的模块化和扩展性;具备文件和目录管理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能;具有大量的应用程序接口(APl);嵌入式应用软件丰富。
第四阶段:
以基于Internet为标志的嵌入式系统。
这是一个正在迅速发展的阶段。
嵌入式设备与Internet的结合将代表着嵌入式技术的真正未来。
6、现阶段常用的操作系统有哪些?
通过调研,指出几种常用的嵌入式操作系统的特点是什么?
常用在什么场合?
(P28~29)
答:
常用的嵌入式RTOS分三大类:
商用系统、专用系统和开放系统。
商品化的嵌入式实时操作系统,主要有WindRiver的Vxworks和pSOS+,3Com的PalmOS以及Microsoft的WindowsCE等。
专用操作系统功能相对较弱,但针对性强,其安全可靠性大都超过普通商用系统,如应用于手机的嵌入式操作系统SymbianOS。
开放系统的典型代表是嵌入式Linux和C/OS-Ⅱ。
7、嵌入式操作系统的主要任务有哪些?
(P28)
答:
嵌入式操作系统通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。
嵌入式操作系统具有通用操作系统的基本特点,如能够有效管理越来越复杂的系统资源;能够把硬件虚拟化,使得开发人员从繁忙的驱动程序移植和维护中解脱出来;能够提供库函数、驱动程序、工具集以及应用程序。
8、嵌入式系统的基本设计过程包括哪几个阶段?
每一个阶段的主要工作有哪些?
(P33)
答:
以自顶向下的角度来看,系统设计包括五个阶段,从系统需求分析开始;第二步是规格说明,在这一步,我们对需设计的系统功能进行更细致地描述,这些描述并不涉及系统的组成;第三步是系统结构设计,在这一阶段以大的构件为单位设计系统内部详细构造,明确软、硬件功能的划分;第四步是构件设计,它包括系统程序模块设计、专用硬件芯片选择及硬件电路设计;第五步是系统集成,在完成了所有构件设计的基础上进行系统集成,构造出所需的完整系统。
9、需求分析阶段细分为哪几个步骤?
每个步骤完成什么工作?
(P34~35)
答:
需求分析阶段可细分为四个阶段:
1、需求与规格说明:
通过与客户进行交流,了解用户的意图,明确客户需求,整理成正式的规格说明,这些规格说明里包含了进行系统体系结构设计所需要的足够信息。
2、确认需求:
确认这一系列的需求不仅需要理解什么是用户需要的,而且需要理解他们是如何表达这些需求的。
3、简单的需求表格:
将复杂而费时的工作用相对少量的格式清晰、简单的需求表格来表示,在考虑系统基本特征时可以将这个表格作为检查表。
4、需求的内部一致性:
在写完需求分析以后,应该对它们的内部一致性进行检查。
10、试通过各种渠道调查目前市场上主要有哪些嵌入式系统开发平台,它们各自有什么特点。
答:
[略]
第3章ARM体系结构及基于ARM9处理器的嵌入式系统硬件平台OMAP5912
1、试比较RISC和CISC体系结构的异同,为什么ARM内核要采用RISC体系结构?
(P47)
答:
ARM体系结构总的设计思路是在不牺牲性能的同时尽可能简化处理器。
同时从体系结构的层面上支持灵活的处理器扩展。
这种简化和开放的思路使ARM处理器采用了很简单的结构——精简指令集计算机(ReducedInstructionSetComputer,RISC)体系结构来进行实现。
传统的复杂指令集计算机(ComplexInstructionSetComputer,CISC)结构有其固有的缺点,即随着计算机技术的发展而不断引入新的复杂的指令集,为支持这些新增的指令,计算机的体系结构会越来越复杂,然而,在CISC指令集的各种指令中,其使用频率却相差悬殊,大约有20%的指令会被反复使用,占整个程序代码的80%。
而余下的80%的指令却不经常使用,在程序设计中只占20%,显然,这种结构是不太合理的。
基于以上的不合理性,1979年美国加州大学伯克利分校提出了RISC的概念。
RISC并非只是简单地去减少指令。
RISC是一种设计思想,其目标是设计出一套能在高时钟频率下单周期执行、简单而有效的指令集。
RISC的设计重点在于降低由硬件执行的指令的复杂度,因为软件比硬件容易提供更大的灵活性和更高的智能。
因此,RICS设计对编译器有更高的要求;相反,传统的CISC则更侧重于硬件执行指令的功能性,使CISC指令变得更复杂。
2、简述ARM的设计思想及其与单纯的RISC定义的不同。
(P48~49)
答:
ARM内核并不是一个纯粹的RISC体系结构,这是为了使它能够更好地适应其主要应用领域——嵌入式系统。
为了使ARM指令集能够更好地满足嵌入式应用的需要,ARM指令集和单纯的RISC定义有以下几个方面的不同:
∙一些特定的指令周期数可变——并不是所有的ARM指令都是单周期的。
例如:
多寄存器装载/存储的Load/Store指令的执行周期就是不确定的,必须根据被传送的寄存器个数来定。
如果是访问连续的存储器地址,就可以改善性能,因为连续的内存访问通常比随机访问要快;同时,代码密度也得到了提高,因为在函数的起始和结尾,多个寄存器的传输是很常用的操作。
∙内嵌桶形移位器产生了更为复杂的指令——内嵌桶形移位器是一个硬件部件,在一个输入寄存器被一条指令使用之前,内嵌桶形移位器可以处理该寄存器中的数据。
它扩展了许多指令的功能,以此改善了内核性能,提高了代码密度。
∙Thumb16位指令集——ARM内核增加了一套称之为Thumb指令的16位指令集,使得内核既能够执行16位指令,也能够执行32位指令,从而增强了ARM内核的功能。
16位指令与32位的定长指令相比较,代码密度可以提高约30%。
∙条件执行——只有当某个特定条件满足时指令才会被执行。
这个特性可以减少分支指令的数目,从而改善性能,提高代码密度。
3、ARM体系结构发展过程中,主要有哪些变种,对各变种做简要介绍。
(P49~50)
答:
我们将在ARM体系中增加的某些特定功能称为ARM体系的某种变种(variant),下面介绍ARM体系的一些变种形式。
(1)Thumb指令集(T变种)
Thumb指令集是将ARM指令集的一个子集重新编码而形成的一个指令集。
ARM指令长度为32位,Thumb指令长度为16位。
这样,使用Thumb指令集可以得到密度更高的代码,这对于需要严格控制产品成本的设计非常有意义。
(2)长乘法指令(M变种)
M变种增加了两条用于进行长乘法操作的ARM指令:
其中一条指令用于实现32位整数乘以32位整数,生成64位整数的长乘法操作,另一条指令用于实现32位整数乘以32位整数,然后再加上32位整数,生成64位整数的长乘加操作。
(3)增强型DSP指令(E变种)
E变种包含了一些附加的指令,这些指令用于增强处理器对一些典型DSP算法的处理性能,主要包括:
几条新的实现16位数据乘法和乘加操作的指令,实现饱和的带符号数的加减法操作的指令。
(4)Java加速器Jazelle(J变种)
ARM的Jazelle技术将Java的优势和先进的32位RISC芯片完美地结合在一起。
Jazelle技术提供了Java加速功能,可以得到比普通Java虚拟机高得多的性能。
与普通的Java虚拟机相比,Jazelle使Java代码运行速度提高了3倍,而功耗降低了80%。
Jazelle技术使得程序员可以在一个单独的处理器上同时运行Java应用程序、已经建立好的操作系统、中间件以及其他应用程序。
与使用协处理器和双处理器相比,使用单独的处理器可以在提供高性能的同时,保证低功耗和低成本。
(5)ARM媒体功能扩展(SIMD变种)
SIMD变种的主要特点是:
可以同时进行两个16位操作数或者4个8位操作数的运算,提供了小数算术运算,用户可以定义饱和运算的模式,两套16位操作数的乘加/乘减运算,32位乘以32位的小数MAC,同时8位/16位选择操作。
4、ARM体系结构版本的命名规则有哪些?
简单说明ARM7TDMI的含义。
(P50)
答:
ARM产品通常以ARM[x][y][z][T][D][M][I][E][J][F][-S]形式出现。
ARM体系结构的命令规则中这些后缀的具体含义见表3-2。
ARM7TDMI的含义即ARM7内核,增加了Thumb指令集(T变种)、JTAG调试器、长乘法指令(M变种)和嵌入式跟踪宏单元的功能。
5、列举目前常用的ARM微处理器的型号及功能特点。
(P51~53)
答:
ARM微处理器目前包括下面几个系列,以及其它厂商基于ARM体系结构的处理器,除了具有ARM体系结构的共同特点以外,每一个系列的ARM微处理器都有各自的特点和应用领域。
∙ARM7系列
∙ARM9系列
∙ARM9E系列
∙ARM10E系列
∙ARM11系列
∙SecurCore系列
∙Inter的Xscale
∙Inter的StrongARM
其中,ARM7、ARM9、ARM9E和ARM10E为4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。
SecurCore系列专门为安全要求较高的应用而设计。
6、比较ARM9与ARM7处理器的性能特点,试说明它们有何异同。
(P55~56)
答:
ARM7提供了非常好的性能-功耗比,它包含了Thumb指令集快速乘法指令和ICE调试技术的内核。
ARM9处理器通过全新的设计,采用了更多的晶体管,能够达到两倍以上于ARM7处理器的处理能力。
ARM7内核是0.9MIPS/MHz的三级流水线和冯·诺伊曼结构,而ARM9内核是5级流水线,提供1.1MIPS/MHz的哈佛结构。
从ARM7到ARM9的性能提升还来源于存储器读写指令——load和store,以及互锁技术的应用。
7、简单介绍OMAP5912微处理器的特点和功能。
(P59~60)
答:
OMAP5912处理器是OMAP1510系列的一个分支,是由TI应用最为广泛的TMS320C55XDSP内核与低功耗、高性能的ARM926EJ-S微处理器组成的双核应用处理器,这两个内核通过一种专用的处理器内部通信机制相连接。
OMAP5912的结构如图3-10所示。
C55x系列可提供对低功耗应用的实时多媒体处理的支持;ARM926可满足控制和接口方面的处理需要。
基于双核结构,OMAP5912具有极强的运算能力和极低的功耗,一方面,产品性能高、省电;另一方面,同其它OMAP处理器一样,采用开放式、易于开发的软件设施,支持广泛的操作系统,如Linux、Windows、WinCE、Nucleus、PalmOS、VxWorks等。
可以通过API及用户熟悉且易于使用的工具优化其应用程序。
OMAP5912处理器的目标应用是:
∙需要密集信号处理的设备
∙通讯终端
∙WLAN802.11X
∙BlueTooth
∙GSM,GPRS,EDGE
∙CDMA
∙视频和图像处理(MPEG4,JPEG,WindowsMediaVideo,etc.)
∙高级语言处理应用(text-to-speech,speechrecognition)
∙音频处理(MPEG-1AudioLayer3[MP3],AMR,WMA,AAC,及其它GSMSpeechCodecs)
∙图形和视频加速
∙数据处理
8、常用的OMAP5912开发工具有哪些?
(P60~61)
答:
常用的OMAP5912开发工具有:
(1)OMAP5912StarterKit(OSK)
Omap5912基本板,提供了完成设计与测试过程所需的所有软件,这包括一系列主板专用库、芯片专用库以及一套针对OMAP5912Linux内核的Linux开发工具。
(2)MU-Q-VGALCDModuleforOMAP5912
OSK的LCD扩充套件,提供了LCD触摸屏。
(3)AcceleratorProgramforOMAP5912
针对omap5912OSK的Linux和WinCE4.2BSP和驱动程序软件包,方便易用,支持很多设备和扩展模块,如LCD、USBClient&Host、键盘、触摸屏、以太网、串口等设备。
(4)RAPIDDEVELOPMENTKIT(RDK)
omap5912OSK无线模块扩充套件。
(5)PortableDataTerminalReferenceDesign
基于omap5912的便携式数据终端(PDT)参考设计,一个完整的多媒体智能手机设计案例。
相关应用包括导航、游戏、学习辅助、通话、娱乐等等。
……
第4章ARM微处理器的编程模型与指令系统
1、ARM微处理器有哪几种运行模式?
其中哪些是特权模式,哪些又是异常模式?
(P64)
答:
ARM微处理器支持7种运行模式,分别为:
用户模式;快速中断模式;外部中断模式;管理模式;数据访问终止模式;系统模式;未定义指令中止模式。
除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式(PrivilegedModes);而除去用户模式和系统模式以外的5种又称为异常模式(ExceptionModes),常用于处理中断或异常。
2、ARM体系结构的存储器格式有哪几种?
(P64~65)
答:
ARM体系结构可以用两种方法存储字数据,称之为大端格式(big-endian)和小端格式(little-endian)。
大端格式:
字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中;小端格式:
低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。
3、ARM状态下和Thumb状态下寄存器的组织有何不同?
(P69~70)
答:
Thumb状态下的寄存器集是ARM状态下寄存器集的一个子集,程序可以直接访问8个通用寄存器(R7~R0)、程序计数器(PC)、堆栈指针(SP)、连接寄存器(LR)和CPSR。
同时,在每一种特权模式下都有一组SP、LR和SPSR。
在Thumb状态下,高位寄存器R8~R15并不是标准寄存器集的一部分,但可使用汇编语言程序受限制的访问这些寄存器,将其用作快速的暂存器。
4、简述CPSR各状态位的作用,并说明如何对其进行操作,以改变各状态位。
(P67~68)
答:
CPSR可在任何运行模式下被访问,它包含条件码标志位、中断禁止位、当前处理器模式标志位,以及其他一些相关的控制和状态位。
条件码标志位:
∙N(Negative)当用两个补码表示的带符号数进行运算时,N=1表示运算的结果为负数;N=0表示运算的结果为正数或零;
∙Z(Zero)Z=1表示运算的结果为零;Z=0表示运算的结果为非零;
∙C(Carry)可以有4种方法设置C的值:
①加法运算(包括比较指令CMN):
当运算结果产生了进位时(无符号数溢出),C=1,否则C=0。
②减法运算(包括比较指令CMP):
当运算时产生了借位(无符号数溢出),C=0,否则C=1。
③对于包含移位操作的非加/减运算指令,C为移出值的最后一位。
④对于其他的非加/减运算指令,C的值通常不改变。
∙V(OVerflow)可以有2种方法设置V的值:
①对于加/减法运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,V=1表示符号位溢出。
②对于其他的非加/减运算指令,V的值通常不改变。
CPSR的低8位(包括I、F、T和M[4:
0])称为控制位,当发生异常时这些位可以被改变。
如果处理器运行特权模式,这些位也可以由程序修改。
状态寄存器(PSR)中的其余位为保留位,当改变PSR中的条件码标志位或者控制位时,保留位不要被改变,在程序中也不要使用保留位来存储数据。
保留位将用于ARM版本的扩展。
5、ARM体系结构所支持的异常类型有哪些?
具体描述各类异常,在应用程序中应该如何处理?
(P70~71)
答:
ARM体系结构所支持的异常类型有复位、未定义指令、软件中断、指令预取中止、数据中止、外部中断请求、快速中断请求。
具体地:
∙当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行;
∙当ARM处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。
可使用该异常机制进行软件仿真;
∙软件中断异常由执行SWI指令产生,可用于用户模式下的程序调用特权操作指令。
可使用该异常机制实现系统功能调用;
∙若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出中止信号,但当预取的指令被执行时,才会产生指令预取中止异常;
∙若处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常;
∙当处理器的外部中断请求引脚有效,且CPSR中的I位为0时,产生IRQ异常。
系统的外设可通过该异常请求中断服务;
∙当处理器的快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常。
6、ARM指令有哪几种寻址方式?
试分别叙述其各自的特点并举例说明。
(P77)
答:
ARM指令系统支持的基本寻址方式有7种:
立即数寻址、寄存器寻址、寄存器间接寻址、基址变址寻址、多寄存器寻址、堆栈寻址、相对寻址。
他们的特点分别是:
∙立即数寻址:
操作数本身就在指令中给出。