最新嵌入式系统与软件5PPT课件

上传人:汽*** 文档编号:567650566 上传时间:2024-07-21 格式:PPT 页数:93 大小:1.23MB
返回 下载 相关 举报
最新嵌入式系统与软件5PPT课件_第1页
第1页 / 共93页
最新嵌入式系统与软件5PPT课件_第2页
第2页 / 共93页
最新嵌入式系统与软件5PPT课件_第3页
第3页 / 共93页
最新嵌入式系统与软件5PPT课件_第4页
第4页 / 共93页
最新嵌入式系统与软件5PPT课件_第5页
第5页 / 共93页
点击查看更多>>
资源描述

《最新嵌入式系统与软件5PPT课件》由会员分享,可在线阅读,更多相关《最新嵌入式系统与软件5PPT课件(93页珍藏版)》请在金锄头文库上搜索。

1、嵌入式系统与软件嵌入式系统与软件5 5嵌入式软件运行流程嵌入式软件运行流程上电复位上电复位系统升级系统升级引导引导/ /升级系统升级系统系统初始化系统初始化应用初始化应用初始化多任务应用多任务应用板级初始化板级初始化远程升级远程升级本地升级本地升级2嵌入式软件开发工具嵌入式软件开发工具 l嵌入式软件开发工具的集成度和可用性将直接关系嵌入式软件开发工具的集成度和可用性将直接关系到到嵌入式系统嵌入式系统的开发效率。的开发效率。l根据不同的阶段,嵌入式软件开发工具可以分为根据不同的阶段,嵌入式软件开发工具可以分为:- - 需求分析工具(需求分析工具(Requirement Analysis Tool

2、sRequirement Analysis Tools)- - 软件设计工具软件设计工具(Software Design Tools)(Software Design Tools)- - 编程、调试工具编程、调试工具(Coding Tools)(Coding Tools)- - 测试工具测试工具(Testing Tools)(Testing Tools)- - 配置管理工具、维护工具等配置管理工具、维护工具等 9l嵌入式软件的开发可以分为以下几种嵌入式软件的开发可以分为以下几种 :编编写写简简单单的的板板级级测测试试软软件件,主主要要是是辅辅助助硬硬件件的调试的调试 ) 开发基本的驱动程序开发

3、基本的驱动程序 开开发发特特定定嵌嵌入入式式操操作作系系统统的的驱驱动动程程序序(板板级级支持包)支持包) 开开发发嵌嵌入入式式系系统统软软件件,如如:嵌嵌入入式式操操作作系系统统等等 开发应用软件开发应用软件 嵌入式软件开发工具嵌入式软件开发工具 10l从从以以上上嵌嵌入入式式软软件件开开发发分分类类来来看看,嵌嵌入入式式软件开发工具可以分为:软件开发工具可以分为:与与嵌嵌入入式式OSOS相相关关的的开开发发工工具具,用用于于开开发发基基 于嵌入式于嵌入式OSOS的应用和部分的驱动程序等。的应用和部分的驱动程序等。与与嵌嵌入入式式OSOS无无关关的的开开发发工工具具,用用于于开开发发基基本本

4、的的驱动程序、辅助硬件调试,系统软件的开发等。驱动程序、辅助硬件调试,系统软件的开发等。 嵌入式软件开发工具嵌入式软件开发工具 11主要嵌入式软件开发工具产品主要嵌入式软件开发工具产品RequirementAnalysisSoftwareDesignCodingTestReleasePhasesTAUObjectGeodeRationalRoseRealTimeRhapsodyTornadoLambdaTOOLpRISM+SpectraWinCEPlatformBuilderCodeWarriorXrayDebuggerLogiscopeCodeTEST12集成开发环境集成开发环境l国外集成开

5、发环境国外集成开发环境Wind River的的TornadoISI公公司司(目目前前已已被被Wind River兼兼并并)的的pRISM+Microtec的的SpectraMS的的VC+嵌入式嵌入式Toolkit等等GNU的的GCC/GDB等系列工具等系列工具l国内集成开发环境:国内集成开发环境:Coretek LambdaTools13嵌入式软件的交叉开发环境嵌入式软件的交叉开发环境 l交交叉叉开开发发环环境境是是指指用用于于嵌嵌入入式式软软件件开开发发的的所所有有工工具具软软件件的的集集合合,一一般般包包括括文文本本编编辑辑器器、交交叉叉编编译译器器、交交叉叉调调试试器、仿真器、下载器等工

6、具。器、仿真器、下载器等工具。l交交叉叉开开发发环环境境由由宿宿主主机机和和目目标标机机组组成成,宿宿主主机机与与目目标标机机之间在物理连接的基础上建立起逻辑连接。之间在物理连接的基础上建立起逻辑连接。14嵌入式软件的交叉开发环境嵌入式软件的交叉开发环境 15l宿主机:开发平台宿主机:开发平台建建立立在在硬硬件件资资源源丰丰富富的的PCPC机机(或或者者工工作作站站)上上,有有通通用用操操作作系系统统等等系系统统软软件件提提供供软软件件开开发发支支持持,应应用用程程序序的编辑、编译、链接等过程都是在的编辑、编译、链接等过程都是在HostHost上完成的;上完成的;l目标机:运行平台目标机:运行

7、平台建建立立在在硬硬件件资资源源相相对对有有限限的的嵌嵌入入式式系系统统硬硬件件平平台台上上,除除了了调调试试代代理理没没有有其其他他用用于于嵌嵌入入式式软软件件开开发发的的软软件件资资源;源;l在在开开发发过过程程中中,目目标标机机端端需需接接收收和和执执行行宿宿主主机机发发出出的的各各种种命命令令如如设设置置断断点点、读读内内存存、写写内内存存等等,将结果返回给宿主机,配合宿主机各方面的工作。将结果返回给宿主机,配合宿主机各方面的工作。 宿主机和目标机的差别宿主机和目标机的差别 16l物理连接和逻辑连接物理连接和逻辑连接 物物理理连连接接是是指指宿宿主主机机与与目目标标机机上上的的一一定定

8、物物理理端端口口通通过过物物理理线线路路连连接接在在一一起起,连连接接方方式式主主要要有有三三种种:串串口口、以以太太口口和和OCDOCD(On On Chip Chip DebugDebug)方式如)方式如JTAGJTAG、BDMBDM等。等。物理连接是逻辑连接的基础。物理连接是逻辑连接的基础。逻逻辑辑连连接接指指宿宿主主机机与与目目标标机机间间按按某某种种通通信信协协议议建建立立起起来来的的通通信信连连接接,目目前前逐逐步步形形成成了了一一些通信协议的标准。些通信协议的标准。 嵌入式软件的交叉开发环境嵌入式软件的交叉开发环境 17嵌入式软件实现阶段的开发过程嵌入式软件实现阶段的开发过程 l

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

10、到到最最后的固化运行阶段。后的固化运行阶段。固固化化运运行行是是先先用用一一定定的的工工具具将将应应用用程程序序固固化化到到目目标标机机上上,然然后后启启动动目目标标机机,在在没没有有任任何何工工具具干干预预的的情情况况下下应用程序能自动地启动运行。应用程序能自动地启动运行。18嵌入式软件生成阶段嵌入式软件生成阶段l分为三个阶段分为三个阶段源源代代码码程程序序的的编写编写编编译译成成各各个个目目标模块标模块链链接接成成可可供供下下载载调调试试或或固固化化的目标程序的目标程序编辑器编辑器交叉编交叉编译器译器交叉链交叉链接器接器源程源程序序目标目标模块模块可供调可供调试试/固化固化库文库文件件19

11、嵌入式软件的调试嵌入式软件的调试 l交叉调试器交叉调试器 是是指指调调试试程程序序和和被被调调试试程程序序运运行行在在不不同同机机器器上上的的调调试试器器, , 调调试试器器通通过过某某种种方方式式能能控控制制目目标标机机上上被被调调试试程程序序的的运运行行方方式式,并并且且通通过过调调试试器器能能查查看看和和修修改改目目标标机机上上的的内内存存、寄寄存存器器以以及及被被调试程序中的变量等。调试程序中的变量等。 20交叉调试交叉调试非交叉调试非交叉调试调调试试器器和和被被调调试试程程序序运运行行在不同的计算机上在不同的计算机上调调试试器器和和被被调调试试程程序序运运行行在同一台计算机上在同一台

12、计算机上可可独独立立运运行行,无无需需操操作作系系统支持统支持需要操作系统的支持需要操作系统的支持被被调调试试程程序序的的装装载载由由调调试试器完成器完成被被调调试试程程序序的的装装载载由由专专门门的的LoaderLoader程序完成程序完成需需要要通通过过外外部部通通信信的的方方式式来控制被调试程序来控制被调试程序不不需需要要通通过过外外部部通通信信的的方方式来控制被调试程序式来控制被调试程序可可以以直直接接调调试试不不同同指指令令集集的程序的程序只只能能直直接接调调试试相相同同指指令令集集的程序的程序21嵌入式软件的调试嵌入式软件的调试 l交叉调试方式交叉调试方式Rom MonitorRo

13、m Monitor方式方式 Rom Emulator Rom Emulator方式方式In Circuit EmulatorIn Circuit Emulator方式方式On Chip Debugging On Chip Debugging 方式方式lSimulatorSimulator方式(非交叉)方式(非交叉)22最早的嵌入式应用软件调试方法Crash and Burn1)1)在宿主机上编写代码在宿主机上编写代码2)2)在宿主机上编译应用程序,生成可执行程序在宿主机上编译应用程序,生成可执行程序3)3)固化(固化(BurnBurn)到目标机的存储器(到目标机的存储器(EPROMEPROM、

14、FLASHFLASH等)中等)中4)4)启动运行,若正确则转到启动运行,若正确则转到5)5)不正确则在宿主机上改写代码,纠正错误不正确则在宿主机上改写代码,纠正错误6)6)返回返回重复操作重复操作7)7)固化成功,结束固化成功,结束23ROM MonitorlROM MonitorROM Monitor是运行在目标机上的一段程序,是运行在目标机上的一段程序,ROMROM主要指非主要指非易失性记忆体,如易失性记忆体,如FLASHFLASH等。等。lROM MonitorROM Monitor负责监控目标机上被调试程序的运行,通常负责监控目标机上被调试程序的运行,通常和宿主机段的程序一起完成对应用

15、程序的调试。和宿主机段的程序一起完成对应用程序的调试。lROM MonitorROM Monitor预先被固化到目标机的预先被固化到目标机的ROMROM空间,在目标机复空间,在目标机复位后首先执行的就是位后首先执行的就是ROM MonitorROM Monitor程序,它对目标机进行一程序,它对目标机进行一些必要的初始化,然后初始化自己的程序空间,最后等待宿些必要的初始化,然后初始化自己的程序空间,最后等待宿主机段的命令。主机段的命令。lROM MonitorROM Monitor能完成被调试程序的下载,目标机内存和寄能完成被调试程序的下载,目标机内存和寄存器的读写,设置断点,单步执行被调试程

16、序等功能,一些存器的读写,设置断点,单步执行被调试程序等功能,一些高级的高级的ROM MonitorROM Monitor能完成代码分析、系统分析、能完成代码分析、系统分析、ROMROM空间的空间的写操作以及设置各种非常复杂的断点等功能。写操作以及设置各种非常复杂的断点等功能。24ROM MonitorROM Monitor调试结构调试结构最简便的方法25注意:注意:采用本方法,在目标机复位后首先执行的采用本方法,在目标机复位后首先执行的就是就是ROM MonitorROM Monitor,它对目标机进行一些必要的,它对目标机进行一些必要的初始化,然后初始化自己的程序空间,最后就初始化,然后初

17、始化自己的程序空间,最后就等待等待HOSTHOST端的命令。端的命令。 ROM Monitor ROM Monitor能在调试模式下完成程序下载、能在调试模式下完成程序下载、目标机内存和寄存器的读写、设置断点、单步执目标机内存和寄存器的读写、设置断点、单步执行等调试功能。行等调试功能。26调试过程:1)在宿主机上编写代码2)在宿主机上使用调试模式交叉编译应用程序,生成可执行程序3)将代码下载到目标机上的RAMRAM空间4)用户使用调试器进行交叉调试5)如果正确转6)不正确则在调试器帮助下定位错误7)修改错误,重复8)将程序固化到目标机上,结束27ROM Monitor的优点l简单、方便;简单、

18、方便;l支持许多高级的调试功能;支持许多高级的调试功能;l可扩展性强;可扩展性强;l成本低廉;成本低廉;l基本上不需要专门的调试硬件支持。基本上不需要专门的调试硬件支持。28ROM Monitor的缺点1)1)1)1)Debug MonitorDebug MonitorDebug MonitorDebug Monitor需要用需要用需要用需要用Crash and BurnCrash and BurnCrash and BurnCrash and Burn方法开发方法开发方法开发方法开发2)2)2)2)当当当当ROM MonitorROM MonitorROM MonitorROM Monito

19、r占用占用占用占用CPUCPUCPUCPU时,应用程序不响应外部时,应用程序不响应外部时,应用程序不响应外部时,应用程序不响应外部的中断,因此的中断,因此的中断,因此的中断,因此不便调试有时间特性的程序不便调试有时间特性的程序不便调试有时间特性的程序不便调试有时间特性的程序。3)3)3)3)要求目标机必须有足够的要求目标机必须有足够的要求目标机必须有足够的要求目标机必须有足够的ROMROMROMROM4)4)目标机目标机CPUCPU不支持硬件断点时,不支持硬件断点时,ROM MonitorROM Monitor无法无法调试调试ROMROM程序和设置数据断点。程序和设置数据断点。5)5)5)5)

20、ROM MonitorROM MonitorROM MonitorROM Monitor要要要要占用目标机一定数量的资源占用目标机一定数量的资源占用目标机一定数量的资源占用目标机一定数量的资源,如:,如:,如:,如:CPUCPUCPUCPU资源、资源、资源、资源、RAMRAMRAMRAM资源和通信设备(如:串口、网卡资源和通信设备(如:串口、网卡资源和通信设备(如:串口、网卡资源和通信设备(如:串口、网卡等)资源。等)资源。等)资源。等)资源。6)6)6)6)调试环境不同于实际目标环境调试环境不同于实际目标环境调试环境不同于实际目标环境调试环境不同于实际目标环境29ROM Emulator 嵌

21、嵌嵌嵌入入入入式式式式应应应应用用用用的的的的开开开开发发发发经经经经常常常常会会会会遭遭遭遭遇遇遇遇缺缺缺缺少少少少目目目目标标标标机机机机环环环环境境境境、缺缺缺缺乏乏乏乏目目目目标标标标机机机机芯芯芯芯片片片片等等等等资资资资源源源源,而而而而开开开开发发发发过过过过程程程程又又又又不不不不可可可可能能能能停停停停止止止止的的的的问问问问题题题题,因因因因此此此此自自自自然然然然就就就就提提提提出出出出了了了了根根根根据据据据不不不不同同同同的的的的应应应应用用用用需需需需要要要要,利利利利用用用用仿仿仿仿真真真真器器器器件件件件、仿仿仿仿真真真真环环环环境境境境进进进进行行行行开开开开

22、发发发发的的的的方方方方法法法法,ROM ROM ROM ROM EmulatorEmulatorEmulatorEmulator是其中之一,其它还有是其中之一,其它还有是其中之一,其它还有是其中之一,其它还有ICEICEICEICE、OCDOCDOCDOCD等。等。等。等。 ROM ROM ROM ROM EmulatorEmulatorEmulatorEmulator是是是是一一一一种种种种用用用用于于于于替替替替代代代代目目目目标标标标机机机机上上上上的的的的ROMROMROMROM芯芯芯芯片片片片的的的的设设设设备备备备,即即即即ROMROMROMROM仿仿仿仿真真真真器器器器。利利利

23、利用用用用这这这这种种种种设设设设备备备备,目目目目标标标标机机机机可可可可以以以以 没没没没 有有有有 ROMROMROMROM芯芯芯芯 片片片片 , 但但但但 目目目目 标标标标 机机机机 的的的的 CPUCPUCPUCPU可可可可 以以以以 读读读读 取取取取 ROM ROM ROM ROM EmulatorEmulatorEmulatorEmulator设设设设备备备备上上上上ROMROMROMROM芯芯芯芯片片片片的的的的内内内内容容容容:ROM ROM ROM ROM EmulatorEmulatorEmulatorEmulator设设设设备备备备上上上上的的的的ROMROMROM

24、ROM芯芯芯芯片片片片的的的的地地地地址址址址可可可可以以以以实实实实时时时时地地地地映映映映射射射射到到到到目目目目标标标标机机机机的的的的ROMROMROMROM地址空间,从而仿真(地址空间,从而仿真(地址空间,从而仿真(地址空间,从而仿真(EmulationEmulationEmulationEmulation)目标机的)目标机的)目标机的)目标机的ROMROMROMROM。 30 ROM Emulator ROM Emulator ROM Emulator ROM Emulator的调试方式是一种不完全的调试的调试方式是一种不完全的调试的调试方式是一种不完全的调试的调试方式是一种不完全

25、的调试方式:方式:方式:方式:ROM EmulatorROM EmulatorROM EmulatorROM Emulator设备只是为目标机提供设备只是为目标机提供设备只是为目标机提供设备只是为目标机提供ROMROMROMROM芯片芯片芯片芯片和在和在和在和在TargetTargetTargetTarget和和和和HostHostHostHost间建立一条高速的通信通道,因间建立一条高速的通信通道,因间建立一条高速的通信通道,因间建立一条高速的通信通道,因此它经常和前面两种调试方式结合起来形成一种完此它经常和前面两种调试方式结合起来形成一种完此它经常和前面两种调试方式结合起来形成一种完此它经

26、常和前面两种调试方式结合起来形成一种完备的调试方式。备的调试方式。备的调试方式。备的调试方式。ROM EmulatorROM EmulatorROM EmulatorROM Emulator的典型应用就是和的典型应用就是和的典型应用就是和的典型应用就是和ROM ROM ROM ROM MonitorMonitorMonitorMonitor的调试方式相结合。的调试方式相结合。的调试方式相结合。的调试方式相结合。31目标机可以没有目标机可以没有ROMROM芯片、可以使用芯片、可以使用ROM EmulatorROM Emulator提供的提供的ROMROM空间且不需要用别的工具来写空间且不需要用别

27、的工具来写ROMROM。 优点目标机必须能支持外部目标机必须能支持外部ROMROM存储空间,而且由于其存储空间,而且由于其通常要和通常要和ROM MonitorROM Monitor配合使用,因此它拥有配合使用,因此它拥有ROM ROM MonitorMonitor的所有缺点。的所有缺点。 缺点32内部电路仿真器内部电路仿真器(ICE) ICE ICE(In-Circuit EmulatorIn-Circuit Emulator)是一种用于替代)是一种用于替代目标机上目标机上CPUCPU的设备,即的设备,即在线仿真器在线仿真器。它比一般的。它比一般的CPUCPU有更多的引出线,能够将内部的信号

28、输出到被有更多的引出线,能够将内部的信号输出到被控制的目标机。控制的目标机。ICEICE上的上的MemoryMemory也可以被映射到用也可以被映射到用户的程序空间,这样即使目标机不存在的情形下也户的程序空间,这样即使目标机不存在的情形下也可以进行代码的调试。可以进行代码的调试。 ICE ICE是用来仿真是用来仿真CPUCPU核心的设备,它可以在不干核心的设备,它可以在不干扰运算器的正常运行情况下,实时的检测扰运算器的正常运行情况下,实时的检测CPUCPU的内的内部工作情况。部工作情况。 33ICE调试结构宿主开发平台目标平台ICE34连接连接ICEICE和目标机时,一般是将目标机的和目标机时

29、,一般是将目标机的CPUCPU取下,取下,而将而将ICEICE的的CPUCPU引出线接到目标机的引出线接到目标机的CPUCPU插槽。插槽。 用用ICEICE进行调试时,在进行调试时,在HostHost端运行的调试器通过端运行的调试器通过ICEICE来控制目标机上运行的程序。来控制目标机上运行的程序。 35功能特点1)同时支持软断点和硬件断点的设置2)设置各种复杂的断点和触发器3)实时跟踪目标程序的运行4)选择性的跟踪程序的运行5)支持“ “Time Stamp” Time Stamp” 6)允许用户设置“ “Timer”Timer” 7)提供“ “Shadow RAM”Shadow RAM”,

30、能在不中断被调试程序的运行下查看内存和变量即非干扰调试查询 361)调试实时的应用系统2)调试设备驱动程序3)对硬件进行功能和性能的测试4)实时性能分析应用:1)价格太昂贵,不利于团队开发2)所仿CPU有限缺点:37OCD OCDOCDOCDOCD(On Chip DebuggingOn Chip DebuggingOn Chip DebuggingOn Chip Debugging)是)是)是)是CPUCPUCPUCPU芯片提供的一种调试功芯片提供的一种调试功芯片提供的一种调试功芯片提供的一种调试功能能能能(片上调试)(片上调试)(片上调试)(片上调试),在处理器内部嵌入额外的控制模块,在处

31、理器内部嵌入额外的控制模块,在处理器内部嵌入额外的控制模块,在处理器内部嵌入额外的控制模块,可以认为是一种廉价的可以认为是一种廉价的可以认为是一种廉价的可以认为是一种廉价的ICEICEICEICE功能:功能:功能:功能:OCDOCDOCDOCD的价格只有的价格只有的价格只有的价格只有ICEICEICEICE的的的的20%20%20%20%,但提供了,但提供了,但提供了,但提供了ICE 80%ICE 80%ICE 80%ICE 80%的功能。的功能。的功能。的功能。最初的最初的OCDOCD是一种仿是一种仿ROM MonitorROM Monitor的结构,是将的结构,是将ROM ROM Moni

32、torMonitor的功能以微码的形式表现。后来的的功能以微码的形式表现。后来的OCDOCD彻底屏弃彻底屏弃了这种了这种ROM MonitorROM Monitor的结构,而采用了两级模式的思路,的结构,而采用了两级模式的思路,即:将即:将CPUCPU的模式分为一般模式和调试模式。的模式分为一般模式和调试模式。38OCD调试结构39OCD调试方法1)1)将将CPUCPU的模式分为的模式分为一般模式和调试模式一般模式和调试模式2)2)一般模式一般模式下,下, CPUCPU从内存读取指令执行从内存读取指令执行3)3)调试模式调试模式下,下,CPUCPU首先从调试端口读取指令,通首先从调试端口读取指

33、令,通过调试端口可以控制过调试端口可以控制CPUCPU进入和退出调试模式;进入和退出调试模式;HostHost端的调试器可以直接向目标机发送要执行的端的调试器可以直接向目标机发送要执行的指令,读写目标机的内存和各种寄存器,控制目指令,读写目标机的内存和各种寄存器,控制目标程序的运行以及完成各种复杂的调试功能。标程序的运行以及完成各种复杂的调试功能。40优点1)不占用目标机的资源2)调试环境和最终的程序运行环境基本一致3)支持软硬断点、Trace功能4)精确计量程序的执行时间5)提供时序分析功能41缺点1)调试的实时性不如ICE2)不支持非干扰调试查询3)CPU必需具有OCD功能4)OCD存在各

34、种实现、标准不统一-BDM(Backgroud Debugging Mode)-JTAG(Joint Test Access Group)-OnCE(On Chip Emulation)42交叉开发的缺点硬件支持:必须有目标机或评估板易使用性:普通编程人员不熟悉廉价性:成本高可移植性、可扩展性:不高团队开发:较难开发周期:较长43仿真开发类型 硬件仿真开发- ICE 软件仿真开发-指令级仿真开发-API级仿真开发44软件仿真开发在宿主机上创建一个虚拟的目标机环境,再将应在宿主机上创建一个虚拟的目标机环境,再将应用系统下载到这个虚拟目标机上运行调试。用系统下载到这个虚拟目标机上运行调试。 Sim

35、ulator一种软件仿真器,相当于在一种软件仿真器,相当于在HostHost上虚拟了一台目上虚拟了一台目标机:标机: 仿真处理器仿真处理器 仿真外设仿真外设 仿真环境仿真环境4546软件仿真开发过程 47优点最大好处就是可以不用真正的目标机,可以在最大好处就是可以不用真正的目标机,可以在目标机环境并不存在的条件下开发目标机上的目标机环境并不存在的条件下开发目标机上的应用系统,并且在调试时可以利用应用系统,并且在调试时可以利用HostHost资源提资源提供更详细的错误诊断信息。供更详细的错误诊断信息。48缺点1)1)和实际的运行环境差别很大和实际的运行环境差别很大2)2)设备模拟的局限性较大设备

36、模拟的局限性较大3)3)实时特性较差实时特性较差4)4)对对HostHost的资源要求较高的资源要求较高对时间特性没有严格要求、没有特殊外设、只需对时间特性没有严格要求、没有特殊外设、只需要验证逻辑正确的应用程序。要验证逻辑正确的应用程序。适用范围49嵌入式软件的固化运行嵌入式软件的固化运行 l当当调调试试完完成成之之后后,程程序序代代码码需需要要被被完完全全烧烧入入到到目目标标板板的的非非易易失失性性存存储储器器中中,并并且且在在真真实实的的硬硬件环境上运行,这个过程叫做固化。件环境上运行,这个过程叫做固化。l分分析析调调试试环环境境与与固固化化环环境境之之间间的的区区别别是是解解决决固固化

37、问题的关键所在化问题的关键所在代码定位不同代码定位不同初始化部分不同初始化部分不同50l嵌嵌入入式式软软件件开开发发工工具具的的发发展展一一直直落落后后于于主主机机或或台台式式机机系系统统的的软软件件开开发发工工具具的的发发展。展。l近近几几年年来来,随随着着市市场场需需求求的的增增长长,越越来来越越多多具具有有多多窗窗口口图图形形化化用用户户界界面面、支支持持面面向向对对象象程程序序设设计计方方法法和和C/SC/S体体系系结结构构的的嵌入式软件开发工具被推上市场。嵌入式软件开发工具被推上市场。 嵌入式软件开发工具技术嵌入式软件开发工具技术 51l嵌入式软件工具技术目前的发展状况:嵌入式软件工

38、具技术目前的发展状况:向向着着开开放放式式、集集成成化化的的方方向向发发展展。以以C/SC/S体体系系结结构构为为基基础础,具具有有运运行行系系统统的的无无关关性性、连连接接的的无无关关性性、开开放的软件接口和环境一致性等特点。放的软件接口和环境一致性等特点。具有系统设计、可视化建模、仿真和验证功能。具有系统设计、可视化建模、仿真和验证功能。自自动动生生成成代代码码和和文文档档。开开发发工工具具可可根根据据系系统统模模型型生生成成C/C+/JAVAC/C+/JAVA语语言言的的源源代代码码,提提供供完完善善的的、标标准准化化的软件说明文档。的软件说明文档。具具有有更更高高的的灵灵活活性性。嵌嵌

39、入入式式系系统统开开发发商商需需要要拥拥有有极极其其灵灵活活的的产产品品架架构构和和开开发发工工具具,配配备备适适应应于于特特定定行行业的工具、操作系统和中间件。业的工具、操作系统和中间件。嵌入式软件开发工具技术 52嵌入式系统开发模式嵌入式系统开发模式 最大特点:软硬件综合开发。 原因:1)嵌入式产品是软硬件的结合体 2)软件针对硬件开发、固化53嵌入式系统开发过程嵌入式系统开发过程 54系统总体设计系统总体设计55硬件设计制作硬件设计制作56软件设计实现软件设计实现57一种嵌入式多任务软件的开发方法 DARTS方法lDARTS: 结构化分析结构化分析/ /结构化设计的方法,给出了划结构化设

40、计的方法,给出了划分任务的方法以及定义任务间接口的机制分任务的方法以及定义任务间接口的机制. .l嵌入式实时软件系统的生命周期:嵌入式实时软件系统的生命周期:需求分析与说明需求分析与说明系统设计系统设计任务划分原则任务划分原则定义任务间接口定义任务间接口任务设计任务设计模块构筑模块构筑任务与系统集成任务与系统集成58嵌入式实时软件系统的生命周期嵌入式实时软件系统的生命周期l需求分析与详细说明需求分析与详细说明l系统设计系统设计任务分解任务分解, , 定义任务间接口关系定义任务间接口关系l任务设计任务设计按模块方式设计每个任务,定义模块间接口按模块方式设计每个任务,定义模块间接口l模块构筑模块构

41、筑完成每个模块的详细设计、编码和单元测试完成每个模块的详细设计、编码和单元测试l任务与系统集成任务与系统集成l系统测试系统测试59实实 例例 说说 明明60解 释控制设备由内部控制器和外部控制面板组控制设备由内部控制器和外部控制面板组成成控制器控制六个转轴,并与数字控制器控制六个转轴,并与数字I/OI/O传感器传感器交互作用。交互作用。转轴和转轴和I/OI/O由程序控制由程序控制该程序由控制面板操作启动执行该程序由控制面板操作启动执行61控制执行过程 按下按下按下按下“上电上电上电上电”按钮,系统进入了上电状态。按钮,系统进入了上电状态。按钮,系统进入了上电状态。按钮,系统进入了上电状态。 上

42、电成功后,系统进入了手动状态。此时,操作上电成功后,系统进入了手动状态。此时,操作上电成功后,系统进入了手动状态。此时,操作上电成功后,系统进入了手动状态。此时,操作者可以通过者可以通过者可以通过者可以通过程序选择开关程序选择开关程序选择开关程序选择开关选择程序选择程序选择程序选择程序 按下按下按下按下“运行运行运行运行”按钮,则选定的程序开始运行,系按钮,则选定的程序开始运行,系按钮,则选定的程序开始运行,系按钮,则选定的程序开始运行,系统转为运行态。统转为运行态。统转为运行态。统转为运行态。 程序运行中如果按下程序运行中如果按下程序运行中如果按下程序运行中如果按下“停止停止停止停止”键,程

43、序被挂起。键,程序被挂起。键,程序被挂起。键,程序被挂起。之后,操作者可以按下之后,操作者可以按下之后,操作者可以按下之后,操作者可以按下“运行运行运行运行”键,使程序恢复键,使程序恢复键,使程序恢复键,使程序恢复执行,也可按下执行,也可按下执行,也可按下执行,也可按下“结束结束结束结束”键,结束程序。键,结束程序。键,结束程序。键,结束程序。 按下按下按下按下“结束结束结束结束”键后,系统进入终止态。当程序最键后,系统进入终止态。当程序最键后,系统进入终止态。当程序最键后,系统进入终止态。当程序最终终止执行时,系统返回手动状态。终终止执行时,系统返回手动状态。终终止执行时,系统返回手动状态。

44、终终止执行时,系统返回手动状态。 62l需求说明给出系统功能需求(功能,输入,需求说明给出系统功能需求(功能,输入,输出)、外部接口需求(如用户界面)、输出)、外部接口需求(如用户界面)、性能以及诸如文件性能以及诸如文件/ /数据库安全等其它要数据库安全等其它要求。求。l实时系统常用状态变迁图描述系统,为此实时系统常用状态变迁图描述系统,为此需先设计状态变迁图,此图在设计阶段被需先设计状态变迁图,此图在设计阶段被逐步细化。逐步细化。需求分析与说明需求分析与说明需求分析与说明需求分析与说明63需求分析与说明需求分析与说明需求分析与说明需求分析与说明64系系系系 统统统统 设设设设 计计计计l系统

45、设计说明该系统如何被分解成多个系统设计说明该系统如何被分解成多个任务任务, , 如何定义任务间的关系如何定义任务间的关系l任务划分方法任务划分方法 DARTS DARTS(结构化分析(结构化分析/ /结构化设计)设计方法,此方法给出了结构化设计)设计方法,此方法给出了划分任务的方法以及定义任务间接口的划分任务的方法以及定义任务间接口的机制。机制。65DARTSDARTS设计方法设计方法l 数据流分析数据流分析每个数据流图都包含:每个数据流图都包含:l变换圈变换圈, , 表示系统完成的功能表示系统完成的功能l箭头表示变换间的数据流动箭头表示变换间的数据流动l 数据存储区表示数据的存储场所数据存储

46、区表示数据的存储场所数数据据字字典典定定义义了了数数据据流流和和数数据据存存储储区区所所包包含含的数据项的数据项66图图 机器人控制数据流图机器人控制数据流图程序程序面板输入有面板输入有效效性检查性检查解释程序解释程序各语句各语句读传读传感器感器处理面板处理面板输入输入 处理处理I/O指令指令处理动处理动作命令作命令向传感向传感器输出器输出输出动作输出动作轴数据轴数据接收接收确认确认输出到面输出到面板板 输入输入轴控制轴控制器器读面板读面板 输入输入按下按下按钮按钮面板输入面板输入 有效的有效的面板输入面板输入 运行运行开始开始 结束结束动作动作命令命令动作动作确认确认I/O命令命令传感器值传

47、感器值输入输入传感器输入传感器输入传感器传感器输出输出输出输出面板面板输出输出显示灯显示灯 运行运行 停止停止重启动重启动轴块轴块轴确认轴确认轴输入轴输入轴输出轴输出动作块动作块67DARTSDARTSDARTSDARTS设计方法设计方法设计方法设计方法l划分任务划分任务l 识别出系统所有功能和它们之间的数据流后,下识别出系统所有功能和它们之间的数据流后,下一步将涉及怎样在数据流图上确定出并发的任务。一步将涉及怎样在数据流图上确定出并发的任务。l划分任务原则划分任务原则I/O I/O 依赖性依赖性 时间关键性时间关键性的功能的功能计算量大的功能计算量大的功能功能功能内聚(内聚(F Functi

48、onal relationsunctional relations)时间内聚(时间内聚(Temporal relationsTemporal relations)周期执行的功能(周期执行的功能(Cyclic executing Cyclic executing functionfunction)68 I/O I/O I/O I/O 依赖性依赖性依赖性依赖性 DeviceI/O Task App.Taskl在系统中创建多个与在系统中创建多个与I/OI/O设备相当数目设备相当数目I/OI/O任务任务lI/OI/O任务只实现与设备相关的代码任务只实现与设备相关的代码lI/OI/O任任务务的的执执行行

49、只只受受限限于于I/OI/O设设备备的的速速度度,而而不不是处理器是处理器l在任务中分离设备相关性在任务中分离设备相关性69 时间关键性时间关键性l将将有有时时间间关关键键性性(deadlinedeadline)的的功功能能分分离离出出来来,组成独立运行的任务组成独立运行的任务;l赋予这些任务高的优先级,以满足对时间的需要。赋予这些任务高的优先级,以满足对时间的需要。event 1event 2Task 1Task 2Task 3Task 3deadline 1deadline 270l计计算算功功能能占占用用CPUCPU的的时时间间多多,捆捆绑绑计计算算功功能能成成任任务务,赋赋予予它它们们

50、较较低低优优先先级级运运行行, , 能能被被高高优优先先级级的的任任务务抢占,消耗抢占,消耗CPUCPU的剩余时间;的剩余时间;l保持高优先级的任务是轻量级的;保持高优先级的任务是轻量级的;l多多个个计计算算任任务务可可安安排排成成同同优优先先级级,按按时时间间片片循循环环轮转。轮转。 计算内聚计算内聚event 1event 2Task1Task2 event 2Task2BackgroundComputation Task71功能内聚l各各紧紧密密相相关关的的功功能能,不不能能分分别别对对应应不不同同的的任任务务,将将这这些些紧紧密密相相关关的的功功能能组组,组组成成一一个个任任务务, ,

51、 使使各各功功能共享资源或相同事件的驱动。能共享资源或相同事件的驱动。l组组成成一一个个任任务务会会减减少少通通信信的的开开销销,而而且且不不仅仅保保证证了模块级的功能内聚了模块级的功能内聚, , 也保证了任务级的功能内聚。也保证了任务级的功能内聚。event 1F1(x) + F3(x)event 2F2(y)72时间内聚时间内聚l将将在在同同一一时时间间内内完完成成的的各各功功能能,即即使使这这些些功功能能是是不相关的,组成功能组,形成一个任务不相关的,组成功能组,形成一个任务l 功功能能组组的的各各功功能能是是由由相相同同的的外外部部事事件件驱驱动动的的(如如:时时钟钟等等),这这样样每

52、每次次任任务务接接收收到到一一个个事事件件, , 它们都可以同时执行。它们都可以同时执行。l 组成一个任务,减少了系统的开销组成一个任务,减少了系统的开销Clock TickeventF1(x) + F2(y)+F3(z)F4(x)+F5(y)73周期执行功能周期执行功能l将将在在相相同同周周期期内内执执行行的的各各功功能能组组成成一一个个任务任务l频率高的赋予高优先级频率高的赋予高优先级F1F2F110HZ10HZ15HZ15HZF27475定义任务接口l任务间通信模块任务间通信模块消息通信模块消息通信模块信息隐藏模块信息隐藏模块 76l任务同步模块任务同步模块定义任务接口7778 任务设计

53、任务设计 任务体系结构任务体系结构 任务执行流程任务执行流程 任务内数据结构任务内数据结构 任务内模块间接口任务内模块间接口 函数设计函数设计详细说明系统中各任务的设计考虑和执详细说明系统中各任务的设计考虑和执行流程,以利于程序员编制程序。行流程,以利于程序员编制程序。 79 任务体系结构任务体系结构详细定义任务包含的子模块(或类)和模块详细定义任务包含的子模块(或类)和模块间(类之间)的关系。间(类之间)的关系。 任务执行流程任务执行流程任务执行流程任务执行流程任务执行流程任务执行流程子模块(类)的执行过程子模块(类)的执行过程子模块(类)的执行过程子模块(类)的执行过程尽可能详细地描述任务

54、的处理过程:尽可能详细地描述任务的处理过程:直到每个具体的函数调用80 任务设计任务设计81 任务设计82函数设计函数设计1)1)1)1)函数描述:函数描述:函数描述:函数描述:给出对该函数的简要描述,说明设给出对该函数的简要描述,说明设给出对该函数的简要描述,说明设给出对该函数的简要描述,说明设计目的、意义以及特点计目的、意义以及特点计目的、意义以及特点计目的、意义以及特点2)2)2)2)功能:功能:功能:功能:说明该函数应具有的功能,可采用说明该函数应具有的功能,可采用说明该函数应具有的功能,可采用说明该函数应具有的功能,可采用IPOIPOIPOIPO图图图图(输入一处理一输出图)形式(输

55、入一处理一输出图)形式(输入一处理一输出图)形式(输入一处理一输出图)形式3)3)3)3)性能:性能:性能:性能:说明对该函数的性能要求,包括精度、说明对该函数的性能要求,包括精度、说明对该函数的性能要求,包括精度、说明对该函数的性能要求,包括精度、灵活性和时间特性等灵活性和时间特性等灵活性和时间特性等灵活性和时间特性等4)4)4)4)输入:输入:输入:输入:定义每个输入项的特性,包括名称、标定义每个输入项的特性,包括名称、标定义每个输入项的特性,包括名称、标定义每个输入项的特性,包括名称、标识、数据类型和格式、取值范围、输入方式、识、数据类型和格式、取值范围、输入方式、识、数据类型和格式、取

56、值范围、输入方式、识、数据类型和格式、取值范围、输入方式、数据来源、保密方式等数据来源、保密方式等数据来源、保密方式等数据来源、保密方式等5)5)5)5)输出:输出:输出:输出:定义每个输入项的特性,特征同输入定义每个输入项的特性,特征同输入定义每个输入项的特性,特征同输入定义每个输入项的特性,特征同输入836)6)6)6)算法:算法:算法:算法:详细说明本函数所选用的算法,具体的计详细说明本函数所选用的算法,具体的计详细说明本函数所选用的算法,具体的计详细说明本函数所选用的算法,具体的计算公式和计算步骤算公式和计算步骤算公式和计算步骤算公式和计算步骤7)7)7)7)流程:流程:流程:流程:用

57、流程图辅以必要的说明来表示本函数的用流程图辅以必要的说明来表示本函数的用流程图辅以必要的说明来表示本函数的用流程图辅以必要的说明来表示本函数的逻辑流程逻辑流程逻辑流程逻辑流程8)8)8)8)接口:接口:接口:接口:说明本函数与其他函数的调用关系,包括说明本函数与其他函数的调用关系,包括说明本函数与其他函数的调用关系,包括说明本函数与其他函数的调用关系,包括说明参数赋值和调用方式以及相关数据结构(如说明参数赋值和调用方式以及相关数据结构(如说明参数赋值和调用方式以及相关数据结构(如说明参数赋值和调用方式以及相关数据结构(如数据库、文件)。数据库、文件)。数据库、文件)。数据库、文件)。 9)9)

58、9)9)存储分配:存储分配:存储分配:存储分配:说明本函数的存储分配说明本函数的存储分配说明本函数的存储分配说明本函数的存储分配10)10)10)10)限制条件:限制条件:限制条件:限制条件:说明本函数运行所受限制说明本函数运行所受限制说明本函数运行所受限制说明本函数运行所受限制 11)11)11)11)测试计划:测试计划:测试计划:测试计划:说明对本函数的测试计划,包括技术说明对本函数的测试计划,包括技术说明对本函数的测试计划,包括技术说明对本函数的测试计划,包括技术要求、输入数据、预期结果、人员安排等要求、输入数据、预期结果、人员安排等要求、输入数据、预期结果、人员安排等要求、输入数据、预

59、期结果、人员安排等函数设计函数设计84模块构筑模块构筑l系系统统和和任任务务设设计计完完成成后后,进进行行每每个个模模块块的详细设计;的详细设计;l详细设计完成后才可开始编码;详细设计完成后才可开始编码;l但但是是在在单单元元测测试试前前不不必必编编完完模模块块全全部部程程序,可以分阶段编码和测试。序,可以分阶段编码和测试。85任务与系统集成任务与系统集成l 模模块块逐逐个个连连接接、测测试试以以构构成成任任务务,任任务务被被逐个连接和测试形成最终系统逐个连接和测试形成最终系统l可分两步集成可分两步集成在宿主机上模拟集成(软集成)在宿主机上模拟集成(软集成)在目标机上的集成。在目标机上的集成。

60、86嵌入式系统设计方法的发展嵌入式系统设计方法的发展复杂性复杂性单机单机 网络网络应用领域应用领域广泛;差异大广泛;差异大集成度集成度软硬件协同软硬件协同更新速度更新速度重用重用通用方法通用方法多种起因:多种起因:87嵌入式软件设计的一些基本原则嵌入式软件设计的一些基本原则l尽量简单尽量简单l使用静态表使用静态表l尽量减少动态性尽量减少动态性l恰当的任务数目恰当的任务数目l使用有限状态自动机辅助设计使用有限状态自动机辅助设计l面向对象设计面向对象设计l避免使用复杂算法避免使用复杂算法88尽量简单尽量简单l不存在完善方法不存在完善方法l任何的设计都只能尽量好,不可能最优。任何的设计都只能尽量好,

61、不可能最优。l以成本为基准以成本为基准l开发计划易实现,成本费用可控制,软件质量开发计划易实现,成本费用可控制,软件质量有保障。有保障。l不能过于强调精简不能过于强调精简l软件具有可读性、可移植性、易维护软件具有可读性、可移植性、易维护l常用模型和方法常用模型和方法l原型模型、增量模型、组件构件方法原型模型、增量模型、组件构件方法89使用静态表使用静态表l系统运行前,根据各任务的实时要求生系统运行前,根据各任务的实时要求生成一张任务的运行时间表,指明各任务成一张任务的运行时间表,指明各任务的起始时间及运行长度;的起始时间及运行长度;l运行时间表生成后,在系统运行过程中运行时间表生成后,在系统运

62、行过程中不再变化;不再变化;l系统运行是,调度器只需要根据这张表系统运行是,调度器只需要根据这张表在指定的时刻启动相应的实时任务。在指定的时刻启动相应的实时任务。90尽量减少动态性尽量减少动态性l特点决定特点决定嵌入式系统中,时间资源非常宝贵,往往需要嵌入式系统中,时间资源非常宝贵,往往需要以空间换时间以空间换时间l采用静态数据结构采用静态数据结构如静态数组如静态数组l不能绝对禁止动态不能绝对禁止动态消息队列可以使用动态链表结构消息队列可以使用动态链表结构资源丰富系统资源丰富系统91恰当的任务数目恰当的任务数目l任务队列变长,任务调度管理复杂化,调任务队列变长,任务调度管理复杂化,调度延迟增加,从而降低整个系统的实时性度延迟增加,从而降低整个系统的实时性能;能;l任务数目的增多,任务间通信几何级数增任务数目的增多,任务间通信几何级数增长,影响系统的实时性能;长,影响系统的实时性能;l原则:在实时性允许的范围内定义适当的原则:在实时性允许的范围内定义适当的任务数目。任务数目。92结束语结束语谢谢大家聆听!谢谢大家聆听!93

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号