嵌入式软件开发流程

上传人:痛*** 文档编号:125439875 上传时间:2022-07-26 格式:DOC 页数:22 大小:209.50KB
返回 下载 相关 举报
嵌入式软件开发流程_第1页
第1页 / 共22页
嵌入式软件开发流程_第2页
第2页 / 共22页
嵌入式软件开发流程_第3页
第3页 / 共22页
点击查看更多>>
资源描述
嵌入式软件开发流程一、嵌入式软件开发流程1.1 嵌入式系统开发概述 由嵌入式系统本身特性所影响,嵌入式系统开发与通用系统开发有很大区别。嵌入式系统开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程图如图1.1所示。图1.1 嵌入式系统开发流程图 在系统总体开发中,由于嵌入式系统与硬件依赖非常紧密,往往某些需求只能通过特定硬件才能实现,因此需要进行处理器选型,以更好地满足产品需求。另外,对于有些硬件和软件都可以实现功能,就需要在成本和性能上做出抉择。往往通过硬件实现会增加产品成本,但能大大提高产品性能和可靠性。 再次,开发环境选择对于嵌入式系统开发也有很大影响。这里开发环境包括嵌入式操作系统选择以及开发工具选择等。比如,对开发成本和进度限制较大产品可以选择嵌入式Linux,对实时性要求非常高产品可以选择Vxworks等。1.2 嵌入式软件开发概述 嵌入式软件开发总体流程为图4.15中“软件设计实现”部分所示,它同通用计算机软件开发一样,分为需求分析、软件概要设计、软件详细设计、软件实现和软件测试。其中嵌入式软件需求分析与硬件需求分析合二为一,故没有分开画出。由于在嵌入式软件开发工具非常多,为了更好地帮助读者选择开发工具,下面首先对嵌入式软件开发过程中所使用工具做一简单归纳。 嵌入式软件开发工具根据不同开发过程而划分,比如在需求分析阶段,可以选择IBMRational Rose等软件,而在程序开发阶段可以采用CodeWarrior(下面要介绍ADS一个工具)等,在调试阶段所用Multi-ICE等。同时,不同嵌入式操作系统往往会有配套开发工具,比如Vxworks有集成开发环境Tornado,WindowsCE集成开发环境WindowsCE Platform等。此外,不同处理器可能还有对应开发工具,比如ARM常用集成开发工具ADS、IAR和RealView等。在这里,大多数软件都有比较高使用费用,但也可以大大加快产品开发进度,用户可以根据需求自行选择。图4.16是嵌入式开发不同阶段常用软件。图1.2 嵌入式开发不同阶段常用软件嵌入式系统软件开发与通常软件开发区别主要在于软件实现部分,其中又可以分为编译和调试两部分,下面分别对这两部分进行讲解。1交叉编译 嵌入式软件开发所采用编译为交叉编译。所谓交叉编译就是在一个平台上生成可以在另一个平台上执行代码。在第3章中已经提到,编译最主要工作就在将程序转化成运行该程序CPU所能识别机器代码,由于不同体系结构有不同指令系统。因此,不同CPU需要有相应编译器,而交叉编译就如同翻译一样,把相同程序代码翻译成不同CPU对应可执行二进制文件。要注意是,编译器本身也是程序,也要在与之对应某一个CPU平台上运行。嵌入式系统交叉编译环境如图4.17所示。图4.17 交叉编译环境小知识 与交叉编译相对应,平时常用编译称为本地编译。 这里一般将进行交叉编译主机称为宿主机,也就是普通通用PC,而将程序实际运行环境称为目标机,也就是嵌入式系统环境。由于一般通用计算机拥有非常丰富系统资源、使用方便集成开发环境和调试工具等,而嵌入式系统系统资源非常紧缺,无法在其上运行相关编译工具,因此,嵌入式系统开发需要借助宿主机(通用计算机)来编译出目标机可执行代码。 由于编译过程包括编译、链接等几个阶段,因此,嵌入式交叉编译也包括交叉编译、交叉链接等过程,通常ARM交叉编译器为arm-elf-gcc、arm-linux-gcc等,交叉链接器为arm-elf-ld、arm-linux-ld等,交叉编译过程如图4.18所示。图4.18 嵌入式交叉编译过程2交叉调试 嵌入式软件经过编译和链接后即进入调试阶段,调试是软件开发过程中必不可少一个环节,嵌入式软件开发过程中交叉调试与通用软件开发过程中调试方式有很大差别。在常见软件开发中,调试器与被调试程序往往运行在同一台计算机上,调试器是一个单独运行着进程,它通过操作系统提供调试接口来控制被调试进程。而在嵌入式软件开发中,调试时采用是在宿主机和目标机之间进行交叉调试,调试器仍然运行在宿主机通用操作系统之上,但被调试进程却是运行在基于特定硬件平台嵌入式操作系统中,调试器和被调试进程通过串口或者网络进行通信,调试器可以控制、访问被调试进程,读取被调试进程当前状态,并能够改变被调试进程运行状态。 嵌入式系统交叉调试有多种方法,主要可分为软件方式和硬件方式两种。它们一般都具有如下一些典型特点。 调试器和被调试进程运行在不同机器上,调试器运行在PC机(宿主机),而被调试进程则运行在各种专业调试板上(目标板)。 调试器通过某种通信方式(串口、并口、网络、JTAG等)控制被调试进程。 在目标机上一般会具备某种形式调试代理,它负责与调试器共同配合完成对目标机上运行着进程调试。这种调试代理可能是某些支持调试功能硬件设备,也可能是某些专门调试软件(如gdbserver)。 目标机可能是某种形式系统仿真器,通过在宿主机上运行目标机仿真软件,整个调试过程可以在一台计算机上运行。此时物理上虽然只有一台计算机,但逻辑上仍然存在着宿主机和目标机区别。 下面分别就软件调试桩方式和硬件片上调试两种方式进行详细介绍。(1)软件方式。 软件调试主要是通过插入调试桩方式来进行。调试桩方式进行调试是通过目标操作系统和调试器内分别加入某些功能模块,二者互通信息来进行调试。该方式典型调试器有gdb调试器。 gdb交叉调试器分为GdbServer和GdbClient,其中GdbServer就作为调试桩在安装在目标板上,GdbClient就是驻于本地gdb调试器。它们调试原理图如图4.19所示。图4.19 gdb远程调试原理图 gdb调试工作流程。 首先,建立调试器(本地gdb)与目标操作系统通信连接,可通过串口、网卡、并口等多种方式。 然后,在目标机上开启GdbServer进程,并监听对应端口。 在宿主机上运行调试器gdb,这时,gdb就会自动寻找远端通信进程,也就是GdbServer所在进程。 在宿主机上gdb通过GdbServer请求对目标机上程序发出控制命令。这时,GdbServer将请求转化为程序地址空间或目标平台某些寄存器访问,这对于没有虚拟存储器简单嵌入式操作系统而言,是十分容易。 GdbServer把目标操作系统所有异常处理转向通信模块,并告知宿主机上gdb当前有异常。 宿主机上gdb向用户显示被调试程序产生了哪一类异常。 这样就完成了调试整个过程。这个方案实质是用软件接管目标机全部异常处理及部分中断处理,并在其中插入调试端口通信模块,与主机调试器进行交互。但是它只能在目标机系统初始化完毕、调试通信端口初始化完成后才能起作用,因此,一般只能用于调试运行于目标操作系统之上应用程序,而不宜用来调试目标操作系统内核代码及启动代码。而且,它必须改变目标操作系统,因此,也就多了一个不用于正式发布调试版。(2)硬件调试。 相对于软件调试而言,使用硬件调试器可以获得更强大调试功能和更优秀调试性能。硬件调试器基本原理是通过仿真硬件执行过程,让开发者在调试时可以随时了解到系统当前执行情况。目前嵌入式系统开发中最常用到硬件调试器是ROMMonitor、ROMEmulator、In-CircuitEmulator和In-CircuitDebugger。 采用ROMMonitor方式进行交叉调试需要在宿主机上运行调试器,在宿主机上运行ROM监视器(ROMMonitor)和被调试程序,宿主机通过调试器与目标机上ROM监视器遵循远程调试协议建立通信连接。ROM监视器可以是一段运行在目标机ROM上可执行程序,也可以是一个专门硬件调试设备,它负责监控目标机上被调试程序运行情况,能够与宿主机端调试器一同完成对应用程序调试。 在使用这种调试方式时,被调试程序首先通过ROM监视器下载到目标机,然后在ROM监视器监控下完成调试。 优点:ROM监视器功能强大,能够完成设置断点、单步执行、查看寄存器、修改内存空间等各项调试功能。 确定:同软件调试一样,使用ROM监视器目标机和宿主机必须建立通信连接。 其原理图如图4.20所示。图4.20 ROMMonitor调试方式 采用ROMEmulator方式进行交叉调试时需要使用ROM仿真器,并且它通常被插入到目标机上ROM插槽中,专门用于仿真目标机上ROM芯片。 在使用这种调试方式时,被调试程序首先下载到ROM仿真器中,因此等效于下载到目标机ROM芯片上,然后在ROM仿真器中完成对目标程序调试。 优点:避免了每次修改程序后都必须重新烧写到目标机ROM中。 缺点:ROM仿真器本身比较昂贵,功能相对来讲又比较单一,只适应于某些特定场合。其原理如图4.21所示。图4.21 ROMEmulator调试方式 采用In-CircuitEmulator(ICE)方式进行交叉调试时需要使用在线仿真器,它是目前最为有效嵌入式系统调试手段。它是仿照目标机上CPU而专门设计硬件,可以完全仿真处理器芯片行为。仿真器与目标板可以通过仿真头连接,与宿主机可以通过串口、并口、网线或USB口等连接方式。由于仿真器自成体系,所以调试时既可以连接目标板,也可以不连接目标板。 在线仿真器提供了非常丰富调试功能。在使用在线仿真器进行调试过程中,可以按顺序单步执行,也可以倒退执行,还可以实时查看所有需要数据,从而给调试过程带来了很多便利。嵌入式系统应用一个显著特点是与现实世界中硬件直接相关,并存在各种异变和事先未知变化,从而给微处理器指令执行带来各种不确定因素,这种不确定性在目前情况下只有通过在线仿真器才有可能发现。 优点:功能强大,软硬件都可做到完全实时在线调试。 缺点:价格昂贵。 其原理如图4.22所示。图4.22 ICE调试方式 采用In-CircuitDebugger(ICD)方式进行交叉调试时需要使用在线调试器。由于ICE价格非常昂贵,并且每种CPU都需要一种与之对应ICE,使得开发成本非常高。一个比较好解决办法是让CPU直接在其内部实现调试功能,并通过在开发板上引出调试端口发送调试命令和接收调试信息,完成调试过程。如使用非常广泛ARM处理器JTAG端口技术就是由此而诞生。 JTAG是1985年指定检测PCB和IC芯片一个标准。1990年被修改成为IEEE一个标准,即IEEE1149.1。JTAG标准所采用主要技术为边界扫描技术,它基本思想就是在靠近芯片输入输出管脚上增加一个移位寄存器单元。因为这些移位寄存器单元都分布在芯片边界上(周围),所以被称为边界扫描寄存器(Boundary-Scan Register Cell)。 当芯片处于调试状态时候,这些边界扫描寄存器可以将芯片和外围输入输出隔离开来。通过这些边界扫描寄存器单元,可以实现对芯片输入输出信号观察和控制。对于芯片输入管脚,可通过与之相连边界扫描寄存器单元把信号(数据)加载到该管脚中去;对于芯片输出管脚,可以通过与之相连边界扫描寄存器单元“捕获”(CAPTURE)该管脚输出信号。这样,边界扫描寄存器提供了一个便捷方式用于观测和控制所需要调试芯片。 现在较为高档微处理器都带有JTAG接口,包括ARM7、ARM9、StrongARM、DSP等,通过JTAG接口可以方便地对目标系统进行测试,同时,还可以实现Flash编程,这是非常受欢迎。 优点:连接简单,成本低。 缺点:特性受制于芯片厂商。 其原理如图4.23所示。图4.23 JTAG调试方式开发流程框图:阶段流程图文档项目立项阶段任命项目经理成立项目团队小组项目建议书可行性分析市场信息反馈签发项目任务书可行性分析报告项目任务书项目总体规划产品定义系统分析各部需求分析需求分析评审确定里程碑编制质量控制计划编制项目计划书风险控制计划需求分析报告需求分析评审报告产品定义产品技术规范项目开发计划风险控制计划质量控制计划系统分析文档设计阶段系统分析评审硬件设计流程软件设计流程结构设计及制作流程图软件V1.0PCB V1.0T1工艺设计流程工艺说明T1评审,过程文件归档产品技术总体设计方案(包括工艺)系统分析评审报告软件设计过程文档硬件设计过程文档结构设计过程文档工艺设计过程文档软件V1.0PCB V1.0T1设计文档工艺说明分单元测试报告设计验证阶段T1整机测试及评估软硬件及工艺调整版本升级FTA准备修模例试报告及分析装机报告少量装机装机准备装机报告例试分析报告整机测试评估报告软件FTA版本硬件FTA版本T2FTA修模软硬件及工艺调整版本升级CTA材料下单例试、整机测试及评估试产准备小批量试产FTAT2设计文档试产报告例试分析报告整机测试评估报告软件CTA版本硬件CTA版本T3CTA软硬件结构及工艺调整版本升级量产版本确定例试、整机测试评估试产准备CTA准备第二次试产CTAT3设计文档试产报告例试分析报告整机测试评估报告量产准备阶段生产工艺准备全套文件归档手工下单封样全套DVT报告工艺文件量产转移量产转移附录:1、结构设计及制作流程图 2、软件设计流程图 3、硬件设计流程图附录1. 结构设计及制作流程图:阶段流程图表单3D模型修改结构制定结构设计进度计划表可行评估3D模型可行性评估3D模型评估报告结构设计进度表详细结构设计结构详细设计结构设计进展汇报结构设计修改结构设计内部评审结构设计进度表结构设计验证评审相关资料准备结构设计外部评审模具制作检讨working sample验证制作working sample签订商务合同开模结构设计修改结构设计内部评审记录workingsample配色表workingsample验收报告结构BOM结构设计外部评审记录模具制作检讨记录表模具制作申请表模具备品清单模具制作注意事项表工装夹具制作清单物料进度按排需求表配色方案表模具制作进度表参考文件:工业设计流程,ID设计流程附录2. 软件设计流程图:阶段流程图表单软件需求分析软件开发计划和配置管理计划进度计划表软件需求分析(包括技术风险评估)软件测试计划软件需求规格书软件开发计划软件开发风险控制计划软件测试计划软件详细设计详细软件设计内部设计评审软件详细设计说明书软件接口设计说明书软件设计内部评审记录软件实现测试编码调试编写测试用例单元测试软件集成/调试评审后发布并归档软件修订软件系统测试发布系统测试版本单元源代码单元调试报告单元测试用例单元测试分析报告集成后软件及源代码软件集成调试报告软件操作手册系统测试软件系统测试用软件文档软件系统测试分析报告发布版本参考文件:附录3. 硬件设计流程图:阶段流程图表单硬件需求评估硬件开发计划和配置管理计划进度计划表硬件需求分析(包括技术风险评估)硬件测试计划硬件需求分析报告硬件开发计划硬件测试计划硬件详细设计详细硬件设计LCD认证流程关键器件采购PCB毛坯图设计内部设计评审硬件详细设计说明书硬件电路原理图硬件BOM硬件设计内部评审记录硬件实现测试软件投板前审查PCB布板流程打样、试产硬件调试硬件内部评审PCB贴片整机测试评审后发布并归档硬件修改PCB数据器件规格书硬件子系统软件装配图硬件单元测试分析报告电装总结报告硬件系统测试版本硬件系统测试分析报告硬件评审验证报告发布版本参考文件:1、 PCB布板流程图2、 LCD认证流程图21 / 22PCB布板流程图:阶段硬件结构其他各部表单布板需求设计硬件电路原理图PCB布板设计结构尺寸要求项目需求/产品定义PCB确认投板前审查PCB GERBERPCB投板PCB投板参考文件:LCD认证流程图:阶段硬件结构其他各部表单样品提供样品需求SPECLCD供应商数据收集和选择供应商提供样品尺寸各部确认各部确认?供应商供样与供应商沟通SPEC各部提出修改要求电性能SPEC尺寸确认软件确认装机是否通过? 否 是封样装机验证参考文件:
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


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

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


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