嵌入式系统与软件5.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《嵌入式系统与软件5.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统与软件5.ppt(92页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、嵌入式系统与软件5 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望嵌入式软件运行流程嵌入式软件运行流程上电复位上电复位系统升级系统升级引导引导/升级系统升级系统系统初始化系统初始化应用初始化应用初始化多任务应用多任务应用板级初始化板级初始化远程升级远程升级本地升级本地升级2嵌入式软件运行流程嵌入式软件运行流程l上电复位、板级初始化阶段上电复位、板级初始化阶段嵌入式系统上电复位后完成板级初始化工作。嵌入式系统上电复位后完成板级初始化工作。板级初始化程序具有完全的硬件
2、特性,一般采用板级初始化程序具有完全的硬件特性,一般采用汇编语言实现。不同的嵌入式系统,板级初始化汇编语言实现。不同的嵌入式系统,板级初始化时要完成的工作具有一定的特殊性,但以下工作时要完成的工作具有一定的特殊性,但以下工作一般是必须完成的:一般是必须完成的:lCPUCPU中堆栈指针寄存器的初始化。中堆栈指针寄存器的初始化。lBSSBSS段(段(Block Storage SpaceBlock Storage Space表示未被初始化表示未被初始化的数据)的初始化。的数据)的初始化。lCPUCPU芯片级的初始化:中断控制器、内存等的芯片级的初始化:中断控制器、内存等的初始化。初始化。3嵌入式软
3、件运行流程嵌入式软件运行流程l系统引导系统引导/升级阶段升级阶段根据需要分别进入系统软件引导阶段或根据需要分别进入系统软件引导阶段或系统升级阶段。系统升级阶段。软件可通过测试通信端口数据或判断特软件可通过测试通信端口数据或判断特定开关的方式分别进入不同阶段。定开关的方式分别进入不同阶段。4l系统引导阶段系统引导阶段系统引导有几种情况:系统引导有几种情况:将系统软件从将系统软件从NOR FlashNOR Flash中读取出来加载到中读取出来加载到RAMRAM中中运行:这种方式可以解决成本及运行:这种方式可以解决成本及FlashFlash速度比速度比RAMRAM慢的问题。软件可压缩存储在慢的问题。
4、软件可压缩存储在FlashFlash中。中。不需将软件引导到不需将软件引导到RAMRAM中而是让其直接在中而是让其直接在NorFlashNorFlash上运行,进入系统初始化阶段。上运行,进入系统初始化阶段。将软件从外存(如将软件从外存(如NandFlashNandFlash、CFCF卡、卡、MMCMMC等)中等)中读取出来加载到读取出来加载到RAMRAM中运行:这种方式的成本更低。中运行:这种方式的成本更低。嵌入式软件运行流程嵌入式软件运行流程5嵌入式软件运行流程嵌入式软件运行流程l系统升级阶段系统升级阶段进入系统升级阶段后系统可通过进入系统升级阶段后系统可通过网络进行远程升网络进行远程升级
5、级或通过或通过串口进行本地升级串口进行本地升级。远程升级远程升级一般支持一般支持TFTPTFTP、FTPFTP、HTTPHTTP等方式。等方式。本地升级本地升级可通过可通过ConsoleConsole口使用超级终端或特定口使用超级终端或特定的升级软件进行。的升级软件进行。6l系统初始化阶段系统初始化阶段 在该阶段进行操作系统等系统软件各功能部分必在该阶段进行操作系统等系统软件各功能部分必需的初始化工作,如根据系统配置初始化数据空需的初始化工作,如根据系统配置初始化数据空间、初始化系统所需的接口和外设等。间、初始化系统所需的接口和外设等。系统初始化阶段需要按特定顺序进行,如首先完系统初始化阶段需
6、要按特定顺序进行,如首先完成内核的初始化,然后完成网络、文件系统等的成内核的初始化,然后完成网络、文件系统等的初始化,最后完成中间件等的初始化工作。初始化,最后完成中间件等的初始化工作。嵌入式软件运行流程嵌入式软件运行流程7嵌入式软件运行流程嵌入式软件运行流程l应用初始化阶段应用初始化阶段在该阶段进行应用任务的创建,信号量、消息队在该阶段进行应用任务的创建,信号量、消息队列的创建和与应用相关的其它初始化工作。列的创建和与应用相关的其它初始化工作。l多任务应用运行阶段多任务应用运行阶段各种初始化工作完成后,系统进入多任务状态,各种初始化工作完成后,系统进入多任务状态,操作系统按照已确定的算法进行
7、任务的调度,各操作系统按照已确定的算法进行任务的调度,各应用任务分别完成特定的功能。应用任务分别完成特定的功能。8嵌入式软件开发工具嵌入式软件开发工具 l嵌入式软件开发工具的集成度和可用性将直接关系嵌入式软件开发工具的集成度和可用性将直接关系到到嵌入式系统嵌入式系统的开发效率。的开发效率。l根据不同的阶段,嵌入式软件开发工具可以分为根据不同的阶段,嵌入式软件开发工具可以分为:-需求分析工具(需求分析工具(Requirement Analysis ToolsRequirement Analysis Tools)-软件设计工具软件设计工具(Software Design Tools)(Softwa
8、re Design Tools)-编程、调试工具编程、调试工具(Coding Tools)(Coding Tools)-测试工具测试工具(Testing Tools)(Testing Tools)-配置管理工具、维护工具等配置管理工具、维护工具等 9l嵌入式软件的开发可以分为以下几种嵌入式软件的开发可以分为以下几种 :编编写写简简单单的的板板级级测测试试软软件件,主主要要是是辅辅助助硬硬件件的调试的调试 )开发基本的驱动程序开发基本的驱动程序 开开发发特特定定嵌嵌入入式式操操作作系系统统的的驱驱动动程程序序(板板级级支持包)支持包)开开发发嵌嵌入入式式系系统统软软件件,如如:嵌嵌入入式式操操作
9、作系系统统等等 开发应用软件开发应用软件 嵌入式软件开发工具嵌入式软件开发工具 10l从从以以上上嵌嵌入入式式软软件件开开发发分分类类来来看看,嵌嵌入入式式软件开发工具可以分为:软件开发工具可以分为:与与嵌嵌入入式式OSOS相相关关的的开开发发工工具具,用用于于开开发发基基 于嵌入式于嵌入式OSOS的应用和部分的驱动程序等。的应用和部分的驱动程序等。与与嵌嵌入入式式OSOS无无关关的的开开发发工工具具,用用于于开开发发基基本本的的驱动程序、辅助硬件调试,系统软件的开发等。驱动程序、辅助硬件调试,系统软件的开发等。嵌入式软件开发工具嵌入式软件开发工具 11主要嵌入式软件开发工具产品主要嵌入式软件
10、开发工具产品RequirementAnalysisSoftwareDesignCodingTestReleasePhasesTAUObjectGeodeRational Rose RealTimeRhapsodyTornadoLambdaTOOLpRISM+SpectraWin CE PlatformBuilderCodeWarriorXray DebuggerLogiscopeCodeTEST12集成开发环境集成开发环境l国外集成开发环境国外集成开发环境Wind River的的TornadoISI公公司司(目目前前已已被被Wind River兼兼并并)的的pRISM+Microtec的的Sp
11、ectraMS的的VC+嵌入式嵌入式Toolkit等等GNU的的GCC/GDB等系列工具等系列工具l国内集成开发环境:国内集成开发环境:Coretek LambdaTools13嵌入式软件的交叉开发环境嵌入式软件的交叉开发环境 l交交叉叉开开发发环环境境是是指指用用于于嵌嵌入入式式软软件件开开发发的的所所有有工工具具软软件件的的集集合合,一一般般包包括括文文本本编编辑辑器器、交交叉叉编编译译器器、交交叉叉调调试试器、仿真器、下载器等工具。器、仿真器、下载器等工具。l交交叉叉开开发发环环境境由由宿宿主主机机和和目目标标机机组组成成,宿宿主主机机与与目目标标机机之间在物理连接的基础上建立起逻辑连接
12、。之间在物理连接的基础上建立起逻辑连接。14嵌入式软件的交叉开发环境嵌入式软件的交叉开发环境 15l宿主机:开发平台宿主机:开发平台建建立立在在硬硬件件资资源源丰丰富富的的PCPC机机(或或者者工工作作站站)上上,有有通通用用操操作作系系统统等等系系统统软软件件提提供供软软件件开开发发支支持持,应应用用程程序序的编辑、编译、链接等过程都是在的编辑、编译、链接等过程都是在HostHost上完成的;上完成的;l目标机:运行平台目标机:运行平台建建立立在在硬硬件件资资源源相相对对有有限限的的嵌嵌入入式式系系统统硬硬件件平平台台上上,除除了了调调试试代代理理没没有有其其他他用用于于嵌嵌入入式式软软件件
13、开开发发的的软软件件资资源;源;l在在开开发发过过程程中中,目目标标机机端端需需接接收收和和执执行行宿宿主主机机发发出出的的各各种种命命令令如如设设置置断断点点、读读内内存存、写写内内存存等等,将结果返回给宿主机,配合宿主机各方面的工作。将结果返回给宿主机,配合宿主机各方面的工作。宿主机和目标机的差别宿主机和目标机的差别 16l物理连接和逻辑连接物理连接和逻辑连接 物物理理连连接接是是指指宿宿主主机机与与目目标标机机上上的的一一定定物物理理端端口口通通过过物物理理线线路路连连接接在在一一起起,连连接接方方式式主主要要有有三三种种:串串口口、以以太太口口和和OCDOCD(On On Chip C
14、hip DebugDebug)方式如)方式如JTAGJTAG、BDMBDM等。等。物理连接是逻辑连接的基础。物理连接是逻辑连接的基础。逻逻辑辑连连接接指指宿宿主主机机与与目目标标机机间间按按某某种种通通信信协协议议建建立立起起来来的的通通信信连连接接,目目前前逐逐步步形形成成了了一一些通信协议的标准。些通信协议的标准。嵌入式软件的交叉开发环境嵌入式软件的交叉开发环境 17嵌入式软件实现阶段的开发过程嵌入式软件实现阶段的开发过程 l设设计计完完成成后后,嵌嵌入入式式软软件件的的开开发发进进入入实实现现阶阶段段,在在这这个个阶阶段段的的开开发发可可分分为为三三个个步步骤骤:生生成成、调调试试和固化
15、运行。和固化运行。软软件件的的生生成成主主要要是是在在宿宿主主机机上上进进行行,开开发发人人员员利利用用各各种种工工具具完完成成对对应应用用程程序序的的编编辑辑、交交叉叉编编译译和和链链接接工工作,生成可供调试或固化的目标程序。作,生成可供调试或固化的目标程序。调调试试是是通通过过交交叉叉调调试试器器完完成成软软件件的的调调试试工工作作。调调试试完完成成后后还还需需进进行行必必要要的的测测试试工工作作,测测试试完完成成后后进进入入到到最最后的固化运行阶段。后的固化运行阶段。固固化化运运行行是是先先用用一一定定的的工工具具将将应应用用程程序序固固化化到到目目标标机机上上,然然后后启启动动目目标标
16、机机,在在没没有有任任何何工工具具干干预预的的情情况况下下应用程序能自动地启动运行。应用程序能自动地启动运行。18嵌入式软件生成阶段嵌入式软件生成阶段l分为三个阶段分为三个阶段源源代代码码程程序序的的编写编写编编译译成成各各个个目目标模块标模块链链接接成成可可供供下下载载调调试试或或固固化化的目标程序的目标程序编辑器编辑器交叉编交叉编译器译器交叉链交叉链接器接器源程源程序序目标目标模块模块可供调可供调试试/固固化化库文库文件件19嵌入式软件的调试嵌入式软件的调试 l交叉调试器交叉调试器 是是指指调调试试程程序序和和被被调调试试程程序序运运行行在在不不同同机机器器上上的的调调试试器器,调调试试器
17、器通通过过某某种种方方式式能能控控制制目目标标机机上上被被调调试试程程序序的的运运行行方方式式,并并且且通通过过调调试试器器能能查查看看和和修修改改目目标标机机上上的的内内存存、寄寄存存器器以以及及被被调试程序中的变量等。调试程序中的变量等。20交叉调试交叉调试非交叉调试非交叉调试调调试试器器和和被被调调试试程程序序运运行行在不同的计算机上在不同的计算机上调调试试器器和和被被调调试试程程序序运运行行在同一台计算机上在同一台计算机上可可独独立立运运行行,无无需需操操作作系系统支持统支持需要操作系统的支持需要操作系统的支持被被调调试试程程序序的的装装载载由由调调试试器完成器完成被被调调试试程程序序
18、的的装装载载由由专专门门的的LoaderLoader程序完成程序完成需需要要通通过过外外部部通通信信的的方方式式来控制被调试程序来控制被调试程序不不需需要要通通过过外外部部通通信信的的方方式来控制被调试程序式来控制被调试程序可可以以直直接接调调试试不不同同指指令令集集的程序的程序只只能能直直接接调调试试相相同同指指令令集集的程序的程序21嵌入式软件的调试嵌入式软件的调试 l交叉调试方式交叉调试方式Rom MonitorRom Monitor方式方式 Rom Emulator Rom Emulator方式方式In Circuit EmulatorIn Circuit Emulator方式方式On
19、 Chip Debugging On Chip Debugging 方式方式lSimulatorSimulator方式(非交叉)方式(非交叉)22最早的嵌入式应用软件调试方法Crash and Burn1)1)在宿主机上编写代码在宿主机上编写代码2)2)在宿主机上编译应用程序,生成可执行程序在宿主机上编译应用程序,生成可执行程序3)3)固化(固化(BurnBurn)到目标机的存储器()到目标机的存储器(EPROMEPROM、FLASHFLASH等)中等)中4)4)启动运行,若正确则转到启动运行,若正确则转到5)5)不正确则在宿主机上改写代码,纠正错误不正确则在宿主机上改写代码,纠正错误6)6)
20、返回返回重复操作重复操作7)7)固化成功,结束固化成功,结束23ROM MonitorlROM MonitorROM Monitor是运行在目标机上的一段程序,是运行在目标机上的一段程序,ROMROM主要指非主要指非易失性记忆体,如易失性记忆体,如FLASHFLASH等。等。lROM MonitorROM Monitor负责监控目标机上被调试程序的运行,通常负责监控目标机上被调试程序的运行,通常和宿主机段的程序一起完成对应用程序的调试。和宿主机段的程序一起完成对应用程序的调试。lROM MonitorROM Monitor预先被固化到目标机的预先被固化到目标机的ROMROM空间,在目标机复空间
21、,在目标机复位后首先执行的就是位后首先执行的就是ROM MonitorROM Monitor程序,它对目标机进行一程序,它对目标机进行一些必要的初始化,然后初始化自己的程序空间,最后等待宿些必要的初始化,然后初始化自己的程序空间,最后等待宿主机段的命令。主机段的命令。lROM MonitorROM Monitor能完成被调试程序的下载,目标机内存和寄能完成被调试程序的下载,目标机内存和寄存器的读写,设置断点,单步执行被调试程序等功能,一些存器的读写,设置断点,单步执行被调试程序等功能,一些高级的高级的ROM MonitorROM Monitor能完成代码分析、系统分析、能完成代码分析、系统分析
22、、ROMROM空间的空间的写操作以及设置各种非常复杂的断点等功能。写操作以及设置各种非常复杂的断点等功能。24ROM MonitorROM Monitor调试结构调试结构最简便的方法25注意:注意:采用本方法,在目标机复位后首先执行的采用本方法,在目标机复位后首先执行的就是就是ROM MonitorROM Monitor,它对目标机进行一些必要的,它对目标机进行一些必要的初始化,然后初始化自己的程序空间,最后就初始化,然后初始化自己的程序空间,最后就等待等待HOSTHOST端的命令。端的命令。ROM Monitor ROM Monitor能在调试模式下完成程序下载、能在调试模式下完成程序下载、
23、目标机内存和寄存器的读写、设置断点、单步执目标机内存和寄存器的读写、设置断点、单步执行等调试功能。行等调试功能。26调试过程:1)在宿主机上编写代码2)在宿主机上使用调试模式交叉编译应用程序,生成可执行程序3)将代码下载到目标机上的RAMRAM空间4)用户使用调试器进行交叉调试5)如果正确转6)不正确则在调试器帮助下定位错误7)修改错误,重复8)将程序固化到目标机上,结束27ROM Monitor的优点l简单、方便;简单、方便;l支持许多高级的调试功能;支持许多高级的调试功能;l可扩展性强;可扩展性强;l成本低廉;成本低廉;l基本上不需要专门的调试硬件支持。基本上不需要专门的调试硬件支持。28
24、ROM 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 Monitor占用占用占用占用CPUCPUCPUCPU时,应用程序不响应外部时,应用程序不响应外部时,应用程序不响应外部时,应用程序不响应外部的中断,因此的中断,因此的中断,因此的中断,
25、因此不便调试有时间特性的程序不便调试有时间特性的程序不便调试有时间特性的程序不便调试有时间特性的程序。3)3)3)3)要求目标机必须有足够的要求目标机必须有足够的要求目标机必须有足够的要求目标机必须有足够的ROMROMROMROM4)4)目标机目标机CPUCPU不支持硬件断点时,不支持硬件断点时,ROM MonitorROM Monitor无法无法调试调试ROMROM程序和设置数据断点。程序和设置数据断点。5)5)5)5)ROM MonitorROM MonitorROM MonitorROM Monitor要要要要占用目标机一定数量的资源占用目标机一定数量的资源占用目标机一定数量的资源占用目
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 软件
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内