02嵌入式系统开发过程

上传人:yx****d 文档编号:243436878 上传时间:2024-09-23 格式:PPT 页数:61 大小:166KB
返回 下载 相关 举报
02嵌入式系统开发过程_第1页
第1页 / 共61页
02嵌入式系统开发过程_第2页
第2页 / 共61页
02嵌入式系统开发过程_第3页
第3页 / 共61页
点击查看更多>>
资源描述
,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,嵌入式系统原理、设计与应用,2 嵌入式系统开发过程,电话:4706002-8052,1,需求分析,系统测试,科研开发,方案设计,概要设计,详细设计,嵌入式产品开发过程,2,内容,需求分析,系统设计(概要设计、详细设计),科研开发,-,系统实现,测试阶段,3,1、需求分析阶段,contents,分析用户的需求,确定硬件软件,检查需求分析的结果,确定项目的约束条件,概要设计,4,1.1 需求分析-分析用户的需求,contents,分析用户对产品的需求,确认需求,罗列用户的需求,设计简单的需求表格,需求的内部一致性,5,1.1.1 需求分析-分析用户对产品的需求,用户,:一般用户、公司内部的市场部门等,需求指标:,功能,价格,系统的尺寸和重量,功耗,其他。,6,1.1.2需求分析-确认需求,用户的表达方式,。,系统设计者的表达方式,。,交互的一致性,。,7,1.1.3需求分析-罗列用户的需求1/4,(1)系统用于什么任务?,(2)系统从用户或其他源接收什么输入?,(3)系统从用户或其他源输出什么?,(4)用户想要如何同系统打交道?,(5)系统的重量和体积如何?,8,1.1.3需求分析-罗列用户的需求2/4,(6)系统连接何种外设?,(7)系统是否需要运行某些现存的软件?,(8)系统处理哪种类型的数据?,(9)系统是否要与别的系统通讯?,(10)系统是单机还是网络系统?,9,1.1.3需求分析-罗列用户的需求3/4,(11)系统的响应时间是多少?,(12)需要什么安全措施?,(13)系统在什么样的环境下运行?,(14)外部存储媒介和内存需要多大?,(15)系统的可拆装性,可靠性和牢固性的期望值是什么?,10,1.1.3需求分析-罗列用户的需求4/4,(16)如何给系统供电?,(17)系统如何向用户通报故障?,(18)是否需要任何手动或机械代用装置?,(19)系统是否将具有远程诊断或更正问题的功能?,(20)其他问题,11,1.1.4需求分析-简单的需求表格,12,1.1.5需求的内部一致性(注),在写完需求以后,对它们的内部一致性进行检查:,是否忘记了给某个功能指定输入或输出?,是否考虑了系统运行的所有方式?,是否有一些不切实际的要求?,系统是否可以实现?,13,1.2 需求分析-确定硬件软件,处理器选型,总线的吞吐量,操作系统,编程语言,第三方软件或库函数,第三方的硬件:开发板、评估板、,OEM,板,其他。,14,1.3需求分析-对需求的结果进行检查,原因,需求分析阶段可能会发生错误,-,走弯路,目的,资料的全面性、工作的细致性,方法和内容,干扰的信息(多余),漏掉的信息(缺少),超前的信息(一些需要在设计阶段才提出的信息),矛盾(相互制约),模棱两可,无法实现,15,1.4 需求分析-确定项目的约束条件,约束条件:,属于项目实施过程中的不利因素,指的是项目实施过程中限制项目按时圆满完成的内部和外部因素。,约束条件 ,是否要满足项目的阶段性或竣工的工期限制?,项目的部分或全体是否限制在一个固定的预算内?,分派到该项目的最大人数是多少?,每个人员每周在此项目上能工作多少小时?,员工的技术知识和经验是否足够?,16,1.4 需求分析-确定项目的约束条件,约束条件 2/2,员工对要解决的问题是否熟悉?,员工和关键的人才地处何处?,你是否必须要采用某种硬件?,你是否必须要采用某种工具软件?,17,约束(限制)条件的考虑(注),约束随时都可能出现,约束影响所选择的方法,约束会滋长新的约束,太多的约束将使进行中的项目成为不可能,18,1.5需求分析-概要设计,概要设计,-,初步设计,硬件设计,功能设计,结构化设计,物理设计,软件设计,功能分析与设计,软件模块划分,模块开发与实现,19,2详细设计阶段,contents,审查,需求分析,资料,体系结构,/,整体设计,硬件与软件划分,硬件与软件的设计次序,硬件设计,软件设计,检查设计,20,2.1详细设计阶段-审查分析资料,审查,分析资料,(来自需求分析阶段),。,审查,约束条件,(来自需求分析阶段),。,21,2.2详细设计阶段-体系结构设计,描述系统的功能如何实现是,体系结构设计,的目的 。,决定因素,系统是硬实时系统还是软实时系统,操作系统是否需要嵌入,物理系统的成本、尺寸和耗电量是否是产品成功的关键因素,选择处理器和相关硬件,其他,22,2.3详细设计阶段-硬件与软件划分,决定哪些用硬件实现,哪些用软件实现?,例如:,浮点运算,网络通信控制器实现的功能,软调制解调器,/,硬调制解调器,软件压缩解压,/,硬件压缩解压图像,23,2.4详细设计阶段-,硬件与软件设计次序,方案,先设计硬件,先设计软件,软硬件同时设计,根据项目的情况自由选择,24,2.5详细设计阶段-,硬件设计,设计硬件子系统:,top-down,方法,分成模块,设计框图,例:,CPU,子系统、存储器子系统等,定义硬件接口,I/O,端口,硬件寄存器,共享内存,硬件中断,存储器空间分配,处理器的运行速度,25,2.6详细设计阶段-,软件设计,设计软件子系统,总体设计、模块设计,定义软件接口,模块接口、函数接口,26,2.7详细设计阶段-,检查设计,小项目,自己审查设计文档,中等项目,拿给同事朋友并向他们解释你的设计,大型项目-审查会,设计者应作一个更正式的报告。由于这是一个设计审查会,召集一群人,主要由工程师组成,并尽可能包括一些对项目有不同看法角度的成员,如做市场的人员、最终用户,27,2.8详细设计阶段-,设计自动化,系统设计阶段很重要,系统设计与开发时间之比,1:2,系统的设计需要软件、硬件的综合知识,容易出错,-,使用自动化工具,28,2.10详细设计阶段-,硬件平台简介,要求最好-多种评估方法,多个方案,选择最优,嵌入式系统硬件平台多样性,,例如:,有ARM系列(目前有几十种基于ARM内核的处理器被使用)、,Motorola,PowerPC系列、,Coldfire系列、,M.core系列等、,Dragon Ball系列,,NEC公司的VR系列,,Hitachi公司SH3,SH4系列等等,其它,29,3科研开发阶段,contents,选择开发平台。,硬件平台、嵌入式操作系统、开发语言、开发工具,软件开发过程。,开发阶段的文档。,30,3.1.1科研开发阶段-选择硬件平台的考虑1/2,处理器的处理速度,项目的开发人员对选择的处理器是否熟悉,处理器上的,I/O,功能是否满足系统的要求,处理器的软件支持工具,处理器的调试支持,处理器制造商的支持可信度如何,31,3.1.1科研开发阶段-选择硬件部件的考虑2/2,产品的需求量,例如:,PC104,和定制开发,目标市场的机会如何,购买和自制,软件对硬件的依赖程度,评估板的使用,32,3.1.2科研开发阶段-选择操作系统,嵌入式操作系统的功能,支持部件,配套,开发工具的支持,操作系统的,移植难度,操作系统是否包括特殊的调试支持,操作系统的内存要求如何,项目程序员是否熟悉此操作系统,主要指此操作系统通常提供的,API,操作系统是否包括所有需要的部件,操作系统是否有目标硬件的驱动程序,操作系统是否有可伸缩性,33,3.1.3科研开发阶段-选择编程语言考虑,软件开发人员最熟练的语言是哪种,语言使用的广泛程度,语言的性能如何,例如:,C,语言、汇编语言、,Java,,,C+,等,34,3.2科研开发阶段-,软件开发,嵌入式系统的软件开发过程,准备交叉开发环境,编译和连接,重定位和下载,调试,在主机系统上验证软件,在目标系统上验证软件,代码优化,-,续,35,代码优化1/2,清除程序中的无用代码,清除为调试所引入的代码,避免使用大型的库例程,避免使用递归式例程,因为它们需要很大的堆栈,避免浮点操作,36,代码优化2/2,优化算法,乘法可以通过左移操作来完成,将访问最频繁的变量声明为寄存器变量或自动变量,只要可能,尽量使用无符号数据类型,如果某个函数或例程消耗大量的计算时间,那么就将该函数或例程用汇编语言来编码,充分利用编译器提供的优化,37,3.3科研开发阶段-文档,contents,技术文件目录,技术任务书,技术方案报告,产品标准(草案),技术条件(进厂),可靠性技术设计,技术设计说明书,形式试验报告,试制报告,38,文档1-技术文件目录,描述了所有的技术文件清单,39,文档2-技术任务书,任务来源、设计依据,产品用途及使用范围,主要工作原理及硬软件分工,基本参数、主要功能、技术指标,总部局、主要部件概述,标准化综合要求,提出国内外同类产品水平比较,关键技术预测,开发周期估算,40,文档3-技术方案报告,描述了科研开发的技术方案,与实际的项目有关,41,文档4-产品标准,产品范围,引用标准,基本参数及形式,技术要求(功能、性能、影响量),试验方法(采用国际标准),检验规则,42,文档5-技术条件(进厂),使用范围,技术要求,试验方法,43,文档6-技术设计说明书-硬件,总体方案,产品结构,产品性能,电路工作原理分析、技巧、结构,工艺合理性,主要故障鉴别方法,44,文档6-技术设计说明书-软件,总体方案及体系结构,任务调度原理或总控流程说明,各种功能的实现方法、处理流程或工作原理,数据库说明、逻辑结构,数据格式说明,内存分配方案,各部分接口设计,通用子程序和标准子程序设计,45,文档7-形式试验报告,46,文档8-试制总结,1技术水平,国际、国内、先进?,2试制过程中出现的问题的解决措施,3对没有达到技术任务书要求进行说明,47,4测试阶段,contents,测试的原因,何时测试,测试内容,何时停止测试,选择测试用例,实时失败模式,评估测试的覆盖率,性能测试,维护和测试,48,4.1测试阶段-测试的原因,开发过程中已经开始测试了,调试,原因:,在软件中找到错误(在这方面测试是惟一的方法),减少用户与公司的风险,节约开发与维护成本,提高系统的性能,49,4.2测试阶段-何时测试,分布于开发的每个阶段,debug,单元测试,-,小模块测试,/,调试,回归测试,只测试一遍是不够的。每次修改后都应当重新测试以确认这些修改会不会无意中影响一些看似与之无关的行为,这被称作回归测试。,使用测试脚本,50,4.3测试阶段-测试内容/方法,功能测试,-,黑盒测试,覆盖测试,-,白盒测试,灰盒测试,51,黑盒测试,被测对象,测试输入,测试输出,理想测试情况:遍历所有输入,实际测试情况:简单枚举输入,52,白盒测试-1/2,if (condition1),action1( );,action2( );,else,action3( );,53,白盒测试-2/2,switch(condition),case condition1:,action1( );,break;,case contion2:,action2( );,break;,default:,action3( );,break;,54,白盒测试的要求,遍历所有的程序分支,人为地给定分支条件,特别地,对于正常情况下程序运行不可达的代码也需要遍历,55,4.4测试阶段-何时停止测试,停机定理:如果要找出所有的错误,那么测试是不可能停止的,必须永远进行下去。,不可能证明软件是无错的,只能证明有错,最常见的停止标准是:,当老板发话时,当新一轮测试周期找到比某预计值更少的新错误时,在没有发现新错误的情况下,已经达到某个确定的覆盖率限度时,56,4.6测试阶段考虑,不可预知的事件发生后,出现什么问题,利用关键序列进行测试,关于时间确定性的测试,系统长期运行出现错误,关于使用模拟测试平台,57,4.7测试阶段-评估测试的覆盖率,软件插装,printf,方法,直接写内存方法,-,系统没有合适的显示设备,低干扰,printf,-,普通,printf,效率低,分支,/,循环语句的遍历,硬件插装,使用仿真存储器,逻辑分析仪,软件性能分析仪,58,4.9测试阶段-性能测试,函数的执行时间不是确定和固定的,如何测试性能,函数的执行时间,决定因素,函数开始执行时,指令与数据在高速缓存中的内容,RTOS,任务负载,中断或其他异常,函数数据处理要求,函数中的分支跳转,处理器对性能测试的支持(测试方法),一些处理器配置了性能测试机制,如计数器等,59,4.8测试阶段-维护和测试,测试和维护已经上市的产品。,很多最严格的嵌入式系统测试人员并不是产品的原始设计人员,他们来自于软件质保部门(SWQA,the Software Quality Assurance),或者是最终用户。,60,小结,嵌入式系统产品从需求分析、系统设计、科研开发、系统测试、生产、维护,嵌入式系统产品开发的几个阶段,需求分析,科研,测试,维护,系统设计师和开发人员相关,61,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!