嵌入式系统开发过程PPT课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.4.4.2测试阶段-何时测试
1. 分布于开发的每个阶段——debug 2. 单元测试-小模块测试/调试 3. 回归测试
1. 只测试一遍是不够的。每次修改后都应当重新测 试以确认这些修改会不会无意中影响一些看似与 之无关的行为,这被称作回归测试。
2.4.2.6详细设计阶段-软件设计
1. 设计软件子系统
1. 总体设计、模块设计
2. 定义软件接口 3. 模块接口、函数接口
2.4.2.7详细设计阶段-检查设计
小项目
自己审查设计文档
中等项目
拿给同事朋友并向他们解释你的设计
大型项目-审查会
设计者应作一个更正式的报告。由于这是一个设 计审查会,召集一群人,主要由工程师组成,并 尽可能包括一些对项目有不同看法角度的成员, 如做市场的人员、最终用户
OEM板 7、其他。。。
2.4.1.3 对需求的结果进行检查
原因
需求分析阶段可能会发生错误-走弯路
目的
资料的全面性、工作的细致性
方法和内容
干扰的信息(多余) 漏掉的信息(缺少) 超前的信息(一些需要在设计阶段才提出的信息) 矛盾(相互制约) 模棱两可 无法实现
2.4.1.4 确定项目的约束条件
2.4.4 测试阶段
1、测试的原因 2、何时测试 3、测试内容 4、何时停止测试 5、选择测试用例 6、实时失败模式 7、评估测试的覆盖率 8、性能测试 9、维护和测试
2.4.4.1测试阶段-测试的原因
1. 开发过程中已经开始测试了——调试 2. 原因:
1. 在软件中找到错误(在这方面测试是惟一的方法) 2. 减少用户与公司的风险 3. 节约开发与维护成本 4. 提高系统的性能
2.4.2.8详细设计阶段-设计自动化
1. 系统设计阶段很重要,系统设计与开发时间 之比1:2
2. 系统的设计需要软件、硬件的综合知识 3. 容易出错-使用自动化工具
2.4.2.10详细设计阶段-硬件平台简 介 要求最好-多种评估方法
多个方案,选择最优
嵌入式系统硬件平台多样性,例如:
有ARM系列(目前有几十种基于ARM内核的处理器被使 用)、
2.4.3.1 选择开发平台 1、科研开发阶段——
处理器的选处择理速硬度件平台的考虑1/2
项目的开发人员对选择的处理器是否 熟悉
处理器上的I/O功能是否满足系统的 要求
处理器的软件支持工具
处理器的调试支持
处理器制造商的支持可信度如何
1、科研开发阶段—— 选择硬件部件的考虑2/2
产品的需求量
第2章 嵌入式系统设计 与开发技术
教学目的:
掌握嵌入式系统设计过程; 掌握嵌入式系统开发流程; 掌握嵌入式系统调试技术,深入理解JTAG、
软/硬件仿真等; 通过本章学习,能够完成嵌入式系统的分析
与设计。 安排学时:6学时。
主要内容:
2.1 概述 2.2 嵌入式系统总体结构 2.3 嵌入式系统的设计方法 2.4 嵌入式系统开发过程 2.5 嵌入式系统的调试技术 2.6 嵌入式系统设计的新发展及其挑战 2.7 小结
文档1-技术文件目录
描述了所有的技术文件清单
文档2-技术任务书
任务来源、设计依据 产品用途及使用范围 主要工作原理及硬软件分工 基本参数、主要功能、技术指标 总部局、主要部件概述 标准化综合要求 提出国内外同类产品水平比较 关键技术预测 开发周期估算
文档3-技术方案报告
描述了科研开发的技术方案 与实际的项目有关
例如:PC104和定制开发
目标市场的机会如何
购买和自制
软件对硬件的依赖程度
评估板的使用
2、科研开发阶段—— 选择操作系统
嵌入式操作系统的功能,支持部件 配套开发工具的支持 操作系统的移植难度 操作系统是否包括特殊的调试支持 操作系统的内存要求如何 项目程序员是否熟悉此操作系统,主要指此
操作系统通常提供的API 操作系统是否包括所有需要的部件 操作系统是否有目标硬件的驱动程序 操作系统是否有可伸缩性
3、科研开发阶段—— 选择编程语言考虑
软件开发人员最熟练的语言是哪种 语言使用的广泛程度 语言的性能如何 例如:C语言、汇编语言、Java,C++等
2.4.3.2科研开发阶段-软件开发
的期望值是什么?
3、罗列用户的需求4/4
(16)如何给系统供电? (17)系统如何向用户通报故障? (18)是否需要任何手动或机械代用装置? (19)系统是否将具有远程诊断或更正问题的功
能? (20)其他问题
4、简单的需求表格
名称 目的 输入 输出 功能 性能 生产成本 功耗 物理尺寸和重量
5、需求的内部一致性(注)
文档6-技术设计说明书-软件
总体方案及体系结构 任务调度原理或总控流程说明 各种功能的实现方法、处理流程或工
作原理 数据库说明、逻辑结构 数据格式说明 内存分配方案 各部分接口设计 通用子程序和标准子程序设计
文档7-形式试验报告
文档8-试制总结
1.技术水平 国际、国内、先进?
2.试制过程中出现的问题的解决措施 3.对没有达到技术任务书要求进行说明
2.4.1.5 概要设计
1、概要设计-初步设计 2、硬件设计
功能设计 结构化设计 物理设计
3、软件设计
功能分析与设计 软件模块划分 模块开发与实现
2.4.2 详细设计阶段
审查需求分析资料… 体系结构/整体设计… 硬件与软件划分… 硬件与软件的设计次序… 硬设计软件 3. 软硬件同时设计
根据项目的情况自由选择
2.4.2.5详细设计阶段-硬件设计
1. 设计硬件子系统:top-down方法
1. 分成模块 2. 设计框图 3. 例:CPU子系统、存储器子系统等
2. 定义硬件接口
1. I/O端口 2. 硬件寄存器 3. 共享内存 4. 硬件中断 5. 存储器空间分配 6. 处理器的运行速度
Motorola
PowerPC系列、 Coldfire系列、 M.core系列等、 Dragon Ball系列,
NEC公司的VR系列, Hitachi公司SH3,SH4系列等等 其它
2.4.3 实现阶段
1、选择开发平台。。。
硬件平台、嵌入式操作系统、开发 语言、开发工具
2、软件开发过程。。。 3、开发阶段的文档。。。
文档4-产品标准
产品范围 引用标准 基本参数及形式 技术要求(功能、性能、影响量) 试验方法(采用国际标准) 检验规则
文档5-技术条件(进厂)
使用范围 技术要求 试验方法
文档6-技术设计说明书-硬件
总体方案 产品结构 产品性能 电路工作原理分析、技巧、结构 工艺合理性 主要故障鉴别方法
2.1 概述
先讲解嵌入式系统总体结构;再分析嵌入式系统设计 方法;系统地介绍嵌入式系统设计方法,采用软硬件 协同技术,完成和进行嵌入式系统设计;最后从嵌入 式系统的产品开发过程的4个阶段所需要做的工作等 方面来讨论嵌入式系统开发过程的一般知识,以及嵌 入式系统开发过程中的系统调试方法。读者通过本章 的学习,可以掌握作为一个项目的设计师和具体开发 人员所需要的知识,熟悉在各个阶段需要做的具体工 作,以保证项目按部就班地执行和完成。
1、分析用户对产品的需求
用户:一般用户、公司内部的市场部门等 需求指标:
功能 价格 系统的尺寸和重量 功耗 其他。。。
2、确认需求
用户的表达方式
。。。
系统设计者的表达方式
。。。
交互的一致性
。。。
3、罗列用户的需求1/4
(1)系统用于什么任务? (2)系统从用户或其他源接收什么输入? (3)系统从用户或其他源输出什么? (4)用户想要如何同系统打交道? (5)系统的重量和体积如何?
2.4.2.1详细设计阶段-审查分析资料
1. 审查分析资料(来自需求分析阶段)
。。。
2. 审查约束条件(来自需求分析阶段)
。。。
2.4.2.2详细设计阶段-体系结构设计
描述系统的功能如何实现是体系结构设计的 目的 。
决定因素
1. 系统是硬实时系统还是软实时系统 2. 操作系统是否需要嵌入 3. 物理系统的成本、尺寸和耗电量是否是产品成功
2.2 嵌入式系统总体结构
2.2.1 硬件层 2.2.2 中间层 2.2.3 软件层 2.2.4 功能层
2.3 嵌入式系统的设计方法
2.3.1 嵌入式系统设计流程 2.3.2 嵌入式系统的一般设计方法 2.3.3 嵌入式系统的软硬件协同设计技术
2.3.1 嵌入式系统设计流程
2.3.2 嵌入式系统的一般设计方法
图2-3 单片机系统的开发流程
图2-4 嵌入式系统的开发流程
2.3.3 嵌入式系统的软硬件协同设计技术
2.4 嵌入式系统开发过程
2.4.1 需求分析阶段 2.4.2 详细设计阶段 2.4.3 实现阶段 2.4.4 测试阶段
嵌入式产品开发过程
















概要设计 详细设计
3、罗列用户的需求2/4
(6)系统连接何种外设? (7)系统是否需要运行某些现存的软件? (8)系统处理哪种类型的数据? (9)系统是否要与别的系统通讯? (10)系统是单机还是网络系统?
3、罗列用户的需求3/4
(11)系统的响应时间是多少? (12)需要什么安全措施? (13)系统在什么样的环境下运行? (14)外部存储媒介和内存需要多大? (15)系统的可拆装性,可靠性和牢固性
的关键因素 4. 选择处理器和相关硬件 5. 其他
2.4.2.3详细设计阶段-硬件与软件划 分
决定哪些用硬件实现,哪些用软件实现? 例如:
1. 浮点运算 2. 网络通信控制器实现的功能 3. 软调制解调器/硬调制解调器 4. 软件压缩解压/硬件压缩解压图像
2.4.2.4详细设计阶段-硬件与软件设计次 序
优化算法——乘法可以通过左移操作来完 成
将访问最频繁的变量声明为寄存器变量或 自动变量
只要可能,尽量使用无符号数据类型 如果某个函数或例程消耗大量的计算时间,
那么就将该函数或例程用汇编语言来编码 充分利用编译器提供的优化
2.4.3.3科研开发阶段——文档
技术文件目录 技术任务书 技术方案报告 产品标准(草案) 技术条件(进厂) 可靠性技术设计 技术设计说明书 形式试验报告 试制报告
约束条件:属于项目实施过程中的不利因素,指 的是项目实施过程中限制项目按时圆满完成的内 部和外部因素。
约束条件 ½ ① 是否要满足项目的阶段性或竣工的工期限制? ② 项目的部分或全体是否限制在一个固定的预算内? ③ 分派到该项目的最大人数是多少? ④ 每个人员每周在此项目上能工作多少小时? ⑤ 员工的技术知识和经验是否足够?
在写完需求以后,对它们的内部一致性进行 检查:
是否忘记了给某个功能指定输入或输出? 是否考虑了系统运行的所有方式? 是否有一些不切实际的要求? 系统是否可以实现?
2.4.1.2 确定硬件软件
1、处理器选型 2、总线的吞吐量 3、操作系统 4、编程语言 5、第三方软件或库函数 6、第三方的硬件:开发板、评估板、
2.4.1 需求分析阶段
2.4.1.1 分析用户的需求 2.4.1.2 确定硬件软件 2.4.1.3 检查需求分析的结果 2.4.1.4 确定项目的约束条件 2.4.1.5 概要设计
2.4.1.1 分析用户的需求
1、分析用户对产品的需求 2、确认需求 3、罗列用户的需求 4、设计简单的需求表格 5、需求的内部一致性
嵌入式系统的软件开发过程
准备交叉开发环境 编译和连接 重定位和下载 调试
在主机系统上验证软件 在目标系统上验证软件 代码优化-续…
代码优化1/2
清除程序中的无用代码 清除为调试所引入的代码 避免使用大型的库例程 避免使用递归式例程,因为它们需
要很大的堆栈 避免浮点操作
代码优化2/2
2.4.1.4 确定项目的约束条件
约束条件 2/2
⑥ 员工对要解决的问题是否熟悉? ⑦ 员工和关键的人才地处何处? ⑧ 你是否必须要采用某种硬件? ⑨ 你是否必须要采用某种工具软件?
约束(限制)条件的考虑(注)
约束随时都可能出现 约束影响所选择的方法 约束会滋长新的约束 太多的约束将使进行中的项目成为不可能
相关文档
最新文档