当前位置:文档之家› 嵌入式实时操作系统及应用开发-第3版-罗蕾-北航-第10章-嵌入式系统软件的开发

嵌入式实时操作系统及应用开发-第3版-罗蕾-北航-第10章-嵌入式系统软件的开发


– –


测试工具(Testing Tools)
配置管理工具、维护工具等
Rational Rose RealTime ObjectGeode Rhapsody TAU Tornado LambdaTOOL pRISM+ Spectra Win CE Platform Builder CodeWarrior Xray Debugger Logiscope CodeTEST
软硬件集成 将测试完的软件系统装入硬件系统中。进行系 统综合测试。验证系统功能,必须正确无误地实 现系统功能。然后才能将软件固化在硬件系统中 (EPROM)。复杂、费时间。 功能性能测试 将系统在实践中进行检验。如不能满足要求, 还要修改。最糟糕情况下还要回到系统总体设计 阶段,进行重新设计和实现。
嵌入式软件开发工具的分类
• 从以上嵌入式软件开发分类来看,嵌入式 软件开发工具可以分为:
–与嵌入式OS相关的开发工具,用于开发:
• 基于嵌入式OS的应用 • 部分驱动程序等
–与嵌入式OS无关的开发工具,用于开发:
• 基本的驱动程序
• 辅助硬件调试程序 • 系统软件等
嵌入式软件的交叉开发环境
• 交叉开发环境是指用于嵌入式软件开发的 所有工具软件的集合,一般包括:
–文本编辑器 –交叉编译器 –交叉调试器 –仿真器 –下载器等
• 交叉开发环境由宿主机和目标机组成,宿 主机与目标机之间在物理连接的基础上建 立起逻辑连接。
运行平台Target
目标机应用系统 调 试 代 理
开发平台Host
宿主机开发环境
— 应用软件 — 应用中间件 — 目标机OS
运 行 库
— — — —
嵌入式软件实现阶段的开发过程
• 设计完成后,嵌入式软件的开发进入实现阶段, 可分为三个步骤:生成、调试和固化运行。
–软件的生成 主要是在宿主机上进行,利用各种工具完 成对应用程序的编辑、交叉编译和链接工作,生成可 供调试或固化的目标程序。 –调试 是通过交叉调试器完成软件的调试工作。调试完 成后还需进行必要的测试工作。 –固化运行 是先用一定的工具将应用程序固化到目标机 上,然后启动目标机,在没有任何工具干预的情况下 应用程序能自动地启动运行。
硬件设计实现
硬件概要设计 根据系统总体设计,对硬件进行进一步描述。详细确定 各个功能模块的详细特性、内存大小、模块关联、总线等。 要提供一份详细的硬件功能框图,每个模块的输入输出等。 硬件详细设计 给出实现硬件功能的具体器件。设计其周边电路,设计 出电路的原理图。生成PCB图(printed circuit Board。 硬件制作 根据PCB加工出印刷电路板,焊接、装配后调试,直到证 明各个模块连接无错误为止。 硬件测试 对制成的整体硬件进行功能、性能测试,修改。直到完 全达到设计要求为止。
2. 系统设计
系统设计是说明如何将系统分解成为多个任务。 (1)数据流分析 (Data Flow Diagram)
数据流图有4种基本图形符号: 箭头表示 数据流; 圆或椭圆表述数据加工处理,有输 入和输出; 表示数据存储; 方框表示数据 的源点或终点。
以数据流为分析工具,从系统功能开始分析系统 中的数据流。确定主要功能。 每个数据流图都包含变换圈,表示系统完成的功 能,箭头表示变换间的数据流动、数据存储区,数据 词典。
10.2.2 DARTS 分析设计方法
Design Algorithm for Real Time Systems
嵌入式多任务软件开发阶段,着眼于将系 统分为多个并发任务,而非多个模块。要定 义任务间的接口关系,而非模块间的接口。 模块划分和接口关系在任务设计阶段确定的。 DARTS 是结构化分析/设计的扩展,给出 了划分任务的方法,定义任务间的接口机制。
编辑 编译 连接 调试
目标机硬件
宿主机 OS 宿主机硬件
交叉开发环境
嵌入式软件的交叉开发环境
• 宿主机(Host) :是用于开发嵌入式系统的计算 机。一般为 PC 机(或者工作站),具备丰富的软 硬件资源,为嵌入式软件的开发提供全过程支持。 • 目标机(Target):即所开发的嵌入式系统,是 嵌入式软件的运行环境,其硬件软件是为特定应 用定制的。 • 在开发过程中,目标机端需接收和执行宿主机发 出的各种命令如设置断点、读内存、写内存等, 将结果返回给宿主机,配合宿主机各方面的工作。
– 不同类型嵌入式微处理器之间的移植:任务上 下文切换、时钟、中断等 – 同类型微处理器但不同类型硬件板之间的移植: 硬件接口及设备驱动程序
• 工具是否能为基于特定操作系统的应用开 发提供最大支持:
– 运行库与OS相结合 – 提供应用工程创建和管理功能,构建基于特定 操作系统的应用框架 – 对操作系统的剪裁与配置 – 提供高级调试功能 – 提供配套的应用逻辑分析工具、覆盖测试工具 等
第二节 实时软件分析设计方法
10.2 实时软件分析设计方法
10.2.1 实时软件的分析设计要求 一个实时系统是硬件、软件和数据元素的 集成。系统设计人员必须对系统元素需求 恰当地分配功能和性能。实时性与功能一 样重要。 实时软件的三个特征: 1.实时系统是受资源约束的。时间是系统的 首要资源。要在限定的时间内完成一个定 义的任务。
10.1.4 开发环境选定
• 对硬件平台的支持
嵌入式软件开发特点是交叉开发。交叉链接。和交叉调 试,开发工具要能支持选定的硬件平台,生成相应微处理 器的目标程序。 • 编程语言
C/C++,汇编语言,JAVA,……
• 与嵌入式操作系统的关系
根据自己系统情况适当选择OS,购买还是自编,或采用开源软件。 (公开源代码的软件)。购买是需要付费的,自编OS代价高、时间 长,但能获得更好的性能。开源软件需要自己改动,要经过精密仔细 的调试和验证无错(折中方案) 。
10.1.3 操作系统选定
选择依据: • 选择嵌入式OS的必要性 • 自建、购买或使用开源软件 • 对嵌入式操作系统的功能、性能要求 • 与硬件平台和开发工具的关系 • 行业标准 • 技术支持 • 版税或服务费
操作系统与硬件平台的关系
• 操作系统应支持选定的硬件平台
• 如果不支持,需考虑移植工作
软硬件协同开发 • 通常的嵌入 式系统开发
嵌入式 软件开发 嵌入式系统 集成、测试、 验证
嵌入式 硬件开发
• 软/硬件协 同开发
嵌入式软件开发
嵌入式系统 协同设ቤተ መጻሕፍቲ ባይዱ、测试、验证
嵌入式硬件开发
10.1.2 处理器及硬件开发平台的选定
选择依据: • 应用的类型及I/O接口 • 主频及功耗 • 对不同类型存储器的支持 • 封装 • 产品生命力和厂家实力、技术支持及第三 方软件的支持 • 硬件开发平台的选择
PCB 测试
硬件测试
软件设计实现
软件概要设计 软件详细设计 软件实现
软件测试
图中各个术语介绍: 系统定义 此阶段与通用软件工程中的含义一致。是系统生命周期 最简短的阶段。 可行性研究 用于确定是不是存在有效方法来解决系统定义中的关键 问题。来决定该系统有没有开发的必要。 需求分析 确定功能需求、性能需求、环境需求。 分析结果要提交 系统的功能模块图。 系统总体设计 确定嵌入式总体构架,从功能上对软硬件进行划分。选 择嵌入式微处理器、是否使用嵌入式OS,及OS种类等。这个 步骤是最重要环节。
嵌入式软件开发工具 嵌入式软件开发工具的 集成度和可用性将直接关 系到嵌入式系统的开发效 率。
嵌入式软件开发工具的分类
嵌入式软件开发阶段
嵌入式软件开发工具的分类

根据不同的阶段,嵌入式软件开发工具 可以分为:

需求分析工具(Requirement Analysis Tools) 软件设计工具(Software Design Tools) 编码、调试工具(Coding Tools)
No
软件设计实现
软硬件集成 功能性能测试 符合要求
Yes
嵌 入 式 系 统 开 发 过 程
产品
系统总体设计
系 统 总 体 框 架
软 硬 件 划 分
处 理 器 选 定
操 作 系 统 选 定
开 发 环 境 选 定
硬件设计制作
功能模块图设计 硬件概要设计 逻辑电路图设计
硬件详细设计
PCB 设计与制作
硬件制作
Phases
Software Design Coding Test Release Analysis
Requirement
主要嵌入式软件开发工具产品
嵌入式软件开发工具的分类
• 嵌入式软件的开发可分为以下几种 :
–编写简单的板级测试软件,主要是辅助硬件的 调试 –开发基本的驱动程序 –开发特定嵌入式操作系统的驱动程序(板级支 持包) –开发嵌入式系统软件,如嵌入式操作系统等 –开发应用软件
嵌入式软件的交叉开发环境
• 物理连接和逻辑连接 –物理连接是指宿主机与目标机通过物理线路连 接在一起,连接方式主要有三种:
• 串口 • 以太口 • OCD(On Chip Debug)方式,如JTAG等
–物理连接是逻辑连接的基础。 –逻辑连接指宿主机与目标机间按某种通信协议 建立起来的通信连接,目前逐步形成了一些通 信协议的标准。
(确定物体东西位置的为经度,确定位置南北的为纬度)
采样时间和任务计算时间:
陀螺仪及三轴陀螺仪
陀螺仪是一个装在能自由转向的小框架上的小飞轮。当飞轮绕自身 对称轴高速转动时,无论如何改变框架的方位,其中心轴的空间取向始 终保持不变,角动量守恒定律。如飞机上装上三个定向指示仪,并使三 个小飞轮的自转轴相互垂直,飞行员就可以通过飞轮轴相对于机身的指 向来确定飞机的空间取向。单轴的只能测量一个方向的量,一个系统需 三个陀螺仪,而三轴的一个陀螺仪就能替代三个单轴的。
相关主题