嵌入式系统软件开发和设计流程复习课程(共13页).doc
《嵌入式系统软件开发和设计流程复习课程(共13页).doc》由会员分享,可在线阅读,更多相关《嵌入式系统软件开发和设计流程复习课程(共13页).doc(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上 本文由hquwgz贡献 ppt文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 嵌入式系统及应用 第九章 嵌入式系统软件的开发 主要内容 嵌入式软件开发工具 嵌入式系统开发模式 实时软件分析设计方法 第一节 嵌入式软件开发工具 嵌入式软件开发工具的分类 嵌入式软件的交叉开发环境 嵌入式软件实现阶段的开发过程 嵌入式软件开发工具的发展趋势 嵌入式软件开发工具 “工欲善其事,必先利其器” 嵌入式软件开发工具的 集成度和可用性将直接关 系到嵌入式系统的开发效 率。 嵌入式软件开发工具的分类 嵌入式软件开发阶段 嵌入式软件开发工具的分类 根据不
2、同的阶段,嵌入式软件开发工具 可以分为: 需求分析工具(Requirement Analysis Tools) 软件设计工具(Software Design Tools) 编码、调试工具(Coding Tools) 测试工具(Testing Tools) 配置管理工具、维护工具等 Rational Rose RealTime ObjectGeode Rhapsody TAU Tornado LambdaTOOL pRISM+ Spectra Win CE Platform Builder CodeWarrior Xray Debugger Logiscope CodeTEST Phases R
3、equirement Analysis Software Design Coding Test Release 主要嵌入式软件开发工具产品 嵌入式软件开发工具的分类 嵌入式软件的开发可以分为以下几种 : 编写简单的板级测试软件,主要是辅助硬件的调 试 开发基本的驱动程序 开发特定嵌入式操作系统的驱动程序(板级支持 包) 开发嵌入式系统软件,如:嵌入式操作系统等 开发应用软件 嵌入式软件开发工具的分类 从以上嵌入式软件开发分类来看,嵌入式 软件开发工具可以分为: 与嵌入式OS相关的开发工具,用于开发: 基于嵌入式OS的应用 部分驱动程序等 与嵌入式OS无关的开发工具,用于开发: 基本的驱动程序
4、辅助硬件调试程序 系统软件等 嵌入式软件的交叉开发环境 交叉开发环境是指用于嵌入式软件开发的 所有工具软件的集合,一般包括: 文本编辑器 交叉编译器 交叉调试器 仿真器 下载器等 交叉开发环境由宿主机和目标机组成,宿 主机与目标机之间在物理连接的基础上建 立起逻辑连接。 运行平台Target 目标机应用系统 调 试 代 理 开发平台Host 宿主机开发环境 运 行 库 应用软件 应用中间件 目标机OS 目标机硬件 编辑 编译 连接 调试 宿主机 OS 宿主机硬件 交叉开发环境 嵌入式软件的交叉开发环境 宿主机(Host) :是用于开发嵌入式系统的计算 机。一般为PC机(或者工作站),具备丰富的
5、软 硬件资源,为嵌入式软件的开发提供全过程支持。 目标机(Target):即所开发的嵌入式系统,是 嵌入式软件的运行环境,其硬件软件是为特定应 用定制的。 在开发过程中,目标机端需接收和执行宿主机发 出的各种命令如设置断点、读内存、写内存等, 将结果返回给宿主机,配合宿主机各方面的工作。 嵌入式软件的交叉开发环境 物理连接和逻辑连接 物理连接是指宿主机与目标机通过物理线路连接 物理连接 在一起,连接方式主要有三种: 串口 以太口 OCD(On Chip Debug)方式,如JTAG、BDM等 物理连接是逻辑连接的基础。 逻辑连接指宿主机与目标机间按某种通信协议建 逻辑连接 立起来的通信连接,目
6、前逐步形成了一些通信协 议的标准。 嵌入式软件实现阶段的开发过程 设计完成后,嵌入式软件的开发进入实现阶段, 可分为三个步骤:生成、调试和固化运行。 软件的生成主要是在宿主机上进行,利用各种工具完成 软件的生成 对应用程序的编辑、交叉编译和链接工作,生成可供调试 或固化的目标程序。 调试是通过交叉调试器完成软件的调试工作。调试完成 调试 后还需进行必要的测试工作。 固化运行是先用一定的工具将应用程序固化到目标机上, 固化运行 然后启动目标机,在没有任何工具干预的情况下应用程序 能自动地启动运行。 嵌入式软件生成阶段 三个过程 源代码程序的编 写 编译成各个目标 模块 链接成可供下载 调试或固化
7、的目 标程序 库文件 源程序 目标 模块 可供调 试 /固 化 编辑器 交叉编 译器 交叉链 接器 交叉编译 把在宿主机上编写的高级语言程序编译成 可以运行在目标机上的代码,即在宿主机 上能够编译生成另一种CPU(嵌入式微处 理器)上的二进制程序。 嵌入式软件的调试 交叉调试器 是指调试程序和被调试程序运行在不同机器上的 调试器 调试器通过某种方式能控制目标机上被调试程序 的运行方式 通过调试器能查看和修改目标机上的内存、寄存 器以及被调试程序中的变量等 交叉调试 调试器和被调试程序运行在不同 的计算机上 可独立运行,无需操作系统支持 可独立运行, 被调试程序的装载由调试器完成 需要通过外部通
8、信的方式来控制 被调试程序 可以直接调试不同指令集的程序 非交叉调试 调试器和被调试程序运行在同一 台计算机上 需要操作系统的支持 被调试程序的装载由专门的 Loader程序完成 Loader程序完成 不需要通过外部通信的方式来控 制被调试程序 只能直接调试相同指令集的程序 嵌入式软件的调试 交叉调试方式 Crash and Burn Rom Monitor Rom Emulator In Circuit Emulator On Chip Debugging Simulator方式(非交叉) 在宿主机上编写代码 反复检查代码, 反复检查代码,直到编译 通过, 通过,生成可执行程序 将程序固化(
9、 将程序固化(Burn)到目标机的非易失 ) 性存储器( 性存储器(E2PROM、FLASH等)中 、 等 Crash and Burn 启动目标机运行, 启动目标机运行,观 察程序是否正常工作 N 最早的 嵌入式 应用软 件调试 方法。 Y 在宿主机上反复检查 码,查找问题根源 改写代码 结束 ROM Monitor ROM Monitor是被固化且运行在目标机上的 一段程序,负责监控目标机上被调试程序 的运行,与宿主机端的调试器一起完成对 应用程序的调试。 调试器与ROM Monitor之间的通信遵循远程 调试协议。 宿主机 调试器 目标机 监控程 序(ROM 被调试 Monitor) 程
10、序 嵌入式 硬件 物理上的连接 ROM Monitor调试方式 调试方式 逻辑上的连接 Windows或其它桌 或其它桌 面操作系统 PC机等硬件 机等硬件 ROM Monitor 在目标机上电或复位后首先执行的就是 ROM Monitor,它对目标机进行一些必要的 初始化 初始化要求的外围设备,如最基本的串口和用于 内存刷新的系统计时器芯片; 初始化用于下载映像的内存系统; 初始化中断控制器和安装中断处理程序。 初始化自己的程序空间 等待宿主机端的命令 ROM Monitor ROM Monitor能配合调试器完成: 程序映像下载 对目标机系统内存的读写 对寄存器的读写 设置和清除不同类型的
11、断点 单步执行指令 复位系统 等调试功能 ROM Monitor 调试过程 (1)启动目标机,监控器掌握对目标机的控制,等待和 调试器建立连接; (2)启动调试器,并和监控器建立起通信连接; (3)使用调试器将应用程序下载到目标机上的RAM空间 中; (4)使用调试器进行调试,发出各种调试命令,监控器 解释并执行这些命令,通过目标机上的各种异常来 获取对目标机的控制,将命令执行结果回传给调试 器; (5)如果程序有问题,在调试器的帮助下定位错误;修 改之后再重新编译链接并下载程序,开始新的调试, 如此反复直至程序正确运行为止。 ROM Monitor 优点 1) 提高调试程序的效率 ,缩短开发
12、周期, 降低成本 2) 简单、方便 3) 可扩展性强,可支持许多高级调试功能 4) 成本低廉,不需专门的调试硬件支持 5) 几乎所有的交叉调试器都支持这种方式 ROM Monitor 缺点 1) 2) Debug Monitor需要用Crash and Burn方法开发。 当ROM Monitor占用CPU时,应用程序不响应外部的中 断,因此不便调试有时间特性的程序。 某些调试功能依赖于CPU硬件的支持(如硬件断点功能) ROM Monitor要占用目标机一定数量的资源,如CPU、 RAM、ROM和通信设备等资源。 调试环境不同于实际目标环境。 3) 4) 5) 仿真开发方式 嵌入式应用的开发
13、经常会遭遇缺少目标 机环境、缺乏目标机芯片等资源的问题, 而开发过程又不可能停止,因此自然就 提出了根据不同的应用需要,利用仿真 器件、仿真环境进行开发的方法。 硬件仿真开发 ROM Emulator ICE OCD 软件仿真开发 ROM Emulator ROM Emulator是一种用于替代目标机上的 ROM芯片的设备,即ROM仿真器。利用这 种设备,目标机可以没有ROM芯片,但目 标机的CPU可以读取ROM Emulator设备上 ROM芯片的内容:ROM Emulator设备上的 ROM芯片的地址可以实时地映射到目标机 的ROM地址空间,从而仿真(Emulation) 目标机的ROM。
14、 ROM Emulator ROM Emulator的调试方式是一种不完全的 调试方式:ROM Emulator设备只是为目标 机提供ROM芯片和在Target和Host间建立 一条高速的通信通道,因此它经常和前面 两种调试方式结合起来形成一种完备的调 试方式。ROM Emulator的典型应用就是和 ROM Monitor的调试方式相结合。 ROM Emulator 优点 目标机可以没有ROM芯片、可以使用ROM Emulator提供的ROM空间且不需要用别的 工具来写ROM。 缺点 目标机必须能支持外部ROM存储空间,而 且由于其通常要和ROM Monitor配合使用, 因此它拥有ROM
15、Monitor的所有缺点。 ICE ICE(In-Circuit Emulator)是一种用于替代 目标机上CPU的设备,即在线仿真器。 它比一般的CPU有更多的引出线,能够将 内部的信号输出到被控制的目标机。 ICE上的Memory也可以被映射到用户的程 序空间,这样即使目标机不存在的情形下 也可以进行代码的调试。 ICE 连接ICE和目标机时,一般是将目标机的CPU 取下,而将ICE的CPU引出线接到目标机的 CPU插槽。 用ICE进行调试时,在Host端运行的调试器通 过ICE来控制目标机上运行的程序。 宿主开 发平台 ICE调试结构 调试结构 目标平台 ICE ICE 功能特点 同时支
16、持软断点和硬件断点的设置 设置各种复杂的断点和触发器 实时跟踪目标程序的运行,并可实现选择性的 跟踪 支持“Time Stamp” 允许用户设置“Timer” 提供“Shadow RAM”,能在不中断被调试程序 的运行下查看内存和变量即非干扰调试查询 ICE 适用于: 1) 2) 3) 4) 调试实时的应用系统 调试设备驱动程序 对硬件进行功能和性能的测试 实时性能分析 缺点: 1) 2) 价格太昂贵,不利于团队开发 所仿CPU有限 OCD OCD(On Chip Debugging)是CPU芯片 提供的一种调试功能(片上调试),可以 认为是一种廉价的ICE功能:OCD的价格只 有ICE的20
17、%,但提供了ICE 80%的功能。 宿主机 调试器 目标机 逻辑上的连接 被调试程序 Windows或其它桌 或其它桌 面操作系统 PC机等硬件 机等硬件 仿真器 物理连接 并口、 并口、串口 或网络接口 为特定处理 器而建造 OCD接 嵌入式 接 硬件 口 针形连接器 OCD调试结构 调试结构 OCD 调试方法 1) 2) 3) 将CPU的模式分为一般模式和调试模式 一般模式下, CPU从内存读取指令执行 调试模式下,CPU首先从调试端口读取指令,通过调试 端口可以控制CPU进入和退出调试模式;Host端的调试 器可以直接向目标机发送要执行的指令,读写目标机的 内存和各种寄存器,控制目标程序
18、的运行以及完成各种 复杂的调试功能。 OCD 优点 1) 2) 3) 4) 5) 不占用目标机的资源 调试环境和最终的程序运行环境基本一致 支持软硬断点、Trace功能 精确计量程序的执行时间 提供时序分析功能 OCD 缺点 1) 调试的实时性不如ICE 2) 不支持非干扰调试查询 3) CPU必需具有OCD功能 OCD 存在各种实现 ? ? BDM(Background Debugging Mode) JTAG(Joint Test Access Group)(主流方式) ( )(主流方式 )(主流方式) OnCE(On Chip Emulation) 各种OCD仿真器实例 边界扫描技术(J
19、TAG) JTAG标准测试访问接口与边界扫描结构 (Standard Test Access Port and Boundary Scan Architecture),已被IEEE1149.1标准所 采纳,是面向用户的测试接口。 该接口一般由4个引脚组成: 测试数据输入(TDI) 测试数据输出(TDO) 测试时钟(TCK) 测试模式选择引脚(TMS) 异步测试复位引脚(TRST,可选) 边界扫描技术(JTAG) 优点 可以通过边界扫描操作测试整个板的电气连接,特别为表 面贴元件提供方便 各个引脚信号的采样,并可强制引脚输出用以测试外围芯 片 可以软件下载、执行、调试和控制,为复杂的实时跟踪调
20、试提供路径 可以进行多内核和多处理器的板级和芯片级的调试,通过 串接 ,为芯片制造商提供芯片生产、测试的途径 不占用系统资源,能够调试没有外部总线的芯片,代价非 常小 边界扫描技术(JTAG) 缺点 通过串口依次传递数据,速度比较慢 只能进行软件断点级别的调试 不能完成实时跟踪和多种事件触发等复杂调试功 能 几种增强版本 ARM芯片的实时调试方案(E-TRACE) 背景调试模式BDM 片上仿真OnCE Nexus标准 提出一个在JTAG之上的嵌入式处理器调试的统一 标准 将调试开发分成四级 第一级使用JTAG的简单静态调试; 第二级支持编程跟踪和实时多任务的跟踪,并允许用户用 I/O引脚作为多
21、路复用辅助调试口; 第三级包括处理器运行时的数据写入跟踪和存储器的读写 跟踪; 第四级增加了存储替换并触发复杂的硬件断点。 Nexus标准 通过Nexus 标准可以解决以下问题 调试内部总线没有引出的处理器,如含有片 内存储器的芯片 传统在线仿真器无法实现的高速调试 深度流水线和有片上Cache的芯片,能够探测 具体哪条指令被取指和最终执行 可以稳定地进行多内核处理器的调试 Simulator 交叉开发方式存在如下缺点: 硬件支持 必须有目标机或评估板 易使用性 普通编程人员不熟悉 廉价性 成本高 不高 可移植性、可扩展性 团队开发 较难 开发周期 较长 Simulator 一种软件仿真器,在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统软件 开发 设计 流程 复习 课程 13
限制150内