南航 嵌入式实时操作系统 课件 第9章 嵌入式系统软件开发_第1页
南航 嵌入式实时操作系统 课件 第9章 嵌入式系统软件开发_第2页
南航 嵌入式实时操作系统 课件 第9章 嵌入式系统软件开发_第3页
南航 嵌入式实时操作系统 课件 第9章 嵌入式系统软件开发_第4页
南航 嵌入式实时操作系统 课件 第9章 嵌入式系统软件开发_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

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

文档简介

1、1第九章第九章 嵌入式系统软件的开发嵌入式系统软件的开发 2主要内容主要内容 v嵌入式软件开发工具嵌入式软件开发工具 v嵌入式系统开发模式嵌入式系统开发模式 v实时软件分析设计方法实时软件分析设计方法39.1 嵌入式软件开发工具嵌入式软件开发工具 v嵌入式软件开发工具的分类嵌入式软件开发工具的分类 v嵌入式软件的交叉开发环境嵌入式软件的交叉开发环境 v嵌入式软件实现阶段的开发过程嵌入式软件实现阶段的开发过程 v嵌入式软件开发工具的发展趋势嵌入式软件开发工具的发展趋势4嵌入式软件开发工具嵌入式软件开发工具 v嵌入式软件开发工具的嵌入式软件开发工具的集成度集成度和和可用可用性性将直接关系到嵌入式系

2、统的开发效将直接关系到嵌入式系统的开发效率。率。 59.1.1 嵌入式软件开发工具的分类嵌入式软件开发工具的分类 嵌入式软件开发阶段嵌入式软件开发阶段 6嵌入式软件开发工具的分类嵌入式软件开发工具的分类 v根据不同的阶段,嵌入式软件开发工根据不同的阶段,嵌入式软件开发工具可以分为:具可以分为: 需求分析工具(需求分析工具(Requirement Analysis Tools) 软件设计工具软件设计工具(Software Design Tools) 编码、调试工具编码、调试工具(Coding Tools) 测试工具测试工具(Testing Tools) 配置管理工具、维护工具等配置管理工具、维护

3、工具等7嵌入式软件开发工具的分类嵌入式软件开发工具的分类 主要嵌入式软件开发工具产品主要嵌入式软件开发工具产品 8嵌入式软件开发工具的分类嵌入式软件开发工具的分类 v嵌入式软件的开发可以分为以下几种嵌入式软件的开发可以分为以下几种 : 编写简单的编写简单的板级测试软件板级测试软件,主要是辅助硬,主要是辅助硬件的调试件的调试 开发开发基本的驱动程序基本的驱动程序 开发开发特定嵌入式操作系统的驱动程序特定嵌入式操作系统的驱动程序(板(板级支持包级支持包BSP) 开发嵌入式开发嵌入式系统软件系统软件,如:嵌入式操作系,如:嵌入式操作系统等统等 开发开发应用软件应用软件9嵌入式软件开发工具的分类嵌入式

4、软件开发工具的分类 v从以上嵌入式软件开发分类来看,嵌入从以上嵌入式软件开发分类来看,嵌入式软件开发工具可以分为式软件开发工具可以分为 : 与嵌入式与嵌入式OS相关相关的开发工具,用于开发基的开发工具,用于开发基 于嵌入式于嵌入式OS的应用和部分的驱动程序等。的应用和部分的驱动程序等。 与嵌入式与嵌入式OS无关无关的开发工具,用于开发基的开发工具,用于开发基本的驱动程序、辅助硬件调试,系统软件本的驱动程序、辅助硬件调试,系统软件的开发等。的开发等。 109.1.2 嵌入式软件的交叉开发环境嵌入式软件的交叉开发环境 v交叉开发环境是指用于嵌入式软件开交叉开发环境是指用于嵌入式软件开发的所有工具软

5、件的集合,一般包括发的所有工具软件的集合,一般包括文本编辑器文本编辑器、交叉编译器交叉编译器、交叉调试交叉调试器器、仿真器仿真器、下载器下载器等工具。等工具。 v交叉开发环境交叉开发环境由宿主机和目标机组成由宿主机和目标机组成,宿主机与目标机之间在物理连接的基宿主机与目标机之间在物理连接的基础上建立起逻辑连接。础上建立起逻辑连接。11嵌入式软件的交叉开发环境嵌入式软件的交叉开发环境 交叉开发环境交叉开发环境 宿主机宿主机Host 目标机目标机Target 12嵌入式软件的交叉开发环境嵌入式软件的交叉开发环境 v宿主机(宿主机(Host) :是用于开发嵌入式系统的计算:是用于开发嵌入式系统的计算

6、机。一般为机。一般为PC机(或者工作站),具备丰富的软机(或者工作站),具备丰富的软硬件资源,为嵌入式软件的开发提供全过程支持。硬件资源,为嵌入式软件的开发提供全过程支持。 v目标机(目标机(Target):即所开发的嵌入式系统,是嵌:即所开发的嵌入式系统,是嵌入式软件的运行环境,其硬件软件是为特定应用定入式软件的运行环境,其硬件软件是为特定应用定制的。制的。 v在开发过程中,目标机端需接收和执行宿主机发出在开发过程中,目标机端需接收和执行宿主机发出的各种命令如设置断点、读内存、写内存等,将结的各种命令如设置断点、读内存、写内存等,将结果返回给宿主机,配合宿主机各方面的工作。果返回给宿主机,配

7、合宿主机各方面的工作。13嵌入式软件的交叉开发环境嵌入式软件的交叉开发环境 v物理连接和逻辑连接物理连接和逻辑连接 物理连接物理连接是指宿主机与目标机通过物理是指宿主机与目标机通过物理线路连线路连接接在一起,连接方式主要有三种:在一起,连接方式主要有三种:串口串口、以太以太口口和和OCD(On Chip Debug)方式方式如如JTAG、BDM等。等。 物理连接是逻辑连接的基础。物理连接是逻辑连接的基础。 逻辑连接逻辑连接指宿主机与目标机间按某种指宿主机与目标机间按某种通信协议通信协议建立起来的建立起来的通信连接通信连接,目前逐步形成了一些通,目前逐步形成了一些通信协议的标准。信协议的标准。1

8、49.1.3 嵌入式软件实现阶段的开发过程嵌入式软件实现阶段的开发过程 v设计完成后,嵌入式软件的开发进入实现阶设计完成后,嵌入式软件的开发进入实现阶段,可分为三个步骤:生成、调试和固化运段,可分为三个步骤:生成、调试和固化运行。行。 软件的生成软件的生成主要是在宿主机上进行,利用各种主要是在宿主机上进行,利用各种工具完成对应用程序的编辑、交叉编译和链接工具完成对应用程序的编辑、交叉编译和链接工作,工作,生成生成可供调试或固化的可供调试或固化的目标程序目标程序。 调试调试是通过交叉调试器完成软件的调试工作。是通过交叉调试器完成软件的调试工作。调试完成后还需进行必要的测试工作。调试完成后还需进行

9、必要的测试工作。固化运行固化运行是先用一定的工具将应用程序固化到是先用一定的工具将应用程序固化到目标机上,然后启动目标机,在没有任何工具目标机上,然后启动目标机,在没有任何工具干预的情况下应用程序能自动地启动运行。干预的情况下应用程序能自动地启动运行。151. 嵌入式软件生成阶段嵌入式软件生成阶段 v三个过程三个过程 源代码程序的源代码程序的编写编写 编译成各个目编译成各个目标模块标模块 链接成可供下链接成可供下载调试或固化载调试或固化的目标程序的目标程序16交叉编译交叉编译 v把在宿主机上编写的高级语言程序编把在宿主机上编写的高级语言程序编译成可以运行在目标机上的代码,即译成可以运行在目标机

10、上的代码,即在宿主机上能够在宿主机上能够编译生成另一种编译生成另一种CPU(嵌入式微处理器)上的二进制程序(嵌入式微处理器)上的二进制程序。 172. 嵌入式软件的调试嵌入式软件的调试 v交叉调试器交叉调试器 是指是指调试程序和被调试程序运行在不调试程序和被调试程序运行在不同机器上的调试器同机器上的调试器, 调试器通过某种方式能调试器通过某种方式能控制目标机上被调试程序的运行方式,并且控制目标机上被调试程序的运行方式,并且通过调试器能查看和修改目标机上的内存、通过调试器能查看和修改目标机上的内存、寄存器以及被调试程序中的变量等。寄存器以及被调试程序中的变量等。 18嵌入式软件的调试嵌入式软件的

11、调试 交叉调试与非交叉调试的比较交叉调试与非交叉调试的比较 19嵌入式软件的调试嵌入式软件的调试 v交叉调试方式交叉调试方式 Crash and Burn Rom Monitor Rom Emulator ICE(In Circuit Emulator ) OCD(On Chip Debugging) vSimulator方式(非交叉)方式(非交叉)20Crash and Burn 最早的嵌入式应用软件调试方法。最早的嵌入式应用软件调试方法。 1) 在宿主机上编写代码在宿主机上编写代码 2) 反复检查代码,直到编译通过,生成可执行程序反复检查代码,直到编译通过,生成可执行程序 3) 将程序固化

12、(将程序固化(Burn)到目标机的非易失性存储器)到目标机的非易失性存储器(E2PROM、FLASH等)中等)中 4) 启动目标机运行,观察程序是否正常工作启动目标机运行,观察程序是否正常工作 5) 如果程序不能正常工作(如果程序不能正常工作(Crash),则在宿主机上),则在宿主机上反复检查代码,查找问题根源反复检查代码,查找问题根源 6) 改写代码改写代码 7) 重复重复3)6),直到程序正常工作,直到程序正常工作21ROM Monitor vROM Monitor是是被固化且运行在目标被固化且运行在目标机上的一段程序机上的一段程序,负责监控目标机上,负责监控目标机上被调试程序的运行,与宿

13、主机端的调被调试程序的运行,与宿主机端的调试器一起完成对应用程序的调试。试器一起完成对应用程序的调试。v 调试器与调试器与ROM Monitor之间的通信遵之间的通信遵循远程调试协议。循远程调试协议。 22ROM Monitor ROM Monitor调试方式调试方式 23ROM Monitor v在目标机上电或复位后首先执行的就是在目标机上电或复位后首先执行的就是ROM Monitor,它对目标机进行一些必要,它对目标机进行一些必要的初始化的初始化 初始化要求的外围设备,如最基本的串口和用初始化要求的外围设备,如最基本的串口和用于内存刷新的系统计时器芯片;于内存刷新的系统计时器芯片; 初始化

14、用于下载映像的内存系统;初始化用于下载映像的内存系统; 初始化中断控制器和安装中断处理程序。初始化中断控制器和安装中断处理程序。 v初始化自己的程序空间初始化自己的程序空间 v等待宿主机端的命令等待宿主机端的命令 24ROM Monitor vROM Monitor能配合调试器完成:能配合调试器完成: 程序映像下载程序映像下载 对目标机系统内存的读写对目标机系统内存的读写 对寄存器的读写对寄存器的读写 设置和清除不同类型的断点设置和清除不同类型的断点 单步执行指令单步执行指令 复位系统复位系统 等调试功能等调试功能25ROM Monitor v调试过程调试过程 (1)启动目标机,监控器掌握对目

15、标机的控制,等待和)启动目标机,监控器掌握对目标机的控制,等待和调试器建立连接;调试器建立连接; (2)启动调试器,并和监控器建立起通信连接;)启动调试器,并和监控器建立起通信连接; (3)使用调试器将应用程序下载到目标机上的)使用调试器将应用程序下载到目标机上的RAM空空间中;间中; (4)使用调试器进行调试,发出各种调试命令,监控)使用调试器进行调试,发出各种调试命令,监控器解释并执行这些命令,通过目标机上的各种异常来器解释并执行这些命令,通过目标机上的各种异常来获取对目标机的控制,将命令执行结果回传给调试器;获取对目标机的控制,将命令执行结果回传给调试器; (5)如果程序有问题,在调试器

16、的帮助下定位错误;)如果程序有问题,在调试器的帮助下定位错误;修改之后再重新编译链接并下载程序,开始新的调试,修改之后再重新编译链接并下载程序,开始新的调试,如此反复直至程序正确运行为止。如此反复直至程序正确运行为止。 26ROM Monitor 优点优点 1) 提高调试程序的效率提高调试程序的效率 ,缩短开发周期,降,缩短开发周期,降低成本低成本 2) 简单、方便简单、方便 3) 可扩展性强,可支持许多高级调试功能可扩展性强,可支持许多高级调试功能 4) 成本低廉,不需专门的调试硬件支持成本低廉,不需专门的调试硬件支持 5) 几乎所有的交叉调试器都支持这种方式几乎所有的交叉调试器都支持这种方

17、式27ROM Monitor 缺点缺点 1) Debug Monitor需要用需要用Crash and Burn方法开发。方法开发。 2) 当当ROM Monitor占用占用CPU时,应用程序不响应外时,应用程序不响应外部的中断,因此不便调试有时间特性的程序。部的中断,因此不便调试有时间特性的程序。 3) 某些调试功能依赖于某些调试功能依赖于CPU硬件的支持(如硬件断点硬件的支持(如硬件断点功能)功能) 4) ROM Monitor要占用目标机一定数量的资源,如要占用目标机一定数量的资源,如CPU、RAM、ROM和通信设备等资源。和通信设备等资源。 5) 调试环境不同于实际目标环境。调试环境不

18、同于实际目标环境。28仿真开发方式仿真开发方式 v嵌入式应用的开发经常会遭遇缺少目标机环嵌入式应用的开发经常会遭遇缺少目标机环境、缺乏目标机芯片等资源的问题,而开发境、缺乏目标机芯片等资源的问题,而开发过程又不可能停止,因此自然就提出了根据过程又不可能停止,因此自然就提出了根据不同的应用需要,利用仿真器件、仿真环境不同的应用需要,利用仿真器件、仿真环境进行开发的方法。进行开发的方法。硬件仿真开发硬件仿真开发 ROM Emulator ICE OCD v软件仿真开发软件仿真开发29ROM Emulator vROM Emulator是一种用于是一种用于替代目标替代目标机上的机上的ROM芯片芯片的

19、设备,即的设备,即ROM仿真仿真器器。v利用这种设备,目标机可以没有利用这种设备,目标机可以没有ROM芯片,但目标机的芯片,但目标机的CPU可以读取可以读取ROM Emulator设备上设备上ROM芯片的内容:芯片的内容:ROM Emulator设备上的设备上的ROM芯片的芯片的地址可以实时地映射到目标机的地址可以实时地映射到目标机的ROM地址空间,从而仿真(地址空间,从而仿真(Emulation)目标机的目标机的ROM。 30ROM Emulator vROM Emulator的调试方式是一种不的调试方式是一种不完全的调试方式:完全的调试方式:ROM Emulator设设备只是为目标机提供备

20、只是为目标机提供ROM芯片和在芯片和在Target和和Host间建立一条高速的通信间建立一条高速的通信通道,因此它经常和前面两种调试方通道,因此它经常和前面两种调试方式结合起来形成一种完备的调试方式。式结合起来形成一种完备的调试方式。ROM Emulator的典型应用就是和的典型应用就是和ROM Monitor的调试方式相结合的调试方式相结合。 31ROM Emulator v优点优点目标机可以没有目标机可以没有ROM芯片、可以使用芯片、可以使用ROM Emulator提供的提供的ROM空间且不需要用别的空间且不需要用别的工具来写工具来写ROM。 v缺点缺点 目标机必须能支持外部目标机必须能支

21、持外部ROM存储空间,而存储空间,而且由于其通常要和且由于其通常要和ROM Monitor配合使用,配合使用,因此它拥有因此它拥有ROM Monitor的所有缺点。的所有缺点。32ICE vICE(In-Circuit Emulator)是一种用)是一种用于于替代目标机上替代目标机上CPU的设备,即的设备,即在线在线仿真器仿真器。v它比一般的它比一般的CPU有更多的引出线,能有更多的引出线,能够将内部的信号输出到被控制的目标够将内部的信号输出到被控制的目标机。机。ICE上的上的Memory也可以被映射到也可以被映射到用户的程序空间,这样即使目标机不用户的程序空间,这样即使目标机不存在的情形下也

22、可以进行代码的调试。存在的情形下也可以进行代码的调试。 33v连接连接ICE和目标机时,一般是将目标机的和目标机时,一般是将目标机的CPU取下,而取下,而将将ICE的的CPU引出线接到目标机的引出线接到目标机的CPU插槽。插槽。v 用用ICE进行调试时,在进行调试时,在Host端运行的调试器通过端运行的调试器通过ICE来来控制目标机上运行的程序。控制目标机上运行的程序。目标平台目标平台ICE宿主开宿主开发平台发平台ICE调试结构调试结构34ICE 功能特点功能特点 v同时支持同时支持软断点软断点和和硬件断点硬件断点的设置的设置 v设置各种复杂的断点和触发器设置各种复杂的断点和触发器 v实时跟踪

23、目标程序的运行,并可实现选择性的跟踪实时跟踪目标程序的运行,并可实现选择性的跟踪 v支持支持“Time Stamp” v允许用户设置允许用户设置“Timer” v提供提供“Shadow RAM”,能在不中断被调试程序的,能在不中断被调试程序的运行下查看内存和变量即非干扰调试查询运行下查看内存和变量即非干扰调试查询35ICE v适用于:适用于: 1) 调试实时的应用系统调试实时的应用系统 2) 调试设备驱动程序调试设备驱动程序 3) 对硬件进行功能和性能的测试对硬件进行功能和性能的测试 4) 实时性能分析实时性能分析 v缺点:缺点: 1) 价格太昂贵,不利于团队开发价格太昂贵,不利于团队开发 2

24、) 所仿所仿CPU有限有限36OCD vOCD(On Chip Debugging)是)是CPU芯片提供的一种调试功能(芯片提供的一种调试功能(片上调片上调试试),可以认为是一种廉价的),可以认为是一种廉价的ICE功能:功能:OCD的价格只有的价格只有ICE的的20%,但提供,但提供了了ICE 80%的功能。的功能。 37OCD OCD调试结构调试结构 针形连接器针形连接器 为特定处理为特定处理器而建造器而建造 并口、串口并口、串口或网络接口或网络接口 38OCD v调试方法调试方法 1) 将将CPU的模式分为的模式分为一般模式一般模式和和调试模式调试模式 2) 一般模式下,一般模式下, CP

25、U从内存读取指令执行从内存读取指令执行 3)调试模式下,)调试模式下,CPU首先从首先从调试端口调试端口读取指读取指令,通过调试端口可以控制令,通过调试端口可以控制CPU进入和退进入和退出调试模式;出调试模式;Host端的调试器可以直接向端的调试器可以直接向目标机发送要执行的指令,读写目标机的目标机发送要执行的指令,读写目标机的内存和各种寄存器,控制目标程序的运行内存和各种寄存器,控制目标程序的运行以及完成各种复杂的调试功能。以及完成各种复杂的调试功能。39OCD v优点优点 1) 不占用目标机的资源不占用目标机的资源 2) 调试环境和最终的程序运行环境基本一致调试环境和最终的程序运行环境基本

26、一致 3) 支持软硬断点、支持软硬断点、Trace功能功能 4) 精确计量程序的执行时间精确计量程序的执行时间 5) 提供时序分析功能提供时序分析功能40OCD v缺点缺点 1) 调试的实时性不如调试的实时性不如ICE 2) 不支持非干扰调试查询不支持非干扰调试查询 3) CPU必需具有必需具有OCD功能功能41OCD v存在各种实现存在各种实现 BDM(Background Debugging Mode) JTAG(Joint Test Access Group)(主流方式)(主流方式) ARM 、MIPS、PowerPCOnCE(On Chip Emulation)42边界扫描技术(边界扫

27、描技术(JTAG) vJTAG标准测试访问接口与边界扫描结构标准测试访问接口与边界扫描结构(Standard Test Access Port and Boundary Scan Architecture),已被),已被IEEE1149.1标准所采标准所采纳,是面向用户的测试接口。纳,是面向用户的测试接口。 该接口一般由该接口一般由4个引脚组成:个引脚组成: 测试数据输入(测试数据输入(TDI) 测试数据输出(测试数据输出(TDO) 测试时钟(测试时钟(TCK) 测试模式选择引脚(测试模式选择引脚(TMS) 异步测试复位引脚(异步测试复位引脚(TRST,可选)可选)图图3.1643边界扫描技术

28、(边界扫描技术(JTAG) v优点优点 可以通过边界扫描操作测试整个板的电气连接,可以通过边界扫描操作测试整个板的电气连接,特别为表面贴元件提供方便特别为表面贴元件提供方便 各个引脚信号的采样,并可强制引脚输出用以各个引脚信号的采样,并可强制引脚输出用以测试外围芯片测试外围芯片 可以软件下载、执行、调试和控制,为复杂的可以软件下载、执行、调试和控制,为复杂的实时跟踪调试提供路径实时跟踪调试提供路径 可以进行多内核和多处理器的板级和芯片级的可以进行多内核和多处理器的板级和芯片级的调试,通过串接调试,通过串接 ,为芯片制造商提供芯片生产、,为芯片制造商提供芯片生产、测试的途径测试的途径 不占用系统

29、资源,能够调试没有外部总线的芯不占用系统资源,能够调试没有外部总线的芯片,代价非常小片,代价非常小 44边界扫描技术(边界扫描技术(JTAG) v缺点缺点 通过串口依次传递数据,速度比较慢通过串口依次传递数据,速度比较慢 只能进行软件断点级别的调试只能进行软件断点级别的调试 不能完成实时跟踪和多种事件触发等复杂调试不能完成实时跟踪和多种事件触发等复杂调试功能功能 v几种增强版本几种增强版本 ARM芯片的实时调试方案(芯片的实时调试方案(E-TRACE) 背景调试模式背景调试模式BDM 片上仿真片上仿真OnCE 45Nexus标准标准 v提出一个在提出一个在JTAG之上的嵌入式处理器调试之上的嵌

30、入式处理器调试的统一标准的统一标准 v将调试开发分成四级将调试开发分成四级 第一级使用第一级使用JTAG的简单静态调试;的简单静态调试; 第二级支持编程跟踪和实时多任务的跟踪,并第二级支持编程跟踪和实时多任务的跟踪,并允许用户用允许用户用I/O引脚作为多路复用辅助调试口;引脚作为多路复用辅助调试口; 第三级包括处理器运行时的数据写入跟踪和存第三级包括处理器运行时的数据写入跟踪和存储器的读写跟踪;储器的读写跟踪; 第四级增加了存储替换并触发复杂的硬件断点。第四级增加了存储替换并触发复杂的硬件断点。46Nexus标准标准 v通过通过Nexus 标准可以解决以下问题标准可以解决以下问题 调试内部总线

31、没有引出的处理器,如含有片内存储器的芯片调试内部总线没有引出的处理器,如含有片内存储器的芯片 传统在线仿真器无法实现的高速调试传统在线仿真器无法实现的高速调试 深度流水线和有片上深度流水线和有片上Cache的芯片,能够探测具体哪条指令被的芯片,能够探测具体哪条指令被取指和最终执行取指和最终执行 可以稳定地进行多内核处理器的调试可以稳定地进行多内核处理器的调试 47Simulator交叉开发的缺点交叉开发的缺点 v硬件支持硬件支持 必须有目标机或评估板必须有目标机或评估板 v易使用性普通编程人员不熟悉易使用性普通编程人员不熟悉 v廉价性成本高廉价性成本高 v可移植性、可扩展性不高可移植性、可扩展

32、性不高 v团队开发较难团队开发较难 v开发周期较长开发周期较长48Simulatorv一种软件仿真器,在宿主机上创建一个虚拟一种软件仿真器,在宿主机上创建一个虚拟的目标机环境,再将应用系统下载到这个虚的目标机环境,再将应用系统下载到这个虚拟目标机上运行拟目标机上运行/调试。调试。v软件仿真的对象软件仿真的对象 仿真处理器仿真处理器 仿真外设仿真外设 仿真环境仿真环境 v软件仿真的级别软件仿真的级别 指令级仿真开发指令级仿真开发 API级仿真开发级仿真开发49Simulator应用仿真开发环境示意图应用仿真开发环境示意图 图图150Simulator结合了仿真的软件开发过程结合了仿真的软件开发过

33、程 v图图251Simulatorv优点优点 最大好处就是可以不用真正的目标机,可最大好处就是可以不用真正的目标机,可以在目标机环境并不存在的条件下开发目标以在目标机环境并不存在的条件下开发目标机上的应用系统,并且在调试时可以利用机上的应用系统,并且在调试时可以利用Host资源提供更详细的错误诊断信息。资源提供更详细的错误诊断信息。 52Simulatorv缺点缺点 1) 和实际的运行环境差别很大和实际的运行环境差别很大 2) 设备模拟的局限性较大设备模拟的局限性较大 3) 实时特性较差实时特性较差 4) 对对Host的资源要求较高的资源要求较高 v适用范围适用范围 对时间特性没有严格要求、没

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

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

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

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

38、析过程一般通过插桩来完成,插桩可以是在测试环境中嵌入硬件,也可以是在可执行在测试环境中嵌入硬件,也可以是在可执行代码中加入软件,或者是两者的结合。代码中加入软件,或者是两者的结合。 v开发人员通过对分析结果进行总结,可以确开发人员通过对分析结果进行总结,可以确定哪些代码被执行过,哪些代码被遗漏了。定哪些代码被执行过,哪些代码被遗漏了。 v目前常用的覆盖分析工具一般都提供有关功目前常用的覆盖分析工具一般都提供有关功能覆盖、分支覆盖、条件覆盖等信息。能覆盖、分支覆盖、条件覆盖等信息。57测试工具实例:逻辑分析仪测试工具实例:逻辑分析仪 v工作机理:在工作机理:在不打断被测程序运行流不打断被测程序运

39、行流程程的基础上,对程序运行中的相关信的基础上,对程序运行中的相关信息进行采集和分析,然后通过真实再息进行采集和分析,然后通过真实再现程序运行的逻辑流程和分析程序运现程序运行的逻辑流程和分析程序运行数据,帮助用户优化系统设计和解行数据,帮助用户优化系统设计和解决出现的问题。决出现的问题。v与调试工具的对比与调试工具的对比 调试器:照相机调试器:照相机 逻辑分析仪:逻辑分析仪:摄像机摄像机58嵌入式系统的开发嵌入式系统的开发设计与调试设计与调试设计生产编译器链接器调试器IDE操作系统软件测试评估板仿真器逻辑分析仪边界扫描测试仪编程器59测试工具实例:逻辑分析仪测试工具实例:逻辑分析仪 v主要功能

40、:主要功能: 真实再现程序运行流程真实再现程序运行流程 发现系统死锁及软件造成的死机发现系统死锁及软件造成的死机 发现系统内存泄漏发现系统内存泄漏 指导对任务的合理划分指导对任务的合理划分 指导关键路径设计与验证指导关键路径设计与验证 指导合理分配任务堆栈指导合理分配任务堆栈 CPU使用率统计使用率统计 指导合理设计中断服务程序指导合理设计中断服务程序60测试工具实例:逻辑分析仪测试工具实例:逻辑分析仪 嵌入式应用软件运行的逻辑流程嵌入式应用软件运行的逻辑流程 61测试工具实例:逻辑分析仪测试工具实例:逻辑分析仪 系统堆栈使用率分析系统堆栈使用率分析 624. 嵌入式软件的固化运行嵌入式软件的

41、固化运行 v当调试完成之后,程序代码需要被完当调试完成之后,程序代码需要被完全烧入到目标板的非易失性存储器全烧入到目标板的非易失性存储器(如(如ROM或闪存)中,并且在真实的或闪存)中,并且在真实的硬件环境上运行,这个过程叫做固化。硬件环境上运行,这个过程叫做固化。v调试环境与固化环境的区别:调试环境与固化环境的区别: 代码定位不同代码定位不同 初始化部分不同初始化部分不同63嵌入式软件的固化运行嵌入式软件的固化运行 调试环境与固化环境的区别调试环境与固化环境的区别 64嵌入式软件的固化运行嵌入式软件的固化运行 vBoot模块:当应用程序在真实的目标环境下模块:当应用程序在真实的目标环境下运行

42、时将首先执行该程序,它至少由系统加电运行时将首先执行该程序,它至少由系统加电时执行的代码组成。时执行的代码组成。vBoot模块的主要功能:初始化模块的主要功能:初始化CPU环境,使环境,使目标机硬件到已知的状态目标机硬件到已知的状态 初始化芯片的引脚初始化芯片的引脚 初始化系统外部控制寄存器初始化系统外部控制寄存器 初始化基本输入输出设备初始化基本输入输出设备 初始化初始化MMU,包括片选控制寄存器等,包括片选控制寄存器等 执行数据拷贝执行数据拷贝 659.1.4 嵌入式软件开发工具发展趋势嵌入式软件开发工具发展趋势 v向着开放的、集成化的方向发展向着开放的、集成化的方向发展 v具有系统设计、

43、可视化建模、仿真和具有系统设计、可视化建模、仿真和验证功能验证功能 v自动生成代码和文档自动生成代码和文档 v具有更高的灵活性具有更高的灵活性669.2 嵌入式系统开发模式嵌入式系统开发模式 v概述概述 v处理器及硬件开发平台的选定处理器及硬件开发平台的选定 v操作系统选定操作系统选定 v开发环境选定开发环境选定679.2.1 嵌入式系统开发模式概述嵌入式系统开发模式概述 最大特点最大特点:软硬件综合开发。:软硬件综合开发。原因原因:1) 嵌入式产品是软硬件的结合体嵌入式产品是软硬件的结合体2) 软件针对硬件开发、固化,不能进行软件针对硬件开发、固化,不能进行任意修改任意修改 68嵌入式系统的

44、开发嵌入式系统的开发流程流程确定产品需求选择主要芯片确定编程语言选择开发环境RTOS的使用选择开发方案选择开发方案设计与调试测试测试工具与其他辅助设备产品69桌面应用程序的编译和加载过程桌面应用程序的编译和加载过程70嵌入式应用程序的编译和加载过程嵌入式应用程序的编译和加载过程71嵌入式系统开发嵌入式系统开发过程过程 72软硬件协同开发软硬件协同开发 v通常的嵌入通常的嵌入式系统开发式系统开发 v软软/硬件协硬件协同开发同开发739.2.2 处理器及硬件开发平台的选定处理器及硬件开发平台的选定 v应用的类型及应用的类型及I/O接口接口 v主频及功耗主频及功耗 v对不同类型存储器的支持对不同类型

45、存储器的支持 v封装封装 v产品生命力和厂家实力、技术支持及产品生命力和厂家实力、技术支持及第三方软件的支持第三方软件的支持 硬件开发平台的选硬件开发平台的选择择749.2.3 操作系统选定操作系统选定 v选择嵌入式选择嵌入式OS的必要性的必要性 v自建、购买或使用开源软件自建、购买或使用开源软件 v对嵌入式操作系统的功能、性能要求对嵌入式操作系统的功能、性能要求 v与硬件平台和开发工具的关系与硬件平台和开发工具的关系 v行业标准行业标准 v技术支持技术支持 v版税或服务费版税或服务费75操作系统与硬件平台的关系操作系统与硬件平台的关系 v操作系统应支持选定的硬件平台操作系统应支持选定的硬件平

46、台v如果不支持,需考虑移植工作如果不支持,需考虑移植工作 不同类型嵌入式微处理器之间的移植不同类型嵌入式微处理器之间的移植:任:任务上下文切换、时钟、中断等务上下文切换、时钟、中断等 同类型微处理器但不同类型硬件板之间的同类型微处理器但不同类型硬件板之间的移植移植:硬件接口及设备驱动程序:硬件接口及设备驱动程序76操作系统与开发工具的关系操作系统与开发工具的关系 v工具是否能为基于特定操作系统的应工具是否能为基于特定操作系统的应用开发提供最大支持:用开发提供最大支持: 运行库与运行库与OS相结合相结合 提供应用工程创建和管理功能,构建基提供应用工程创建和管理功能,构建基于特定操作系统的应用框架

47、于特定操作系统的应用框架 对操作系统的剪裁与配置对操作系统的剪裁与配置 提供高级调试功能提供高级调试功能 提供配套的应用逻辑分析工具、覆盖测提供配套的应用逻辑分析工具、覆盖测试工具等试工具等77开发环境选定开发环境选定 v对硬件平台的支持对硬件平台的支持v所使用的编程语言所使用的编程语言 C/C+ 汇编语言汇编语言 JAVAv与嵌入式操作系统的关系与嵌入式操作系统的关系789.3 实时软件分析设计方法实时软件分析设计方法 vDARTS(Design Algorithm for Real Time System)分析设计方法分析设计方法v DARTS是结构化分析是结构化分析/结构化设计的结构化设

48、计的扩展扩展v给出了划分任务的方法及定义任务间给出了划分任务的方法及定义任务间接口的机制。接口的机制。79DARTS分析设计方法分析设计方法 v嵌入式实时软件系统的生存周期嵌入式实时软件系统的生存周期 v需求分析与说明需求分析与说明v系统设计系统设计DARTS设计方法设计方法 数据流分析数据流分析 划分任务划分任务 定义任务接口定义任务接口 v任务设计任务设计 v模块构筑模块构筑 v任务与系统集成任务与系统集成80嵌入式实时软件系统的生命周期嵌入式实时软件系统的生命周期 v需求分析与详细说明需求分析与详细说明v系统设计系统设计 任务分解任务分解, 定义任务间接口关系定义任务间接口关系v任务设计

49、任务设计 按模块方式设计每个任务,定义模块间接口按模块方式设计每个任务,定义模块间接口v 模块构筑模块构筑 完成每个模块的详细设计、编码和单元测试完成每个模块的详细设计、编码和单元测试v任务与系统集成任务与系统集成 v系统测试系统测试81实实 例例 说说 明明v控制设备由内部控控制设备由内部控制器和外部控制面制器和外部控制面板组成板组成 v控制器控制六个转控制器控制六个转轴,并与数字轴,并与数字I/O传传感器交互作用。感器交互作用。 v转轴和转轴和I/O由程序控由程序控制制 v该程序由控制面板该程序由控制面板操作启动执行操作启动执行控制面板控制面板 82控制执行过程控制执行过程 v按下按下“上

50、电上电”按钮,系统进入了上电状态。按钮,系统进入了上电状态。 v上电成功后,系统进入了手动状态。此时,操作者上电成功后,系统进入了手动状态。此时,操作者可以通过可以通过程序选择开关程序选择开关选择程序选择程序 v按下按下“运行运行”按钮,则选定的程序开始运行,系统按钮,则选定的程序开始运行,系统转为运行态。转为运行态。 v程序运行中如果按下程序运行中如果按下“停止停止”键,程序被挂起。之键,程序被挂起。之后,操作者可以按下后,操作者可以按下“运行运行”键,使程序恢复执行,键,使程序恢复执行,也可按下也可按下“结束结束”键,结束程序。键,结束程序。 v按下按下“结束结束”键后,系统进入终止态。当

51、程序最终键后,系统进入终止态。当程序最终终止执行时,系统返回手动状态。终止执行时,系统返回手动状态。 83需求分析与说明需求分析与说明 状态变迁图状态变迁图 84系系 统统 设设 计计 v系统设计说明该系统如何被分解成多系统设计说明该系统如何被分解成多个任务,如何定义任务间的关系个任务,如何定义任务间的关系 v任务划分方法任务划分方法 DARTS设计方法设计方法 85DARTS设计方法设计方法 v数据流分析数据流分析每个数据流图都包含:每个数据流图都包含:v变换圈变换圈, 表示系统完成的功能表示系统完成的功能 v箭头箭头,表示变换间的数据流动,表示变换间的数据流动 v数据存储区数据存储区,表示

52、数据的存储场所,表示数据的存储场所v数据字典数据字典,定义了数据流和数据存储区所包,定义了数据流和数据存储区所包含的数据项含的数据项86机器人控制器数据流图机器人控制器数据流图 87DARTS设计方法设计方法 v划分任务就是识别出并行性的功能划分任务就是识别出并行性的功能 v需要考虑的是系统内功能的异步性。需要考虑的是系统内功能的异步性。分析数据流图中的变换,确定哪些变分析数据流图中的变换,确定哪些变换可以并行,哪些变换本质上是顺序换可以并行,哪些变换本质上是顺序的。的。 v一个任务可对应一个变换,也可对应一个任务可对应一个变换,也可对应多个变换。多个变换。88DARTS设计方法设计方法 v划

53、分任务原则划分任务原则 I/O 依赖性依赖性 功能的时间关键性功能的时间关键性计算需求计算需求 功能内聚功能内聚时间内聚时间内聚 周期执行周期执行89I/O 依赖性依赖性 v如果变换依赖于如果变换依赖于I/O,速度受限,速度受限I/O,可独立成任务,可独立成任务 v在系统中创建与在系统中创建与I/O设备数目相当的设备数目相当的I/O任务任务 vI/O任务只实现与设备相关的代码任务只实现与设备相关的代码 vI/O任务的执行只受限于任务的执行只受限于I/O设备的速度,而不是处设备的速度,而不是处理器理器 v在任务中分离设备相关性在任务中分离设备相关性90功能的时间关键性功能的时间关键性 v将有时间

54、关键性(将有时间关键性(deadline)的功能分离出来,)的功能分离出来, 组成独立运行的任务组成独立运行的任务 v 赋予这些任务高的优先级,以满足对时间的需赋予这些任务高的优先级,以满足对时间的需要要91计算需求计算需求 v计算量大的功能占用计算量大的功能占用CPU的时间多,把计算功能捆的时间多,把计算功能捆绑成任务,以消耗绑成任务,以消耗CPU的剩余时间的剩余时间 v赋予计算任务较低优先级赋予计算任务较低优先级, 能被高优先级的任务抢能被高优先级的任务抢占,保持高优先级的任务是轻量级的占,保持高优先级的任务是轻量级的 v多个计算任务可安排成同优先级,按时间片循环轮多个计算任务可安排成同优先级,按时间片循环轮转转92功能内聚功能内聚 v将紧密相关的功能变换组成一个任务,减少通信的将紧密相关的功能变换组成一个任务,减少通信的开销开销 v把每个变换都作为同一任务中一个个独立的模块,把每个变换都作为同一任务中一个个独立的模块,不仅保证了模块级的功能内聚,也保证了任务级的不仅保证了模块级的功能内聚,也保证了任务级的功能内聚功能内聚93时间内聚时间内聚v将在同一时间内完成的各功能(即使这些功能是不将在同一时间内完成的各功能(即使这些功能是不相关的)形成一个任务相关的)形成一个任务 v功能组的各功能是由相

温馨提示

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

评论

0/150

提交评论