(5)单片机系统受到干扰后,容易使程序计数器PC发生改变,则不能使程序纳入正轨的是。
D
A.软件陷阱B.Watchdog技术
C.指令冗余技术D.数字滤波技术
习题1
1.什么是嵌入式系统嵌入式系统的特点是什么
我国通常定义:
嵌入式系统(EmbeddedSystem)就是嵌入到目标体系中的专用计算机系统嵌入式系统是指以应用为中心,以计算机技术为基础,并且软硬件可裁减,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
嵌入性、专用性与计算机系统是嵌入式系统的3个基本要素
嵌入式系统的特点:
1.嵌入式系统是专用的计算机系统
2.嵌入式系统须满足系统应用环境的要求
3.嵌入式系统需满足对象系统的控制要求
4.嵌入式系统是一个知识集成应用系统
5.嵌入式系统具有较长的应用生命周期
6.嵌入式系统软件固化在非易失性存储器中
7.多数嵌入式系统具有实时性要求
8.嵌入式系统设计需专用的开发环境和工具
4.嵌入式系统有哪些组成部分各部分的功能和作用是什么
硬件层由嵌入式微处理器、存储系统、通信模块、人机接口、其他I/O接口(A/D、D/A、通用I/O等)以及电源等组成。
嵌入式系统的硬件层以嵌入式微处理器为核心,在嵌入式微处理器基础上增加电源电路、时钟电路和存储器电路(RAM,ROM等),这就构成了一个嵌入式核心控制模块,操作系统和应用程序都可以固化在ROM中
中间层程序主要为上层软件提供了设备的操作接口,它包括硬件抽象层(HardwareAbstractionLayer,HAL)、板级支持包(BoardSupportPackage,BSP)以及设备驱动程序
应用软件是在嵌入式操作系统支持下通过调用API函数,结合实际应用编制的用户软件
5.简述嵌入式处理器的分类及各自的主要特点。
写出EMPU、EMCU、EDSP、SOC和SOPC的全称,并解释其含义
嵌入式处理器的种类
嵌入式微处理器(EmbeddedMicrocomputerUnit,EMPU)、
嵌入式微控制器(EmbeddedMicrocontrollerUnit,EMCU)
嵌入式数字信号处理器(EmbeddedDigitalSignalProcessor,EDSP)
嵌入式片上系统(SystemOnChip,SOC)
嵌入式可编程片上系统(SystemOnaProgrammableChip,SOPC)。
嵌入式微处理器是由PC中的CPU演变而来的,与通用PC的微处理器不同的是,它只保留了与嵌入式应用紧密相关的功能硬件,ARM是应用最广、最具代表性的嵌入式微处理器。
嵌入式微控制器的典型代表是单片机,其内部集成了ROM/EPROM/Flash、RAM、总线、总线逻辑、定时器、看门狗、I/O接口等各种必要的功能部件。
嵌入式数字信号处理器(DSP)是专门用于数字信号处理的微处理器,在系统结构和指令算法方面经过特殊设计,因而具有很高的编译效率和指令执行速度
SOC是一个集成的复杂系统,它一般将一个完整的产品的各功能集成在一个芯片上或芯片组上SOC最大的特点是成功实现了软硬件无缝结合,直接在处理器的片内嵌入了操作系统,不仅减小了系统的体积和功耗,而且提高了系统的可靠性和设计生产效率。
可编程片上系统SOPC是一种基于FPGA的可重构SOC,它集成了硬IP核或软IP核CPU、DSP、存储器、外围I/O及可编程逻辑,是更加灵活、高效的SOC解决方案。
SOC与SOPC的区别:
SOC是专用集成系统,设计周期长,设计成本高,SOPC是基于FPGA的可重构SOC,是一种通用系统,设计周期短,设计成本低
7.简述典型的嵌入式微处理器和微控制器的系列及应用领域。
ARM处理器目前包括ARM7系列、ARM9系列、ARM9E系列、ARM10E系列、ARM11系列、SecurCore系列、OptimoDE系列、StrongARM系列、XScale系列以及Cortex-A8系列等。
ARM7、ARM9、ARM9E及ARM10E为4个通用嵌入式微处理器系列,每个系列提供一套相对独特的性能来满足不同应用领域的要求,有多个厂家生产;SecurCore系列则是专门为安全性要求较高的场合而设计的;StrongARM是Intel公司生产的用于便携式通信产品和消费电子产品的理想嵌入式微处理器,应用于多家掌上电脑系列产品;Xscale是Intel公司推出的基于ARMv5TE体系结构的全性能、高性价比、低功耗的嵌入式微处理器,应用于数字移动电话、个人数字助理和网络产品等场合。
Cortex-A8处理器是第一款基于下一代ARMv7架构的应用处理器,使用了能够带来更高性能、功耗效率和代码密度的Thumb®-2技术
8.简单分析几种嵌入式操作系统的主要特点,包括嵌入式Linux,WindowsCE,μC/OS-II及VxWorks。
1.Linux
Linux是一种自由和开放源码的类Unix操作系统,目前存在着许多不同的Linux,,但它们都使用了Linux内核。
Linux可安装在各种计算机硬件设备中,Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。
2.WindowsCE
MicrosoftWindowsCE是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。
它的模块化设计允许它对从掌上电脑到专用的工业控制器的用户电子设备进行定制。
该操作系统的基本内核至少需要200KB的ROM。
,其缺点是系统软件价格过高,影响整个产品的成本控制。
3.μC/OS-II
μC/OS-II是一个可裁剪、源代码开放、结构小巧、抢先式的实时嵌入式操作系统,主要用于中小型嵌入式系统,具有执行效率高、占用空间小、可移植性强、实时性能好和可扩展性强等优点。
4.VxWorks
VxWorks操作系统是一种实时操作系统。
VxWorks拥有良好的持续发展能力、高性能的内核以及友好的用户开发环境,它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高、精、尖技术及实时性要求极高的领域中,。
但大多数的VxWorksAPI是专用的,VxWorks的价格昂贵。
5.苹果iOS
iOS是由苹果公司为iPhone开发的操作系统。
它是以Darwin为基础的,主要是给iPhone、iPodtouch以及iPad使用。
Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。
Android操作系统最初由AndyRubin开发,最初主要支持手机。
9.嵌入式系统的应用模式有哪几种各有什么有缺点
1.非操作系统层次的应用
非操作系统层次的应用,主要是在一些结构简单的系统中或在实时性要求非常高的系统中,许多时候用于代替原来8位/16位单片机的应用。
随着32位单片机成本的不断降低,其成本已与8位单片机相差无几。
因此,非操作系统层次的应用也越来越广泛。
2.操作系统非GUI层次的应用
操作系统非GUI层次的应用,主要是指其应用程序建立在操作系统基础上,是为了实现程序的多任务及实时性,此类应用在人机交互方面没有很高的要求,可选择的操作系统有许多。
3.操作系统GUI层次的应用
操作系统GUI层次的应用,主要是为了方便实现人机交互功能、网络功能、数据库功能以及其它更复杂的应用。
GUI层次的开发,除了借助于操作系统及GUI库强大的功能,更重要的是可以让程序开发人员把关注点集中在高层的目标与任务的实现中,使嵌入式系统应用的开发更简单,让开发速度及开发效率更高
10.简述嵌入式系统的总体设计应考虑哪些因素。
1.嵌入式微处理器及操作系统的选择
嵌入式微处理器可谓多种多样,品种繁多,而且都在一定领域应用广泛
2.开发工具的选择
目前用于嵌入式系统设计的开发工具种类繁多,不仅各种操作系统有各自的开发工具,在同一系统下开发的不同阶段也使用不同的开发工具。
3.对目标系统的观察与控制
要使系统能正常工作,软件开发者必须要对目标系统具有完全的观察和控制能力,如硬件的各种寄存器、内存空间,操作系统的信号量、消息队列、任务、堆栈等。
11.简述嵌入式系统的开发环境的组成,解释其中的基本概念。
嵌入式系统的开发环境一般由三个部分组成:
宿主机、调试仿真器和目标机。
其中宿主机用来完成源代码编辑、编译、显示一部分运行结果等。
目标机就是用户嵌入式程序的运行环境,通过调试仿真器可以在PC上实现对应用软件的调试;再使用烧写软件,将开发成功的应用系统从宿主机向目标机下载移植,从而完成整个开发过程。
12.简述嵌入式系统的调试方法。
1.指令集模拟器
方便用户在PC上完成一部分简单的调试工作,与真实的硬件环境相差很大,因此即使用户调试通过的程序也有可能无法在真实的硬件环境下运行,
2.驻留监控软件
驻留监控软件(ResidentMonitors)是一段运行在目标板上的程序,集成开发环境中的调试软件通过以太网口、并行端口、串行端口等通信端口与驻留监控软件进行交互,由调试软件发布命令,通知驻留监控软件控制程序执行、读/写储存器、读/写寄存器和设置断点等。
是一种比较低廉有效的调节方式,不需要任何其它的硬件调试和仿真设备。
对硬件设备的要求比较高。
3.JTAG仿真器
也称为JTAG调试器,是通过ARM芯片的JTAG边界扫描口进行调试的设备。
JTAG仿真器比较便宜,连接比较方便,它无需目标储存器,不占用目标端口的任何端口。
另外,由JTAG调试的目标程序是在目标板上执行的仿真,许多接口问题被最小化了。
是目前采用最多的一种调节方式
4.在线仿真器
在线仿真器使用仿真头完全取代目标板上的CPU,可以完全仿真ARM芯片的行为,提供更加深入的调试功能。
但全速仿真时钟速度高于100MHz,价格比较昂贵。
在线仿真器常用在ARM的硬件开发中,在软件的开发中使用较少,其价格昂贵也是在线仿真器难以普及的因素。
13.简述嵌入式系统的设计方法和嵌入式系统的设计步骤。
软硬件协同设计方法与传统设计相比有2个显著的特点:
①描述软、硬件使用统一的表示形式;②硬、软件划分可以选择多种方案,直到满足要求。
14.简述嵌入式应用软件的开发的特点。
1.需要交叉编译工具
由于嵌入式系统目标机上的资源较为有限,不能直接在目标机上开发和调试应用软件。
因此,需要放在高性能计算机上的集成开发环境上进行嵌入式应用软件开发,另一个原因是嵌入式系统处理器与PC处理器的指令系统不同
2.通过仿真手段进行调试
在目标机上调试排错是非常困难的。
原因是输入输出方式较少,多数嵌入式系统显示面积小,甚至没有显示屏,从而无法显示调试信息;调试工具需要较大存储空间,对嵌入式系统来说,比较困难。
因此,通常的调试也是在PC上完成的,方式就是仿真调试。
3.目标机是最终的运行环境
嵌入式应用程序开发、调试往往是在PC上完成的,最终的运行环境是目标机。
嵌入式应用程序开发调试完成后,到目标机上运行,正确运行后才表示成功。
如果不成功或需要完善,则需重新回到PC上运行修改调试。
4.执行应用程序的指令通常写入操作系统
在常用的嵌入式系统中,应用程序的启动执行指令通常需要预先写入操作系统的任务调度程序里,编辑在目标程序中。
因此,嵌入式应用程序与操作系统有一定联系,开发者不仅要了解应用程序,也要了解操作系统,
5.系统资源有限
必须考虑可用资源问题。
以存储容量为例,嵌入式系统的ROM容量少,对目标程序有长度限制,在编程时必须考虑这个限制。
6.控制特定部件
在嵌入式应用软件开发过程中,程序员往往需要针对特定的部件做更加细致的编写作业。
1.目前世界上流行的四种嵌入式处理器是哪几种
PowerPC、MIPS、MC68000、i386EX、AMDK62E以及ARM
2.具体说明ARM7TDMI的含义,其中的T、D、M、I分别代表什么
ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S}
其中花括号的内容表示可有可无。
前三个参数含义在下面说明:
{x}表示系列号,例如:
ARM7,ARM9,ARM10
{y}表示内部存储管理和保护单元,例如:
ARM72,ARM92
{z}表示含有高速缓存(Cache),例如:
ARM720,ARM940
TThumb指令集,Thumb指令的长度为16位。
目前Thumb有两个版本。
Thumb1用于ARM4的T变种,Thumb2用于ARM5以上的T变种。
D含JTAG调试器,支持片上调试。
M提供用于进行长乘法操作的ARM指令,产生全64位结果。
I嵌入式跟踪宏单元(EmbeddedICEmacrocell)硬件部件,提供片上断点和调试点支持。
E增强型DSP指令,增加了几条16位乘法和加法指令,加减法指令可以完成饱和带符号算术运算。
JJAVA加速器Jazelle,与普通的JAVA虚拟机相比较,Jazelle使Java代码运行速度提高了8倍,而功耗降低了80%。
F向量浮点单元
S可综合版本,以源代码形式提供的,可以被EDA工具使用。
3.简述CISC与RISC体系结构的特点。
CISC(ComplexInstructionSetComputer)复杂指令集计算机:
指令复杂,开发成本高、指令长度不等,大量微码、不利于VLSI实现
统计发现,20%的简单指令(取数、运算、转移等)占CPU动态执行时间的80%~90%;80%的复杂指令只占CPU动态执行时间的20%
RISC(ReducedInstructionSetComputer)精简指令集计算机:
精简指令集的复杂度,简化指令实现的硬件设计,硬件只执行使用频度最高的那部分简单指令,大部分复杂的操作则由简单指令的组合完成
RISC与CISC比较
RISC指令格式和长度固定,类型少,功能简单、寻址简单方式少;CISC指令长度不等、类型多、功能复杂。
RISC使用硬连线指令译码逻辑,易于流水线实现;CISC采用微码ROM译码。
RISC大多数指令单周期完成;CISC指令多为多周期完成。
RISC除Load/Store指令外,所有指令只对寄存器操作;大多数CISC指令皆可对主存及寄存器器操作。
RICS的不足:
RISC代码密度没有CISC高,CISC中的一条指令在RISC中有时要用一段子程序来实现。
RISC不能执行x86代码
RISC给优化编译程序带来了困难
4.什么是ARM处理器的ARM状态和Thumb状态ARM处理器的七种基本工作模式是哪些
ARM状态:
ARM状态下指令长度为32位,ARM指令,字对准
Thumb状态:
Thumb状态下长度为16位,Thumb指令,半字对准。
ARM处理器可以在ARM和Thumb两种状态之间进行切换,状态的切换不影响处理器的模式或寄存器的内容
进入Thumb状态:
执行BXRm指令进入Thumb状态。
当操作数寄存器Rm的bit[0]为1时,执行该指令进入Thumb状态。
异常处理返回时,自动切换到Thumb状态(若在Thumb状态进