嵌入式系统软件的开发工具

上传人:huo****ian 文档编号:252955627 上传时间:2024-11-26 格式:PPT 页数:109 大小:2.02MB
收藏 版权申诉 举报 下载
嵌入式系统软件的开发工具_第1页
第1页 / 共109页
嵌入式系统软件的开发工具_第2页
第2页 / 共109页
嵌入式系统软件的开发工具_第3页
第3页 / 共109页
资源描述:

《嵌入式系统软件的开发工具》由会员分享,可在线阅读,更多相关《嵌入式系统软件的开发工具(109页珍藏版)》请在装配图网上搜索。

1、Click to edit Master title style,,Click to edit Master text styles,,Second level,,Third level,,Fourth level,,Fifth level,,*,嵌入式系统及应用,第九章,嵌入式系统软件的开发,主要内容,嵌入式软件开发工具,,嵌入式系统开发模式,,实时软件分析设计方法,第一节 嵌入式软件开发工具,嵌入式软件开发工具的分类,,嵌入式软件的交叉开发环境,,嵌入式软件实现阶段的开发过程,,嵌入式软件开发工具的发展趋势,嵌入式软件开发工具,“,工欲善其事,必先利其器,”,,,,嵌入式软件开发工具的,

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

3、护工具等,主要嵌入式软件开发工具产品,Requirement,,Analysis,Software,,Design,Coding,Test,Release,Phases,TAU,ObjectGeode,Rational Rose,,RealTime,Rhapsody,Tornado,pRISM+,Spectra,Win CE Platform,,Builder,CodeWarrior,Xray Debugger,Logiscope,CodeTEST,LambdaTOOL,嵌入式软件开发工具的分类,嵌入式软件的开发可以分为以下几种 :,,编写简单的板级测试软件,主要是辅助硬件的调试,,开发基本的

4、驱动程序,,开发特定嵌入式操作系统的驱动程序(板级支持包),,开发嵌入式系统软件,如:嵌入式操作系统等,,开发应用软件,嵌入式软件开发工具的分类,从以上嵌入式软件开发分类来看,嵌入式软件开发工具可以分为:,,与嵌入式,OS相关的开发工具,用于开发:,,基于嵌入式,OS的应用,,部分驱动程序等,,与嵌入式,OS无关的开发工具,用于开发:,,基本的驱动程序,,辅助硬件调试程序,,系统软件等,嵌入式软件的交叉开发环境,交叉开发环境,是指用于嵌入式软件开发的所有工具软件的集合,一般包括:,,文本编辑器,,交叉编译器,,交叉调试器,,仿真器,,下载器等,,交叉开发环境由,宿主机,和,目标机,组成,宿主机

5、与目标机之间在,物理连接,的基础上建立起,逻辑连接,。,交叉开发环境,,目标机硬件,,目标机应用系统,,—,应用软件,,—,应用中间件,,—,目标机,OS,,宿主机硬件,,宿主机,OS,,调,试,代,理,,运,行,库,,宿主机开发环境,,—,编辑,,—,编译,,—,连接,,—,调试,运行平台,Target,开发平台,Host,DownLoad,嵌入式软件的交叉开发环境,宿主机(,Host),:是用于开发嵌入式系统的计算机。一般为,PC机(或者工作站),具备丰富的软硬件资源,为嵌入式软件的开发提供全过程支持。,,目标机(,Target),:即所开发的嵌入式系统,是嵌入式软件的运行环境,其硬件软件

6、是为特定应用定制的。,,在开发过程中,目标机端需接收和执行宿主机发出的各种命令如设置断点、读内存、写内存等,将结果返回给宿主机,配合宿主机各方面的工作。,嵌入式软件的交叉开发环境,物理连接和逻辑连接,,物理连接,是指宿主机与目标机通过物理线路连接在一起,连接方式主要有三种:,,串口,,以太口,,OCD,(,On Chip Debug,)方式,如,JTAG,、,BDM,等,,物理连接是逻辑连接的基础。,,逻辑连接,指宿主机与目标机间按某种通信协议建立起来的通信连接,目前逐步形成了一些通信协议的标准。,嵌入式软件实现阶段的开发过程,设计完成后,嵌入式软件的开发进入实现阶段,可分为三个步骤:生成、调

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

8、目标机上的代码,即在宿主机上能够编译生成另一种,CPU(嵌入式微处理器)上的二进制程序。,嵌入式软件的调试,交叉调试器,,是指调试程序和被调试程序运行在不同机器上的调试器,,调试器通过某种方式能控制目标机上被调试程序的运行方式,,通过调试器能查看和修改目标机上的内存、寄存器以及被调试程序中的变量等,,交叉调试,,,非交叉调试,,调试器和被调试程序运行在不同的计算机上,,调试器和被调试程序运行在同一台计算机上,,可独立运行,无需操作系统支持,,需要操作系统的支持,,被调试程序的装载由调试器完成,,被调试程序的装载由专门的,Loader程序完成,,需要通过外部通信的方式来控制被调试程序,,不需要通

9、过外部通信的方式来控制被调试程序,,可以直接调试不同指令集的程序,,只能直接调试相同指令集的程序,,,嵌入式软件的调试,交叉调试方式,,Crash and Burn,,Rom Monitor,,Rom Emulator,,In Circuit Emulator,,On Chip Debugging,,Simulator方式(非交叉),Crash and Burn,最早的嵌入式应用软件调试方法。,在宿主机上编写代码,反复检查代码,直到编译,,通过,生成可执行程序,将程序固化(,Burn)到目标机的非易失,,性存储器(E2PROM、FLASH等)中,在宿主机上反复检查,,码,查找问题根源,改写代码

10、,启动目标机运行,观,,察程序是否正常工作,,,,,,N,Y,结束,ROM Monitor,ROM Monitor是被固化且运行在目标机上的一段程序,负责监控目标机上被调试程序的运行,与宿主机端的调试器一起完成对应用程序的调试。,,调试器与ROM Monitor之间的通信遵循远程调试协议。,ROM Monitor调试方式,,调试器,,,,Windows或其它桌面操作系统,,,PC机等硬件,嵌入式,,硬件,,监控程序,(ROM Monitor),,,被调试程序,宿主机,目标机,逻辑上的连接,物理上的连接,ROM Monitor,在目标机上电或复位后首先执行的就是,ROM Monitor,它对目标

11、机进行一些必要的初始化,,初始化要求的外围设备,如最基本的串口和用于内存刷新的系统计时器芯片;,,初始化用于下载映像的内存系统;,,初始化中断控制器和安装中断处理程序。,,初始化自己的程序空间,,等待宿主机端的命令,ROM Monitor,ROM Monitor能配合调试器完成:,,程序映像下载,,对目标机系统内存的读写,,对寄存器的读写,,设置和清除不同类型的断点,,单步执行指令,,复位系统,,…等调试功能,ROM Monitor,调试过程,,(,1)启动目标机,监控器掌握对目标机的控制,等待和调试器建立连接;,,(2)启动调试器,并和监控器建立起通信连接;,,(3)使用调试器将应用程序下载

12、到目标机上的RAM空间中;,,(4)使用调试器进行调试,发出各种调试命令,监控器解释并执行这些命令,通过目标机上的各种异常来获取对目标机的控制,将命令执行结果回传给调试器;,,(5)如果程序有问题,在调试器的帮助下定位错误;修改之后再重新编译链接并下载程序,开始新的调试,如此反复直至程序正确运行为止。,ROM Monitor,优点,,提高调试程序的效率 ,缩短开发周期,降低成本,,简单、方便,,可扩展性强,可支持许多高级调试功能,,成本低廉,不需专门的调试硬件支持,,几乎所有的交叉调试器都支持这种方式,,ROM Monitor,缺点,,Debug Monitor,需要用,Crash and B

13、urn,方法开发。,,当,ROM Monitor,占用,CPU,时,应用程序不响应外部的中断,因此不便调试有时间特性的程序。,,某些调试功能依赖于,CPU,硬件的支持(如硬件断点功能),,ROM Monitor,要占用目标机一定数量的资源,如,CPU,、,RAM,、,ROM,和通信设备等资源。,,调试环境不同于实际目标环境。,仿真开发方式,,嵌入式应用的开发经常会遭遇缺少目标机环境、缺乏目标机芯片等资源的问题,而开发过程又不可能停止,因此自然就提出了根据不同的应用需要,利用仿真器件、仿真环境进行开发的方法。,硬件仿真开发,,ROM Emulator,,ICE,,OCD,,软件仿真开发,ROM

14、Emulator,,ROM Emulator是一种用于替代目标机上的ROM芯片的设备,即ROM仿真器。利用这种设备,目标机可以没有ROM芯片,但目标机的CPU可以读取ROM Emulator设备上ROM芯片的内容:ROM Emulator设备上的ROM芯片的地址可以实时地映射到目标机的ROM地址空间,从而仿真(Emulation)目标机的ROM。,ROM Emulator,,ROM Emulator的调试方式是一种不完全的调试方式:ROM Emulator设备只是为目标机提供ROM芯片和在Target和Host间建立一条高速的通信通道,因此它经常和前面两种调试方式结合起来形成一种完备的调试方式

15、。ROM Emulator的典型应用就是和ROM Monitor的调试方式相结合。,ROM Emulator,优点,,目标机可以没有ROM芯片、可以使用ROM Emulator提供的ROM空间且不需要用别的工具来写ROM。,,缺点,,目标机必须能支持外部ROM存储空间,而且由于其通常要和ROM Monitor配合使用,因此它拥有ROM Monitor的所有缺点。,ICE,ICE(In-Circuit Emulator)是一种用于替代目标机上CPU的设备,即在线仿真器。,,它比一般的CPU有更多的引出线,能够将内部的信号输出到被控制的目标机。,,ICE上的Memory也可以被映射到用户的程序空间

16、,这样即使目标机不存在的情形下也可以进行代码的调试。,,,宿主开,,发平台,,,目标平台,,ICE,ICE调试结构,连接,ICE和目标机时,一般是将目标机的CPU取下,而将ICE的CPU引出线接到目标机的CPU插槽。,,用ICE进行调试时,在Host端运行的调试器通过ICE来控制目标机上运行的程序。,ICE,ICE,功能特点,,同时支持,软断点,和,硬件断点,的设置,,设置各种复杂的断点和触发器,,实时跟踪目标程序的运行,并可实现选择性的跟踪,,支持,“,Time Stamp,”,,,允许用户设置,“,Timer,”,,,提供,“,Shadow RAM,”,,能在不中断被调试程序的运行下查看内

17、存和变量即非干扰调试查询,ICE,适用于:,,调试实时的应用系统,,调试设备驱动程序,,对硬件进行功能和性能的测试,,实时性能分析,,缺点:,,价格太昂贵,不利于团队开发,,所仿,CPU,有限,OCD,OCD(On Chip Debugging)是CPU芯片提供的一种调试功能(片上调试),可以认为是一种廉价的ICE功能:OCD的价格只有ICE的20%,但提供了ICE 80%的功能。,OCD调试结构,,调试器,,,,Windows或其它桌面操作系统,,,PC机等硬件,,被调试程序,OCD接口,嵌入式硬件,宿主机,目标机,逻辑上的连接,物理连接,仿真器,针形连接器,并口、串口或网络接口,为特定处理

18、器而建造,OCD,调试方法,,将,CPU,的模式分为,一般模式,和,调试模式,,一般模式下,,CPU,从内存读取指令执行,,调试模式下,,CPU,首先从,调试端口,读取指令,通过调试端口可以控制,CPU,进入和退出调试模式;,Host,端的调试器可以直接向目标机发送要执行的指令,读写目标机的内存和各种寄存器,控制目标程序的运行以及完成各种复杂的调试功能。,OCD,优点,,不占用目标机的资源,,调试环境和最终的程序运行环境基本一致,,支持软硬断点、,Trace,功能,,精确计量程序的执行时间,,提供时序分析功能,OCD,缺点,,调试的实时性不如,ICE,,不支持非干扰调试查询,,CPU,必需具有

19、,OCD,功能,OCD,存在各种实现,,BDM,(,Background Debugging Mode,),,JTAG,(,Joint Test Access Group,)(主流方式),,OnCE,(,On Chip Emulation,),,各种,OCD仿真器实例,边界扫描技术(,JTAG),,JTAG,——,标准测试访问接口与边界扫描结构(,Standard Test Access Port and Boundary Scan Architecture),已被IEEE1149.1标准所采纳,是面向用户的测试接口。,,该接口一般由4个引脚组成:,,测试数据输入(,TDI),,测试数据输出(

20、TDO),,测试时钟(TCK),,测试模式选择引脚(TMS),,异步测试复位引脚(TRST,可选),边界扫描技术(,JTAG),优点,,可以通过边界扫描操作测试整个板的电气连接,特别为表面贴元件提供方便,,各个引脚信号的采样,并可强制引脚输出用以测试外围芯片,,可以软件下载、执行、调试和控制,为复杂的实时跟踪调试提供路径,,可以进行多内核和多处理器的板级和芯片级的调试,通过串接 ,为芯片制造商提供芯片生产、测试的途径,,不占用系统资源,能够调试没有外部总线的芯片,代价非常小,边界扫描技术(,JTAG),缺点,,通过串口依次传递数据,速度比较慢,,只能进行软件断点级别的调试,,不能完成实时跟踪和

21、多种事件触发等复杂调试功能,,几种增强版本,,ARM芯片的实时调试方案(E-TRACE),,背景调试模式BDM,,片上仿真OnCE,Nexus标准,,提出一个在,JTAG之上的嵌入式处理器调试的统一标准,,将调试开发分成四级,,第一级使用,JTAG的简单静态调试;,,第二级支持编程跟踪和实时多任务的跟踪,并允许用户用I/O引脚作为多路复用辅助调试口;,,第三级包括处理器运行时的数据写入跟踪和存储器的读写跟踪;,,第四级增加了存储替换并触发复杂的硬件断点。,Nexus标准,通过,Nexus 标准可以解决以下问题,,调试内部总线没有引出的处理器,如含有片内存储器的芯片,,传统在线仿真器无法实现的高

22、速调试,,深度流水线和有片上,Cache的芯片,能够探测具体哪条指令被取指和最终执行,,可以稳定地进行多内核处理器的调试,Simulator,交叉开发方式存在如下缺点:,,硬件支持,必须有目标机或评估板,,易使用性,普通编程人员不熟悉,,廉价性,成本高,,可移植性、可扩展性,不高,,团队开发,较难,,开发周期,较长,Simulator,一种软件仿真器,在宿主机上创建一个虚拟的目标机环境,再将应用系统下载到这个虚拟目标机上运行/调试。,,软件仿真的对象,,仿真处理器,,仿真外设,,仿真环境,,软件仿真的级别,,指令级仿真开发,,API级仿真开发,应用仿真开发环境示意图,结合了仿真的软件开发过程,

23、Simulator,优点,,最大好处就是可以不用真正的目标机,可以在目标机环境并不存在的条件下开发目标机上的应用系统,并且在调试时可以利用Host资源提供更详细的错误诊断信息。,Simulator,缺点,,和实际的运行环境差别很大,,设备模拟的局限性较大,,实时特性较差,,对,Host,的资源要求较高,,适用范围,,,对时间特性没有严格要求、没有特殊外设、只需要验证逻辑正确的应用程序。,嵌入式软件的测试,测试工具,:能够用来辅助测试的工具,主要用来支持测试人员的工作,本身不能直接用来进行测试。测试工具一般都是通用工具,测试人员应该根据实际情况对它们进行适当的调整。,,嵌入式软件测试中经常用到的

24、测试工具有:,,内存分析工具,,性能分析工具,,覆盖分析工具,,缺陷跟踪工具等,嵌入式软件的测试,内存分析工具,,,嵌入式系统的内存资源通常是受限的,内存分析工具可以用来处理在进行动态内存分配时产生的缺陷。当动态分配的内存被错误地引用时,产生的错误通常难以再现,出现的失效难以追踪,使用内存分析工具可以很好地检测出这类缺陷。,,目前常用的内存分析工具有软件和硬件两种:,,基于软件的内存分析工具可能会对代码的执行性能带来很大影响,从而影响系统的实时性;,,基于硬件的内存分析工具对系统性能影响小,但价格昂贵,并且只能在特定的环境中使用。,,嵌入式软件的测试,性能分析工具,,,嵌入式系统的性能通常是一

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

26、覆盖、分支覆盖、条件覆盖等信息。,覆盖分析工具实例,测试工具实例:逻辑分析仪,工作机理:在,不打断被测程序运行流程,的基础上,对程序运行中的相关信息进行采集和分析,然后通过真实再现程序运行的逻辑流程和分析程序运行数据,帮助用户优化系统设计和解决出现的问题。,,与调试工具的对比,,调试器:照相机,,逻辑分析仪:,摄像机,测试工具实例:逻辑分析仪,主要功能:,,真实再现程序运行流程,,发现系统死锁及软件造成的死机,,发现系统内存泄漏,,指导对任务的合理划分,,指导关键路径设计与验证,,指导合理分配任务堆栈,,CPU使用率统计,,指导合理设计中断服务程序,测试工具实例:逻辑分析仪,嵌入式应用软件运行

27、的逻辑流程,测试工具实例:逻辑分析仪,系统堆栈使用率分析,嵌入式软件的固化运行,当调试完成之后,程序代码需要被完全烧入到目标板的非易失性存储器(如,ROM或闪存)中,并且在真实的硬件环境上运行,这个过程叫做固化。,,调试环境与固化环境的区别:,,代码定位不同,,初始化部分不同,嵌入式软件的固化运行,,阶段,,,调试环境,,,固化环境,,编译,,目标文件需要调试信息,,目标文件不需要调试信息,,链接,,应用系统目标代码不需要,Boot模块,此模块已由目标板上的监控器程序实现。,,应用系统目标代码必须以,Boot模块作为入口模块。,,定位,,程序的所有代码段、数据段都依次被定位到调试空间的,RAM

28、中。,,程序的各逻辑段按照其不同的属性分别定位到非易失性存储空间(,ROM)或RAM中。,,下载,,宿主机上的调试器读入被调试文件,并将其下载到目标机上的调试空间中,目标机掉电后所有信息全部丢失。,,在宿主机上利用固化工具将可固化的应用程序写入目标机的非易失性存储器中,目标机掉电后信息不丢失。,,运行,,被调试程序在目标监控器的控制下运行,并与后者共享某些资源,如,CPU资源、RAM资源以及通信设备(如串口、网口等)资源。,,程序在真实的目标硬件环境上运行,,,嵌入式软件的固化运行,Boot模块:当应用程序在真实的目标环境下运行时将首先执行该程序,它至少由系统加电时执行的代码组成。,,Boot

29、模块的主要功能:初始化CPU环境,使目标机硬件到已知的状态,,初始化芯片的引脚,,初始化系统外部控制寄存器,,初始化基本输入输出设备,,初始化,MMU,包括片选控制寄存器等,,执行数据拷贝,嵌入式软件开发工具发展趋势,向着开放的、集成化的方向发展,,具有系统设计、可视化建模、仿真和验证功能,,自动生成代码和文档,,具有更高的灵活性,,第二节 嵌入式系统开发模式,概述,,处理器及硬件开发平台的选定,,操作系统选定,,开发环境选定,嵌入式系统开发模式概述,最大特点:,软硬件综合开发。,,原因:,嵌入式产品是软硬件的结合体,,软件针对硬件开发、固化,不能进行任意修改,,嵌入式系统开发过程,,系统定

30、义时期,符合要求,,硬件设计制作,,软件设计实现,,软硬件集成,,功能性能测试,产品,,Yes,,系统总体设计,,No,,系统总体设计,,软,硬,件,划,分,,系,统,总,体,框,架,,处,理,器,选,定,,操,作,系,统,选,定,,开,发,环,境,选,定,硬件设计制作,,硬件概要设计,,硬件详细设计,,硬件制作,,硬件测试,,功能模块图设计,,逻辑电路图设计,,PCB,设计与制作,,PCB,测试,软件设计实现,,软件概要设计,,软件详细设计,,软件实现,,软件测试,软硬件协同开发,通常的嵌入式系统开发,,,,软/硬件协同开发,,嵌入式,,软件开发,嵌入式,,硬件开发,嵌入式系统,,集成、测试

31、、验证,嵌入式软件开发,嵌入式硬件开发,嵌入式系统,,协同设计、测试、验证,处理器及硬件开发平台的选定,选择依据:,,应用的类型及,I/O接口,,主频及功耗,,对不同类型存储器的支持,,封装,,产品生命力和厂家实力、技术支持及第三方软件的支持,,硬件开发平台的选择,操作系统选定,选择依据:,,选择嵌入式,OS的必要性,,自建、购买或使用开源软件,,对嵌入式操作系统的功能、性能要求,,与硬件平台和开发工具的关系,,行业标准,,技术支持,,版税或服务费,操作系统与硬件平台的关系,操作系统应支持选定的硬件平台,,如果不支持,需考虑移植工作,,不同类型嵌入式微处理器之间的移植,:任务上下文切换、时钟、

32、中断等,,同类型微处理器但不同类型硬件板之间的移植,:硬件接口及设备驱动程序,操作系统与开发工具的关系,工具是否能为基于特定操作系统的应用开发提供最大支持:,,运行库与,OS相结合,,提供应用工程创建和管理功能,构建基于特定操作系统的应用框架,,对操作系统的剪裁与配置,,提供高级调试功能,,提供配套的应用逻辑分析工具、覆盖测试工具等,开发环境及工具选定,对硬件平台的支持,,所使用的编程语言,,C/C++,,汇编语言,,JAVA,,……,,与嵌入式操作系统的关系,第三节 实时软件分析设计方法,DARTS分析设计方法,,DARTS分析设计方法,嵌入式实时软件系统的生存周期,,需求分析与说明,,系

33、统设计-,DARTS设计方法,,数据流分析,,划分任务,,定义任务接口,,任务设计,,模块构筑,,任务与系统集成,嵌入式实时软件系统的生命周期,需求分析与详细说明,,系统设计,,任务分解, 定义任务间接口关系,,任务设计,,按模块方式设计每个任务,定义模块间接口,,模块构筑,,完成每个模块的详细设计、编码和单元测试,,任务与系统集成,,系统测试,实 例 说 明,——机器人控制器系统,上电,,手动,,停止,,结束,,断电,,运行,,,程序选择,控制面板,控制设备由内部控制器和外部控制面板组成,,控制器控制六个转轴,并与数字,I/O,传感器交互作用。,,转轴和,I/O,由程序控制,,该程序由控制面

34、板操作启动执行,按下,“,上电,”,按钮,系统进入了上电状态。,,上电成功后,系统进入了手动状态。此时,操作者可以通过,程序选择开关,选择程序,,按下,“,运行,”,按钮,则选定的程序开始运行,系统转为运行态。,,程序运行中如果按下,“,停止,”,键,程序被挂起。之后,操作者可以按下,“,运行,”,键,使程序恢复执行,也可按下,“,结束,”,键,结束程序。,,按下,“,结束,”,键后,系统进入终止态。当程序最终终止执行时,系统返回手动状态。,控制执行过程,需求分析与说明,,断电态,,通电态,,手动态,,,运行态,,终止态,,挂起态,上电,上电 成功,断电,启动,程序,,选择,程序 终止,

35、结束,启动,停止,状态变迁图,系 统 设 计,系统设计说明该系统如何被分解成多个任务,如何定义任务间的关系,,,任务划分方法,——,DARTS设计方法,,DARTS设计方法,,数据流分析:每个数据流图都包含:,,变换圈,, 表示系统完成的功能,,箭头,,表示变换间的数据流动,,数据存储区,,表示数据的存储场所,,数据字典,,定义了数据流和数据存储区所包含的数据项,机器人控制器数据流图,程序,,面板输入有效,,性检查,,解释程序,,各语句,,读传,,感器,,处理面板输入,,处理,,I/O命令,,处理动,,作命令,,向传感,,器输出,,输出动作,,轴数据,,接收,,确认,,输出到,,面板,,轴控制

36、器,,读面板,,输入,按下,,按钮,面板输入,有效的,,面板输入,运行,,开始 结束,动作,,命令,动作,,确认,I/O,,命令,传感器值,,输入,传感器输入,传感器,,输出,输出,面板,,输出,显示灯,运行,,停止,,重启动,轴块,轴确认,轴输入,轴输出,动作块,划分任务就是识别出并行性的功能,,需要考虑的是系统内功能的异步性。分析数据流图中的变换,确定哪些变换可以并行,哪些变换本质上是顺序的。,,一个任务可对应一个变换,也可对应多个变换。,DARTS设计方法,划分任务原则,,I/O 依赖性,,功能的时间关键性,,计算需求,,功能,内聚,,时间内聚,,周期执行,DARTS设计方法,,I/O

37、 依赖性,,Device,I/O Task,App.Task,如果变换依赖于,I/O,,速度受限,I/O,,可独立成任务,,在系统中创建与I/O设备数目相当,的,I/O任务,,I/O任务只实现与设备相关的代码,,I/O任务的执行只受限于I/O设备的速度,而不是处理器,,在任务中分离设备相关性,功能的时间关键性,将有时间关键性(deadline)的功能分离出来, 组成独立运行的任务,,赋予这些任务高的优先级,以满足对时间的需要,event 1,event 2,Task 1,Task 2,Task 3,Task 3,deadline 1,deadline 2,计算量,大的,功能占用,CPU的时间多

38、,,把计算功能,捆绑成任务,,以消耗CPU的剩余时间,,赋予计算任务,较低优先级, 能被高优先级的任务抢占,,保持高优先级的任务是轻量级的,,多个计算任务可安排成同优先级,按时间片循环轮转,,计算需求,功能内聚,将紧密相关的功能变换,组成一个任务,减少通信的开销,,把每个变换都作为同一任务中一个个独立的模块,不仅保证了模块级的功能内聚,也保证了任务级的功能内聚,,,event 1,F1(x) + F3(x),event 2,F2(x),时间内聚,将在同一时间内完成的各功能(即使这些功能是不相关的)形成一个任务,,功能组的各功能是由相同的外部事件驱动的(如时钟等),,这样每次任务接收到一个事件,

39、它们都可以同时执行,,由于减少了任务调度及切换的次数,减少了系统的开销,,Clock Tick,event,F1(x) + F2(y)+F3(z),F4(x)+F5(y),周期执行,一个,需要周期执行的变换可以作为一个独立的任务,按一定的时间间隔被激活,,将在相同周期内执行的各功能组成一个任务,,频率高的任务赋予高优先级,F1,F2,F1,10HZ,10HZ,15HZ,15HZ,F2,I/O,时间,,内聚,功能,,内聚,时间,,内聚,,定义任务接口,,任务间通信模块,TCM(,T,ask,C,ommunication,M,odule),,任务同步模块TSM(,T,ask,S,ynchroniz

40、ation,M,odule),DARTS设计方法,消息通信模块,,信息隐藏模块,,任务间通信模块,数据,,存储区,,写数据,,读数据,,读数据,任务,A,任务,B,,信息隐藏模块,,任务同步模块,源,S:发事件信号(E),S,目标,D:等待事件(E),D,,,任务设计,任务体系结构:,详细定义任务包含的子模块和模块间的关系,,任务执行流程:,尽可能详细地描述任务的处理过程,,任务内数据结构,,任务内模块间接口,详细说明系统中各任务的设计考虑和执行流程,以利于程序员编制程序。,任务设计,,任务设计,,模块构筑,系统和任务设计完成后,进行每个模块的详细设计,直到每个具体的函数,,在单元测试前不必编

41、完模块全部程序,可以分阶段编码和测试,,模块的详细设计应一气呵成,避免系统以非结构化方式形成,函数设计,函数描述,给出对该函数的简要描述,说明设计目的、意义以及特点,,功能,说明该函数应具有的功能,可采用,IPO,图(输入一处理一输出图)形式,,性能,说明对该函数的性能要求,包括精度、灵活性和时间特性等,,输入,定义每个输入项的特性,包括名称、标识、数据类型和格式、取值范围、输入方式、数据来源、保密方式等,,输出,定义每个输入项的特性,特征同输入,算法,详细说明本函数所选用的算法,具体的计算公式和计算步骤,,流程,用流程图辅以必要的说明来表示本函数的逻辑流程,,接口,说明本函数与其他函数的调用关系,包括说明参数赋值和调用方式以及相关数据结构(如数据库、文件)。,,存储分配,说明本函数的存储分配,,限制条件,说明本函数运行所受限制,,测试计划,说明对本函数的测试计划,包括技术要求、输入数据、预期结果、人员安排等,函数设计,任务与系统集成,模块逐个连接、测试以构成任务,,任务被逐个连接和测试形成最终系统,,可分两步集成,,在宿主机上模拟集成(软集成),,在目标机上集成,谢谢!,

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

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  sobing.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!