第10章 嵌入式系统软件开发_第1页
第10章 嵌入式系统软件开发_第2页
第10章 嵌入式系统软件开发_第3页
第10章 嵌入式系统软件开发_第4页
第10章 嵌入式系统软件开发_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第十章第十章嵌入式系统软件的开发嵌入式系统软件的开发第一节第一节嵌入式系统开发模式嵌入式系统开发模式概述概述处理器及硬件开发平台的选定处理器及硬件开发平台的选定操作系统选定操作系统选定开发环境选定开发环境选定10.1.1 嵌入式系统开发模式概述嵌入式系统开发模式概述 最大特点:最大特点:软硬件综合开发软硬件综合开发原因:原因: 嵌入式产品是软硬件的结合体;嵌入式产品是软硬件的结合体; 软件针对硬件开发、固化,不能软件针对硬件开发、固化,不能进行任意修改。进行任意修改。嵌嵌入入式式系系统统开开发发过过程程 系统定义系统定义符合要求符合要求硬件设计制作硬件设计制作软件设计实现软件设计实现软硬件集成

2、软硬件集成功能性能测试功能性能测试产品产品YesYes系统总体设计系统总体设计NoNo系统总体设计软硬件划分系统总体框架处理器选定操作系统选定开发环境选定硬件设计制作硬件设计制作硬件概要设计硬件概要设计硬件详细设计硬件详细设计硬件制作硬件制作硬件测试硬件测试功能模块图设计功能模块图设计逻辑电路图设计逻辑电路图设计PCBPCB设计与制作设计与制作PCBPCB 测试测试软件设计实现软件设计实现软件概要设计软件详细设计软件实现软件测试图中各个术语介绍:图中各个术语介绍:l系统定义系统定义 此阶段与通用软件工程中的含义一致。是系统生命周期此阶段与通用软件工程中的含义一致。是系统生命周期最简短的阶段。最

3、简短的阶段。l可行性研究可行性研究 用于确定是不是存在有效方法来解决系统定义中的关键用于确定是不是存在有效方法来解决系统定义中的关键问题。来决定该系统有没有开发的必要。问题。来决定该系统有没有开发的必要。l需求分析需求分析 确定功能需求、性能需求、环境需求。确定功能需求、性能需求、环境需求。 分析结果要提交分析结果要提交系统的功能模块图。系统的功能模块图。系统总体设计系统总体设计 确定嵌入式总体构架,从功能上对软硬件进行划分。选确定嵌入式总体构架,从功能上对软硬件进行划分。选择嵌入式微处理器、是否使用嵌入式择嵌入式微处理器、是否使用嵌入式OSOS,及,及OSOS种类等。这个种类等。这个步骤是最

4、重要环节。步骤是最重要环节。硬件设计实现硬件设计实现l 硬件概要设计硬件概要设计 根据系统总体设计,对硬件进行进一步描述。详细确定根据系统总体设计,对硬件进行进一步描述。详细确定各个功能模块的详细特性、内存大小、模块关联、总线等。各个功能模块的详细特性、内存大小、模块关联、总线等。要提供一份详细的硬件功能框图,每个模块的输入输出等。要提供一份详细的硬件功能框图,每个模块的输入输出等。l 硬件详细设计硬件详细设计 给出实现硬件功能的具体器件。设计其周边电路,设计给出实现硬件功能的具体器件。设计其周边电路,设计出电路的原理图。生成出电路的原理图。生成PCBPCB图(图(printed circui

5、t Boardprinted circuit Board。l 硬件制作硬件制作 根据根据PCBPCB加工出印刷电路板,焊接、装配后调试,直到证加工出印刷电路板,焊接、装配后调试,直到证明各个模块连接无错误为止。明各个模块连接无错误为止。l 硬件测试硬件测试 对制成的整体硬件进行功能、性能测试,修改。直到完对制成的整体硬件进行功能、性能测试,修改。直到完全达到设计要求为止。全达到设计要求为止。l 软硬件集成软硬件集成 将测试完的软件系统装入硬件系统中。进行系将测试完的软件系统装入硬件系统中。进行系统综合测试。验证系统功能,必须正确无误地实统综合测试。验证系统功能,必须正确无误地实现系统功能。然后

6、才能将软件固化在硬件系统中现系统功能。然后才能将软件固化在硬件系统中(EPROMEPROM)。复杂、费时间。)。复杂、费时间。l 功能性能测试功能性能测试 将系统在实践中进行检验。如不能满足要求,将系统在实践中进行检验。如不能满足要求,还要修改。最糟糕情况下还要回到系统总体设计还要修改。最糟糕情况下还要回到系统总体设计阶段,进行重新设计和实现。阶段,进行重新设计和实现。软硬件协同开发软硬件协同开发 通常的嵌入通常的嵌入式系统开发式系统开发 软软/ /硬件协硬件协同开发同开发嵌入式嵌入式软件开发软件开发嵌入式嵌入式硬件开发硬件开发嵌入式系统嵌入式系统集成、测试、集成、测试、验证验证嵌入式软件开发

7、嵌入式软件开发嵌入式硬件开发嵌入式硬件开发嵌入式系统嵌入式系统协同设计、测试、验证协同设计、测试、验证10.1.2 处理器及硬件开发平台的选定处理器及硬件开发平台的选定选择依据:选择依据: 应用的类型及应用的类型及I/OI/O接口接口 主频及功耗主频及功耗 对不同类型存储器的支持对不同类型存储器的支持 封装封装 产品生命力和厂家实力、技术支持及第三产品生命力和厂家实力、技术支持及第三方软件的支持方软件的支持 硬件开发平台的选择硬件开发平台的选择10.1.3 操作系统选定操作系统选定选择依据:选择依据: 选择嵌入式选择嵌入式OSOS的必要性的必要性 自建、购买或使用开源软件自建、购买或使用开源软

8、件 对嵌入式操作系统的功能、性能要求对嵌入式操作系统的功能、性能要求 与硬件平台和开发工具的关系与硬件平台和开发工具的关系 行业标准行业标准 技术支持技术支持 版税或服务费版税或服务费操作系统与硬件平台的关系操作系统与硬件平台的关系 操作系统应支持选定的硬件平台操作系统应支持选定的硬件平台 如果不支持,需考虑移植工作如果不支持,需考虑移植工作 不同类型嵌入式微处理器之间的移植:任务上下文切换、时钟、中断等 同类型微处理器但不同类型硬件板之间的移植:硬件接口及设备驱动程序 工具是否能为基于特定操作系统的应用开工具是否能为基于特定操作系统的应用开发提供最大支持:发提供最大支持: 运行库与OS相结合

9、 提供应用工程创建和管理功能,构建基于特定操作系统的应用框架 对操作系统的剪裁与配置 提供高级调试功能 提供配套的应用逻辑分析工具、覆盖测试工具等10.1.4 开发环境选定开发环境选定 对硬件平台的支持对硬件平台的支持 嵌入式软件开发特点是交叉开发。交叉链接。和交叉嵌入式软件开发特点是交叉开发。交叉链接。和交叉调试,开发工具要能支持选定的硬件平台,生成相应微处调试,开发工具要能支持选定的硬件平台,生成相应微处理器的目标程序。理器的目标程序。 编程语言编程语言C/C+,汇编语言,JAVA, 与嵌入式操作系统的关系与嵌入式操作系统的关系 根据自己系统情况适当选择根据自己系统情况适当选择OSOS,购

10、买还是自编,或采用开源软,购买还是自编,或采用开源软件。(公开源代码的软件)。购买是需要付费的,自编件。(公开源代码的软件)。购买是需要付费的,自编OSOS代价高、时代价高、时间长,但能获得更好的性能。开源软件需要自己改动,要经过精密仔间长,但能获得更好的性能。开源软件需要自己改动,要经过精密仔细的调试和验证无错(折中方案)细的调试和验证无错(折中方案) 。第二节第二节实时软件分析设计方法实时软件分析设计方法10.2 实时软件分析设计方法实时软件分析设计方法10.2.1 10.2.1 实时软件的分析设计要求实时软件的分析设计要求 一个实时系统是硬件、软件和数据元一个实时系统是硬件、软件和数据元

11、素的集成。系统设计人员必须对系统元素素的集成。系统设计人员必须对系统元素需求恰当地分配功能和性能。实时性与功需求恰当地分配功能和性能。实时性与功能一样重要。能一样重要。 实时软件的三个特征:实时软件的三个特征: 1.1.实时系统是受资源约束的。时间是系统的实时系统是受资源约束的。时间是系统的首要资源。要在限定的时间内完成一个定首要资源。要在限定的时间内完成一个定义的任务。义的任务。2.2.实时系统是紧凑和复杂的。实时系统代码量大,但是有关实时系统是紧凑和复杂的。实时系统代码量大,但是有关时间的标准代码只占很小部分。而这小部分代码是最为复杂时间的标准代码只占很小部分。而这小部分代码是最为复杂的,

12、有复杂的算法。的,有复杂的算法。3.3.在运行中是不需要用户参与的。实时软件必须能自检测到在运行中是不需要用户参与的。实时软件必须能自检测到导致故障的问题,在其对数据和控制环境造成破坏之前进行导致故障的问题,在其对数据和控制环境造成破坏之前进行处理和改正。处理和改正。 满足系统响应时间是实时系统设计的一项重要任务。满足系统响应时间是实时系统设计的一项重要任务。例:一个移动作战系统例:一个移动作战系统对敌目标的探测、攻击和接收上级命令的功能。对敌目标的探测、攻击和接收上级命令的功能。其中自身定位系统如下图。用来确定系统在地球上的位置。其中自身定位系统如下图。用来确定系统在地球上的位置。(确定物体

13、东西位置的为经度,确定位置南北的为纬度)(确定物体东西位置的为经度,确定位置南北的为纬度)采样时间和任务计算时间:陀螺仪及三轴陀螺仪陀螺仪及三轴陀螺仪 陀螺仪是一个装在能自由转向的小框架上的小飞轮。当飞轮绕自身陀螺仪是一个装在能自由转向的小框架上的小飞轮。当飞轮绕自身对称轴高速转动时,无论如何改变框架的方位,其中心轴的空间取向始对称轴高速转动时,无论如何改变框架的方位,其中心轴的空间取向始终保持不变,角动量守恒定律。如飞机上装上三个定向指示仪,并使三终保持不变,角动量守恒定律。如飞机上装上三个定向指示仪,并使三个小飞轮的自转轴相互垂直,飞行员就可以通过飞轮轴相对于机身的指个小飞轮的自转轴相互垂

14、直,飞行员就可以通过飞轮轴相对于机身的指向来确定飞机的空间取向。单轴的只能测量一个方向的量,一个系统需向来确定飞机的空间取向。单轴的只能测量一个方向的量,一个系统需三个陀螺仪,而三轴的一个陀螺仪就能替代三个单轴的。三个陀螺仪,而三轴的一个陀螺仪就能替代三个单轴的。10.2.2 DARTS 分析设计方法分析设计方法Design Algorithm for Real Time Systems 嵌入式多任务软件开发阶段,着眼于将嵌入式多任务软件开发阶段,着眼于将系统分为多个并发任务,而非多个模块。要系统分为多个并发任务,而非多个模块。要定义任务间的接口关系,而非模块间的接口。定义任务间的接口关系,而

15、非模块间的接口。模块划分和接口关系在任务设计阶段确定的。模块划分和接口关系在任务设计阶段确定的。 DARTS DARTS 是结构化分析是结构化分析/ /设计的扩展,给出设计的扩展,给出了划分任务的方法,定义任务间的接口机制。了划分任务的方法,定义任务间的接口机制。一个机器人控制器。控制一个机器人控制器。控制6 6个转轴,和个转轴,和I/OI/O传传感器交互作用。转轴与感器交互作用。转轴与I/OI/O由控制器控制。程由控制器控制。程序由控制面板操作启动。序由控制面板操作启动。上电断电手动运行停止结束程序选择1.1.需求分析与说明需求分析与说明 需求分析给出了系统功能需求:功能、输入输出、外部接口

16、需求、需求分析给出了系统功能需求:功能、输入输出、外部接口需求、性能等。状态变迁图说明了操作员与系统之间所有交互作用。结合操作性能等。状态变迁图说明了操作员与系统之间所有交互作用。结合操作手册为用户提供了操作步骤。手册为用户提供了操作步骤。2. 2. 系统设计系统设计系统设计是说明如何将系统分解成为多个任务。系统设计是说明如何将系统分解成为多个任务。(1 1)数据流分析)数据流分析 (Data Flow DiagramData Flow Diagram) 数据流图有数据流图有4 4种基本图形符号:种基本图形符号: 箭头表箭头表示数据流;示数据流; 圆或椭圆表述数据加工处理,有圆或椭圆表述数据加

17、工处理,有输入和输出;输入和输出; 表示数据存储;表示数据存储; 方框表方框表示数据的源点或终点。示数据的源点或终点。 以数据流为分析工具,从系统功能开始分析系以数据流为分析工具,从系统功能开始分析系统中的数据流。确定主要功能。统中的数据流。确定主要功能。 每个数据流图都包含变换圈,表示系统完成的每个数据流图都包含变换圈,表示系统完成的功能,箭头表示变换间的数据流动、数据存储区,数功能,箭头表示变换间的数据流动、数据存储区,数据词典据词典。数据字典数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。 (2

18、2) 划分任务划分任务 识别出系统的所有功能和它们之间的数据流之识别出系统的所有功能和它们之间的数据流之后,还要识别任务的并行性的功能。后,还要识别任务的并行性的功能。 将一个软件系统分解成并行任务,主要考虑系将一个软件系统分解成并行任务,主要考虑系统中功能的异步性。分析数据流图中的变换,来确统中功能的异步性。分析数据流图中的变换,来确定那些变换可以并行处理,那些变换本质上是顺序定那些变换可以并行处理,那些变换本质上是顺序的。通过这些方法划分任务,一个数据的变换对应的。通过这些方法划分任务,一个数据的变换对应一个任务,或者一个任务包括几个变换。一个任务,或者一个任务包括几个变换。 一个变换是一

19、个独立的任务,还是和其他接个一个变换是一个独立的任务,还是和其他接个变换一起组成一个任务,这要决定于:变换一起组成一个任务,这要决定于:1 1) I/OI/O依依赖性;赖性;2 2)功能和时间关键性;)功能和时间关键性;3 3)计算需求;)计算需求;4 4)功)功能内聚,能内聚,5 5)时间内聚;)时间内聚;6 6)周期执行。这些因素都)周期执行。这些因素都需要周密的考虑。需要周密的考虑。(3 3)定义任务接口)定义任务接口 有两类任务接口模块:通信模块有两类任务接口模块:通信模块TCMTCM和同和同步互斥模块步互斥模块TSMTSM来实现的任务的关联。来实现的任务的关联。 这两个模块是由任务来

20、调用的,称为系这两个模块是由任务来调用的,称为系统调用。在调用统调用。在调用TCMTCM过程中要依靠过程中要依靠TSMTSM使两个使两个任务同步和互斥,来保障数据的一致性和正任务同步和互斥,来保障数据的一致性和正确性。确性。3. 3. 实例(略)实例(略)4.4.任务设计任务设计任务间接口设计好之后,就要建立各个任务的结构。任务间接口设计好之后,就要建立各个任务的结构。一个任务就是一个程序序列。画出各个任务的数据一个任务就是一个程序序列。画出各个任务的数据流图,从数据流图导出任务模块结构图。然后定义流图,从数据流图导出任务模块结构图。然后定义任务模块的接口。(见图任务模块的接口。(见图10-2

21、2)10-22)5.5.模块构筑模块构筑进行每个模块的详细设计,然后进行编码。进行每个模块的详细设计,然后进行编码。6.6.任务与系统集成任务与系统集成最后将模块连接成任务,然后将各任务连接成系统。最后将模块连接成任务,然后将各任务连接成系统。嵌入式软件开发工具嵌入式软件开发工具 嵌入式软件开发工具的嵌入式软件开发工具的集成度集成度和和可用性可用性将直接关将直接关系到嵌入式系统的开发效系到嵌入式系统的开发效率。率。嵌入式软件开发工具的分类嵌入式软件开发工具的分类嵌入式软件开发阶段嵌入式软件开发阶段 嵌入式软件开发工具的分类嵌入式软件开发工具的分类根据不同的阶段,嵌入式软件开发工具根据不同的阶段

22、,嵌入式软件开发工具可以分为:可以分为:需求分析工具(Requirement Analysis Tools)软件设计工具(Software Design Tools)编码、调试工具(Coding Tools)测试工具(Testing Tools)配置管理工具、维护工具等主要嵌入式软件开发工具产品主要嵌入式软件开发工具产品RequirementAnalysisSoftwareDesignCodingTestReleasePhasesTAUObjectGeodeRational Rose RealTimeRhapsodyTornadopRISM+SpectraWin CE PlatformBuil

23、derCodeWarriorXray DebuggerLogiscopeCodeTESTLambdaTOOL嵌入式软件开发工具的分类嵌入式软件开发工具的分类 嵌入式软件的开发可分为以下几种嵌入式软件的开发可分为以下几种 :编写简单的板级测试软件,主要是辅助硬件的调试 开发基本的驱动程序 开发特定嵌入式操作系统的驱动程序(板级支持包) 开发嵌入式系统软件,如嵌入式操作系统等 开发应用软件嵌入式软件开发工具的分类嵌入式软件开发工具的分类 从以上嵌入式软件开发分类来看,嵌入式从以上嵌入式软件开发分类来看,嵌入式软件开发工具可以分为:软件开发工具可以分为:与嵌入式OS相关的开发工具,用于开发: 基于嵌

24、入式OS的应用 部分驱动程序等与嵌入式OS无关的开发工具,用于开发: 基本的驱动程序 辅助硬件调试程序 系统软件等嵌入式软件的交叉开发环境嵌入式软件的交叉开发环境 交叉开发环境交叉开发环境是指用于嵌入式软件开发的是指用于嵌入式软件开发的所有工具软件的集合,一般包括:所有工具软件的集合,一般包括:文本编辑器交叉编译器交叉调试器仿真器下载器等 交叉开发环境由交叉开发环境由宿主机宿主机和和目标机目标机组成,宿组成,宿主机与目标机之间在主机与目标机之间在物理连接物理连接的基础上建的基础上建立起立起逻辑连接逻辑连接。交叉开发环境交叉开发环境目标机硬件目标机硬件目标机应用系统目标机应用系统 应用软件 应用

25、中间件 目标机OS宿主机硬件宿主机硬件宿主机宿主机OS调调试试代代理理运运行行库库宿主机开发环境宿主机开发环境 编辑 编译 连接 调试运行平台TargetTarget开发平台Host嵌入式软件的交叉开发环境嵌入式软件的交叉开发环境 宿主机(宿主机(HostHost) :是用于开发嵌入式系统的计算:是用于开发嵌入式系统的计算机。一般为机。一般为PCPC机(或者工作站),具备丰富的软机(或者工作站),具备丰富的软硬件资源,为嵌入式软件的开发提供全过程支持。硬件资源,为嵌入式软件的开发提供全过程支持。目标机(目标机(TargetTarget):即所开发的嵌入式系统,是:即所开发的嵌入式系统,是嵌入式

26、软件的运行环境,其硬件软件是为特定应嵌入式软件的运行环境,其硬件软件是为特定应用定制的。用定制的。在开发过程中,目标机端需接收和执行宿主机发在开发过程中,目标机端需接收和执行宿主机发出的各种命令如设置断点、读内存、写内存等,出的各种命令如设置断点、读内存、写内存等,将结果返回给宿主机,配合宿主机各方面的工作。将结果返回给宿主机,配合宿主机各方面的工作。嵌入式软件的交叉开发环境嵌入式软件的交叉开发环境 物理连接和逻辑连接物理连接和逻辑连接 物理连接物理连接是指宿主机与目标机通过物理线路连接在一起,连接方式主要有三种: 串口 以太口 OCD(On Chip Debug)方式,如JTAG等物理连接是

27、逻辑连接的基础。逻辑连接逻辑连接指宿主机与目标机间按某种通信协议建立起来的通信连接,目前逐步形成了一些通信协议的标准。嵌入式软件实现阶段的开发过程嵌入式软件实现阶段的开发过程 设计完成后,嵌入式软件的开发进入实现阶段,设计完成后,嵌入式软件的开发进入实现阶段,可分为三个步骤:生成、调试和固化运行。可分为三个步骤:生成、调试和固化运行。软件的生成软件的生成主要是在宿主机上进行,利用各种工具完成对应用程序的编辑、交叉编译和链接工作,生成可供调试或固化的目标程序。调试调试是通过交叉调试器完成软件的调试工作。调试完成后还需进行必要的测试工作。固化运行固化运行是先用一定的工具将应用程序固化到目标机上,然

28、后启动目标机,在没有任何工具干预的情况下应用程序能自动地启动运行。嵌入式软件生成阶段嵌入式软件生成阶段 三个过程三个过程 源代码程序的编写 编译成各个目标模块 链接成可供下载调试或固化的目标程序编辑器编辑器交叉编交叉编译器译器交叉链交叉链接器接器源程序源程序目标目标模块模块可供调可供调试试/ /固固化化库文件库文件交叉编译交叉编译 把在宿主机上编写的高级语言程序编译成把在宿主机上编写的高级语言程序编译成可以运行在目标机上的代码,即在宿主机可以运行在目标机上的代码,即在宿主机上能够编译生成另一种上能够编译生成另一种CPUCPU(嵌入式微处理(嵌入式微处理器)上的二进制程序。器)上的二进制程序。

29、嵌入式软件的调试嵌入式软件的调试 交叉调试器交叉调试器是指调试程序和被调试程序运行在不同机器上的调试器;调试器通过某种方式能控制目标机上被调试程序的运行方式;通过调试器能查看和修改目标机上的内存、寄存器以及被调试程序中的变量等。交叉调试交叉调试非交叉调试非交叉调试调试器和被调试程序运行在不同调试器和被调试程序运行在不同的计算机上的计算机上调试器和被调试程序运行在同一调试器和被调试程序运行在同一台计算机上台计算机上可独立运行,无需操作系统支持可独立运行,无需操作系统支持需要操作系统的支持需要操作系统的支持被调试程序的装载由调试器完成被调试程序的装载由调试器完成被调试程序的装载由专门的被调试程序的

30、装载由专门的LoaderLoader程序完成程序完成需要通过外部通信的方式来控制需要通过外部通信的方式来控制被调试程序被调试程序不需要通过外部通信的方式来控不需要通过外部通信的方式来控制被调试程序制被调试程序可以直接调试不同指令集的程序可以直接调试不同指令集的程序只能直接调试相同指令集的程序只能直接调试相同指令集的程序嵌入式软件的调试嵌入式软件的调试 交叉调试方式交叉调试方式 Crash and Burn Rom Monitor Rom Emulator In Circuit Emulator On Chip Debugging SimulatorSimulator方式(非交叉)方式(非交叉)

31、Crash and Burn 最早的最早的嵌入式嵌入式应用软应用软件调试件调试方法。方法。在宿主机上编写代码在宿主机上编写代码反复检查代码,直到编译反复检查代码,直到编译通过,生成可执行程序通过,生成可执行程序将程序固化(将程序固化(Burn)到目标机的非易失)到目标机的非易失性存储器性存储器(E2PROM、FLASH等)中等)中在宿主机上反复检查在宿主机上反复检查码,查找问题根源码,查找问题根源改写代码改写代码启动目标机运行,观启动目标机运行,观察程序是否正常工作察程序是否正常工作NY结束结束ROM Monitor ROM MonitorROM Monitor是是被固化且运行在目标机上的被固

32、化且运行在目标机上的一段程序一段程序,负责监控目标机上被调试程序,负责监控目标机上被调试程序的运行,与宿主机端的调试器一起完成对的运行,与宿主机端的调试器一起完成对应用程序的调试。应用程序的调试。 调试器与调试器与ROM MonitorROM Monitor之间的通信遵循远程之间的通信遵循远程调试协议。调试协议。ROM Monitor调试方式调试方式调试器调试器Windows或其它桌或其它桌面操作系统面操作系统PC机等硬件机等硬件嵌入式嵌入式硬件硬件监控程监控程序序(ROM Monitor)被调试被调试程序程序宿主机宿主机目标机目标机逻辑上的连接逻辑上的连接物理上的连接物理上的连接ROM Mo

33、nitor 在目标机上电或复位后首先执行的就是在目标机上电或复位后首先执行的就是ROM ROM MonitorMonitor,它对目标机进行一些必要的初始,它对目标机进行一些必要的初始化化 初始化要求的外围设备,如最基本的串口和用于内存刷新的系统计时器芯片; 初始化用于下载映像的内存系统; 初始化中断控制器和安装中断处理程序。 初始化自己的程序空间初始化自己的程序空间 等待宿主机端的命令等待宿主机端的命令ROM Monitor ROM MonitorROM Monitor能配合调试器完成:能配合调试器完成: 程序映像下载 对目标机系统内存的读写 对寄存器的读写 设置和清除不同类型的断点 单步执

34、行指令 复位系统 等调试功能ROM Monitor调试过程调试过程(1 1)启动目标机,监控器掌握对目标机的控制,)启动目标机,监控器掌握对目标机的控制,等待和调试器建立连接;等待和调试器建立连接;(2 2)启动调试器,并和监控器建立起通信连接;)启动调试器,并和监控器建立起通信连接;(3 3)使用调试器将应用程序下载到目标机上的)使用调试器将应用程序下载到目标机上的RAMRAM空间中;空间中;(4 4)使用调试器进行调试,发出各种调试命令,)使用调试器进行调试,发出各种调试命令,监控器解释并执行这些命令,通过目标机上的各种监控器解释并执行这些命令,通过目标机上的各种异常来获取对目标机的控制,

35、将命令执行结果回传异常来获取对目标机的控制,将命令执行结果回传给调试器;给调试器; (5 5)如果程序有问题,在调试器的帮助下定位错)如果程序有问题,在调试器的帮助下定位错误;修改之后再重新编译链接并下载程序,开始新误;修改之后再重新编译链接并下载程序,开始新的调试,如此反复直至程序正确运行为止。的调试,如此反复直至程序正确运行为止。 ROM Monitor优点:优点:提高调试程序的效率提高调试程序的效率 ,缩短开发周期,缩短开发周期,降低成本;降低成本;简单、方便;简单、方便;可扩展性强,可支持许多高级调试功能;可扩展性强,可支持许多高级调试功能;成本低廉,不需专门的调试硬件支持;成本低廉,

36、不需专门的调试硬件支持;1)1)几乎所有的交叉调试器都支持这种方式。几乎所有的交叉调试器都支持这种方式。 ROM Monitor缺点:缺点:Debug MonitorDebug Monitor需要用需要用Crash and BurnCrash and Burn方法开发;方法开发;当当ROM MonitorROM Monitor占用占用CPUCPU时,应用程序不响应外部的时,应用程序不响应外部的中断,因此不便调试有时间特性的程序;中断,因此不便调试有时间特性的程序;某些调试功能依赖于某些调试功能依赖于CPUCPU硬件的支持(如硬件断点功硬件的支持(如硬件断点功能);能);ROM MonitorR

37、OM Monitor要占用目标机一定数量的资源,如要占用目标机一定数量的资源,如CPUCPU、RAMRAM、ROMROM和通信设备等资源;和通信设备等资源;1)1)调试环境不同于实际目标环境。调试环境不同于实际目标环境。仿真开发方式仿真开发方式嵌入式应用的开发经常会遭遇缺少目嵌入式应用的开发经常会遭遇缺少目标机环境、缺乏目标机芯片等资源的问题,标机环境、缺乏目标机芯片等资源的问题,而开发过程又不可能停止,因此自然就提而开发过程又不可能停止,因此自然就提出了根据不同的应用需要,利用仿真器件、出了根据不同的应用需要,利用仿真器件、仿真环境进行开发的方法。仿真环境进行开发的方法。硬件仿真开发硬件仿真

38、开发ROM EmulatorICEOCD软件仿真开发软件仿真开发ROM Emulator (软硬结合仿真器软硬结合仿真器)ROM EmulatorROM Emulator是一种用于是一种用于替代目标机上的替代目标机上的ROMROM芯片芯片的设备,即的设备,即ROMROM仿真器。利用这种仿真器。利用这种设备,目标机可以没有设备,目标机可以没有ROMROM芯片,但目标机芯片,但目标机的的CPUCPU可以读取可以读取ROM EmulatorROM Emulator设备上设备上ROMROM芯芯片的内容:片的内容:ROM EmulatorROM Emulator设备上的设备上的ROMROM芯片芯片的地址

39、可以实时地映射到目标机的的地址可以实时地映射到目标机的ROMROM地址地址空间,从而仿真(空间,从而仿真(EmulationEmulation)目标机的)目标机的ROMROM。ROM EmulatorROM EmulatorROM Emulator的调试方式是一种不完全的的调试方式是一种不完全的调试方式:调试方式:ROM EmulatorROM Emulator设备只是为目标设备只是为目标机提供机提供ROMROM芯片和在芯片和在TargetTarget和和HostHost间建立一间建立一条高速的通信通道,因此它经常和前面两条高速的通信通道,因此它经常和前面两种调试方式结合起来形成一种完备的调试

40、种调试方式结合起来形成一种完备的调试方式。方式。 ROM EmulatorROM Emulator的典型应用就是和的典型应用就是和ROM ROM MonitorMonitor的调试方式相结合。的调试方式相结合。ROM Emulator 优点:优点:目标机可以没有目标机可以没有ROMROM芯片、可以使用芯片、可以使用ROM ROM EmulatorEmulator提供的提供的ROMROM空间且不需要用别的工空间且不需要用别的工具来写具来写ROMROM。 缺点:缺点:目标机必须能支持外部目标机必须能支持外部ROMROM存储空间,而且存储空间,而且由于其通常要和由于其通常要和ROM MonitorR

41、OM Monitor配合使用,因配合使用,因此它拥有此它拥有ROM MonitorROM Monitor的所有缺点。的所有缺点。 另外,现在的嵌入式微处理器一般都有集另外,现在的嵌入式微处理器一般都有集成的成的ROMROM,因此不能用这种方法了。,因此不能用这种方法了。ICE ICEICE(In-Circuit EmulatorIn-Circuit Emulator)是一种用于)是一种用于替代目标机上替代目标机上CPUCPU的设备,即在线仿真器;的设备,即在线仿真器; 它比一般的它比一般的CPUCPU有更多的引出线,能够将内有更多的引出线,能够将内部的信号输出到被控制的目标机;部的信号输出到被

42、控制的目标机; ICEICE上的上的MemoryMemory也可以被映射到用户的程序也可以被映射到用户的程序空间,这样即使目标机不存在的情形下也空间,这样即使目标机不存在的情形下也可以进行代码的调试。可以进行代码的调试。宿主开发平台目标平台ICEICE调试结构调试结构 连接连接ICEICE和目标机时,一般是将目标机的和目标机时,一般是将目标机的CPUCPU取取下,而将下,而将ICEICE的的CPUCPU引出线接到目标机的引出线接到目标机的CPUCPU插插槽。槽。 用用ICEICE进行调试时,在进行调试时,在HostHost端运行的调试器通端运行的调试器通过过ICEICE来控制目标机上运行的程序

43、。来控制目标机上运行的程序。ICEICE功能特点功能特点同时支持同时支持软断点软断点和和硬件断点硬件断点的设置;的设置;设置各种复杂的断点和触发器;设置各种复杂的断点和触发器;实时跟踪目标程序的运行,并可实现选择性的实时跟踪目标程序的运行,并可实现选择性的跟踪;跟踪;支持支持“Time Stamp”Time Stamp”; 允许用户设置允许用户设置“Timer”Timer”; 提供提供“Shadow RAM”Shadow RAM”,能在不中断被调试程序,能在不中断被调试程序的运行下查看内存和变量即非干扰调试查询。的运行下查看内存和变量即非干扰调试查询。ICE适用于:适用于:调试实时的应用系统调

44、试实时的应用系统调试设备驱动程序调试设备驱动程序对硬件进行功能和性能的测试对硬件进行功能和性能的测试实时性能分析实时性能分析缺点:缺点:价格太昂贵,不利于团队开发价格太昂贵,不利于团队开发1)1)所仿所仿CPUCPU有限有限OCDOCDOCD(On Chip DebuggingOn Chip Debugging)是)是CPUCPU芯片提供芯片提供的一种调试功能(片上调试),可以认为的一种调试功能(片上调试),可以认为是一种廉价的是一种廉价的ICEICE功能:功能:OCDOCD的价格只有的价格只有ICEICE的的20%20%,但提供了,但提供了ICE 80%ICE 80%的功能。的功能。OCD调

45、试结构调试结构调试器调试器Windows或其它桌或其它桌面操作系统面操作系统PC机等硬件机等硬件被调试程序被调试程序OCD接接口口嵌入式嵌入式硬件硬件宿主机宿主机目标机目标机逻辑上的连接逻辑上的连接物理连接物理连接仿真器仿真器针形连接器针形连接器并口、串口并口、串口或网络接口或网络接口为特定处理为特定处理器而建造器而建造OCD调试方法调试方法将将CPUCPU的模式分为的模式分为一般模式一般模式和和调试模式调试模式一般模式下,一般模式下, CPUCPU从内存读取指令执行从内存读取指令执行1)1)调试模式下,调试模式下,CPUCPU首先从首先从调试端口调试端口读取指令,通过调试读取指令,通过调试端

46、口可以控制端口可以控制CPUCPU进入和退出调试模式;进入和退出调试模式;HostHost端的调试端的调试器可以直接向目标机发送要执行的指令,读写目标机的器可以直接向目标机发送要执行的指令,读写目标机的内存和各种寄存器,控制目标程序的运行以及完成各种内存和各种寄存器,控制目标程序的运行以及完成各种复杂的调试功能。复杂的调试功能。OCD优点:优点:不占用目标机的资源;不占用目标机的资源;调试环境和最终的程序运行环境基本一致;调试环境和最终的程序运行环境基本一致;支持软硬断点、支持软硬断点、TraceTrace功能;功能;精确计量程序的执行时间;精确计量程序的执行时间;1)1)提供时序分析功能。提

47、供时序分析功能。OCD缺点:缺点:调试的实时性不如调试的实时性不如ICEICE;不支持非干扰调试查询;不支持非干扰调试查询;1)1)CPUCPU必需具有必需具有OCDOCD功能。功能。各种各种OCD仿真器实例仿真器实例边界扫描技术(边界扫描技术(JTAGJTAG) JTAGJTAG标准测试访问接口与边界扫描结构标准测试访问接口与边界扫描结构(Standard Test Access Port and Boundary Standard Test Access Port and Boundary Scan ArchitectureScan Architecture),已被),已被IEEE1149

48、.1IEEE1149.1标准标准所采纳,是面向用户的测试接口。所采纳,是面向用户的测试接口。 该接口一般由该接口一般由4 4个引脚组成:个引脚组成:测试数据输入(TDI)测试数据输出(TDO)测试时钟(TCK)测试模式选择引脚(TMS)异步测试复位引脚(TRST,可选)边界扫描技术(边界扫描技术(JTAGJTAG) 优点:优点:可以通过边界扫描操作测试整个板的电气连接,特别为表面贴元件提供方便; 各个引脚信号的采样,并可强制引脚输出用以测试外围芯片; 可以软件下载、执行、调试和控制,为复杂的实时跟踪调试提供路径; 可以进行多内核和多处理器的板级和芯片级的调试,通过串接 ,为芯片制造商提供芯片生

49、产、测试途径; 不占用系统资源,能够调试没有外部总线的芯片,代价小。 边界扫描技术(边界扫描技术(JTAGJTAG) 缺点:缺点:通过串口依次传递数据,速度比较慢; 只能进行软件断点级别的调试; 不能完成实时跟踪和多种事件触发等复杂调试功能。Simulator交叉开发方式存在如下缺点:交叉开发方式存在如下缺点:硬件支持硬件支持 必须有目标机或评估板必须有目标机或评估板 易使用性易使用性普通编程人员不熟悉普通编程人员不熟悉 廉价性廉价性成本高成本高 可移植性、可扩展性可移植性、可扩展性不高不高 团队开发团队开发较难较难 开发周期开发周期较长较长Simulator (全软件模拟器)(全软件模拟器)

50、 一种软件模拟器,在宿主机上创建一个虚拟的一种软件模拟器,在宿主机上创建一个虚拟的目标机环境,再将应用系统下载到这个虚拟目目标机环境,再将应用系统下载到这个虚拟目标机上运行调试。标机上运行调试。 软件模拟的对象软件模拟的对象仿真处理器仿真外设仿真环境软件仿真的级别软件仿真的级别指令级仿真开发API级仿真开发宿主机 OS编辑 :C、C+编译、链接应用仿真开发环境示意图调试目标操作系统库TOSLib应用编程接口API仿真调试代理EDA应用系统通信用户虚拟目标硬件V-Target虚虚拟拟目目标标环环境境IDE应用仿真开发环境示意图应用仿真开发环境示意图设计编码测试运行维护下载调试固化交叉调试固化运行

51、仿真编译仿真调试正确N仿真库编译链接Y运行库结合了仿真的软件开发过程结合了仿真的软件开发过程Simulator 优点优点最大好处就是可以不用真正的目标机,可最大好处就是可以不用真正的目标机,可以在目标机环境并不存在的条件下开发目以在目标机环境并不存在的条件下开发目标机上的应用系统,并且在调试时可以利标机上的应用系统,并且在调试时可以利用用HostHost资源提供更详细的错误诊断信息。资源提供更详细的错误诊断信息。Simulator缺点缺点和实际的运行环境差别很大和实际的运行环境差别很大设备模拟的局限性较大设备模拟的局限性较大实时特性较差实时特性较差对对HostHost的资源要求较高的资源要求较

52、高适用范围适用范围对时间特性没有严格要求、没有特殊外设、只对时间特性没有严格要求、没有特殊外设、只需要验证逻辑正确的应用程序。需要验证逻辑正确的应用程序。嵌入式软件的测试嵌入式软件的测试 测试工具测试工具能够用来辅助测试的工具,主要用来能够用来辅助测试的工具,主要用来支持测试人员的工作,本身不能直接用来进行支持测试人员的工作,本身不能直接用来进行测试。测试工具一般都是通用工具,测试人员测试。测试工具一般都是通用工具,测试人员应该根据实际情况对它们进行适当的调整。应该根据实际情况对它们进行适当的调整。 嵌入式软件测试中经常用到的测试工具有:嵌入式软件测试中经常用到的测试工具有:内存分析工具性能分

53、析工具覆盖分析工具缺陷跟踪工具等 嵌入式软件的测试嵌入式软件的测试内存分析工具内存分析工具 嵌入式系统的内存资源通常是受限的,内存分嵌入式系统的内存资源通常是受限的,内存分析工具可以用来处理在进行动态内存分配时产析工具可以用来处理在进行动态内存分配时产生的缺陷。当动态分配的内存被错误地引用时,生的缺陷。当动态分配的内存被错误地引用时,产生的错误通常难以再现,出现的失效难以追产生的错误通常难以再现,出现的失效难以追踪,使用内存分析工具可以很好地检测出这类踪,使用内存分析工具可以很好地检测出这类缺陷。缺陷。 目前常用的内存分析工具有软件和硬件两种:目前常用的内存分析工具有软件和硬件两种:基于软件的

54、内存分析工具可能会对代码的执行性能基于软件的内存分析工具可能会对代码的执行性能带来很大影响,从而影响系统的实时性;带来很大影响,从而影响系统的实时性;基于硬件的内存分析工具对系统性能影响小,但价基于硬件的内存分析工具对系统性能影响小,但价格昂贵,并且只能在特定的环境中使用。格昂贵,并且只能在特定的环境中使用。 嵌入式软件的测试嵌入式软件的测试性能分析工具性能分析工具 嵌入式系统的性能通常是一个非常关键嵌入式系统的性能通常是一个非常关键的因素,开发人员一般需要对系统的某的因素,开发人员一般需要对系统的某些关键代码进行优化来改进性能。些关键代码进行优化来改进性能。 性能分析工具性能分析工具可以提供

55、有关数据,帮助确定哪些任务消可以提供有关数据,帮助确定哪些任务消耗了过多的执行时间,从而可以决定如何优耗了过多的执行时间,从而可以决定如何优化软件,以获得更好的时间性能。化软件,以获得更好的时间性能。引导开发人员发现在系统调用中存在的错引导开发人员发现在系统调用中存在的错误以及程序结构上的缺陷。误以及程序结构上的缺陷。 嵌入式软件的测试嵌入式软件的测试覆盖分析工具覆盖分析工具 在进行白盒测试时,可以使用代码覆盖分析工在进行白盒测试时,可以使用代码覆盖分析工具追踪哪些代码被执行过具追踪哪些代码被执行过 分析过程一般通过插桩来完成,插桩可以是在分析过程一般通过插桩来完成,插桩可以是在测试环境中嵌入硬件,也可以是在可执行代码测试环境中嵌入硬件,也可以是在可执行代码中加入软件,或者是两者的结合。中加入软件,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论