嵌入式软件开发流程Word文件下载.docx
- 文档编号:19995029
- 上传时间:2023-01-13
- 格式:DOCX
- 页数:54
- 大小:143.15KB
嵌入式软件开发流程Word文件下载.docx
《嵌入式软件开发流程Word文件下载.docx》由会员分享,可在线阅读,更多相关《嵌入式软件开发流程Word文件下载.docx(54页珍藏版)》请在冰豆网上搜索。
而在嵌入式软件开发中,调试时采用的是在宿主机和目标机之间进行的交叉调试,调试器仍然运行在宿主机的通用操作系统之上,但被调试的进程却是运行在基于特定硬件平台的嵌入式操作系统中,调试器和被调试进程通过串口或者网络进行通信,调试器可以控制、访问被调试进程,读取被调试进程的当前状态,并能够改变被调试进程的运行状态。
嵌入式系统的交叉调试有多种方法,主要可分为软件方式和硬件方式两种。
它们一般都具有如下一些典型特点。
∙
调试器和被调试进程运行在不同的机器上,调试器运行在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-ScanRegisterCell)。
当芯片处于调试状态时候,这些边界扫描寄存器可以将芯片和外围的输入输出隔离开来。
通过这些边界扫描寄存器单元,可以实现对芯片输入输出信号的观察和控制。
对于芯片的输入管脚,可通过与之相连的边界扫描寄存器单元把信号(数据)加载到该管脚中去;
对于芯片的输出管脚,可以通过与之相连的边界扫描寄存器单元“捕获”(CAPTURE)该管脚的输出信号。
这样,边界扫描寄存器提供了一个便捷的方式用于观测和控制所需要调试的芯片。
现在较为高档的微处理器都带有JTAG接口,包括ARM7、ARM9、StrongARM、DSP等,通过JTAG接口可以方便地对目标系统进行测试,同时,还可以实现Flash编程,这是非常受欢迎的。
连接简单,成本低。
特性受制于芯片厂商。
其原理如图4.23所示。
图4.23
JTAG调试方式
开发流程框图:
阶段
流程图
文档
项目
立项
任命项目经理
成立项目团队小组
项目建议书
可行性分析
市场信息反馈
签发项目任务书
可行性分析报告
项目任务书
总体
规划
产品定义
系统分析
各部需求分析
需求分析评审
确定里程碑
编制质量控制计划
编制项目计划书
风险控制计划
需求分析报告
需求分析评审报告
产品技术规范
项目开发计划
质量控制计划
系统分析文档
设计
系统分析评审
硬件设计流程
软件设计流程
结构设计及制作流程图
软件V1.0
PCBV1.0
T1
工艺设计流程
工艺说明
评审,过程文件归档
产品技术总体设计方案(包括工艺)
系统分析评审报告
软件设计过程文档
硬件设计过程文档
结构设计过程文档
工艺设计过程文档
T1设计文档
分单元测试报告
设
计
验
证
阶
段
整机测试及评估
软硬件及工艺调整版本升级
FTA准备
修模
例试报告及分析
装机报告
少量装机
装机准备
例试分析报告
整机测试评估报告
软件FTA版本
硬件FTA版本
T2
FTA
CTA材料下单
例试、整机测试及评估
试产准备
小批量试产
T2设计文档
试产报告
软件CTA版本
硬件CTA版本
T3
CTA
软硬件结构及工艺调整
版本升级
量产版本确定
例试、整机测试评估
CTA准备
第二次试产
T3设计文档
量产
准备
生产工艺准备
全套文件归档
手工下单
封样
全套DVT报告
工艺文件
转移
量产转移
附录:
1、结构设计及制作流程图
2、软件设计流程图
3、硬件设计流程图
附录1.结构设计及制作流程图:
表单
3D模型修改
结构
制定结构设计进度计划表
可行
评估
3D模型可行性评估
3D模型评估报告
结构设计进度表
详细结构设计
详细
结构设计进展汇报
结构设计修改
结构设计内部评审
验证
评审
相关资料准备
结构设计外部评审
模具制作检讨
workingsample验证
制作workingsample
签订商务合同
开模
结构设计内部评审记录
workingsample配色表
workingsample验收报告
结构BOM
结构设计外部评审记录
模具制作检讨记录表
模具制作申请表
模具备品清单
模具制作注意事项表
工装夹具制作清单
物料进度按排需求表
配色方案表
模具制作进度表
参考文件:
《工业设计流程》,《ID设计流程》
附录2.软件设计流程图:
软件
需求
分析
软件开发计划和配置管理计划进度计划表
软件需求分析(包括技术风险评估)
软件测试计划
软件需求规格书
软件开发计划
软件开发风险控制计划
详细软件设计
内部设计评审
软件详细设计说明书
软件接口设计说明书
软件设计内部评审记录
实现
测试
编码调试
编写测试用例
单元测试
软件集成/调试
评审后发布并归档
软件修订
软件系统测试
发布系统测试版本
单元源代码
单元调试报告
单元测试用例
单元测试分析报告
集成后的软件及源代码
软件集成调试报告
软件操作手册
系统测试软件
系统测试用软件文档
软件系统测试分析报告
发布版本
附录3.硬件设计流程图:
硬件
硬件开发计划和配置管理计划进度计划表
硬件需求分析(包括技术风险评估)
硬件测试计划
硬件需求分析报告
硬件开发计划
详细硬件设计
LCD认证流程
关键器件采购
PCB毛坯图设计
硬件详细设计说明书
硬件电路原理图
硬件BOM
硬件设计内部评审记录
投板前审查
PCB布板流程
打样、试产
硬件调试
硬件内部评审
PCB贴片
整机测试
硬件修改
PCB数据
器件规格书
硬件子系统软件
装配图
硬件单元测试分析报告
电装总结报告
硬件系统测试版本
硬件系统测试分析报告
硬件评审验证报告
1、PCB布板流程图
2、LCD认证流程图
PCB布板流程图:
其他各部
布板
PCB布板设计
结构尺寸要求
项目需求/产品定义
PCB
确认
PCBGERBER
投板
PCB投板
LCD认证流程图:
样品
提供
样品需求
SPEC
LCD供应商数据收集和选择
供应商提供样品
尺寸
各部
各部确认?
供应商供样
与供应商沟通
各部提出修改要求
电性能SPEC
尺寸确认
软件确认
装机
是否通过?
否
是
装机验证
软件开发规范
SoftwareDevelopmentSpecification
Version:
V1.0
Date:
2010-06-22
Preparedby
DocumentRevisionHistory文档修订记录
VERSION版本
DATE
日期
DESCRIPTION
内容说明
INDIVIDUAL
修订人
1.0
2010-06-22
初稿
1Introduction简介
一个成熟稳定的组织或者团队,能够减少风险,经常地成功地达成目标。
成功的含义是:
按时、预算内【即符合成本要求】、符合质量要求。
换言之,成熟稳定的团队,能够避免以下问题:
Ø
组织方面出现问题
对需求缺乏管理
缺乏计划和控制
估算错误
同时,还要在以下几个方面做得比较出色:
人员调度与工作安排
工作量估计
预算管理
责权分配与平衡
执行与监控
沟通
本文档是软件开发规范,力求使团队打下一个良好的基础,以便逐步成长为成熟稳定的团队。
团队需要一个逐步标准、规范的开发过程,在这个过程中,团队得到锻炼,成员能力得到提高,风险得到控制。
主要内容是:
定义软件开发的流程;
定义软件开发的文档格式;
定义涉及的角色;
定义涉及的信息;
描述开发流程;
Purpose目标
本文档的目标是:
统一软件开发团队的流程、文档;
促进团队成员的沟通,减少误解;
促使程序员书写易维护的代码;
提高代码编写效率;
使每个成员成为一个高效的程序员;
Scope范围
本文档,包含:
项目管理的流程;
⏹项目策划
⏹项目追踪
⏹配置管理
⏹质量保证
⏹同行评审
涉及文档;
⏹项目计划mpp
⏹需求规格说明书SRS
⏹Delphi估算
⏹项目状态报告
⏹配置库样式
⏹CheckList
⏹评审表
⏹变更申请表
开发工具的规范;
⏹数据库设计工具
⏹功能设计工具
⏹IDE
⏹配置工具
Definitions,Acronyms,andAbbreviations.术语,缩略词
SPP项目策划SoftwareProjectPlanning
SPTO项目追踪SoftwareProjectTracking&
Oversight
SCM配置管理SoftwareConfigurationManagement
SQA质量保证SoftwareQualityAssurance
PR同行评审PeerReview
BaseLine基线
SCCB软件配置控制委员会SoftwareConfigurationControlBoard
CR变更请求ChangeRequest
SDLC软件开发生命周期SoftwareDevelopmentLifeCycle
RUP统一开发过程RationalUnifiedProcess
XP极限【敏捷方法】eXtremeProgramming
TDD测试驱动TestDrivenDevelopment
References引用
《CMM2》
《CMM3》
Overview文档组织
本文档主要分为四大部分:
概述;
描述了团队组织开发过程的高层视图;
TSP和PSP;
按照团队和个人描述流程规范;
工具规范;
描述了开发工具的详细规范;
文档;
涉及的文档格式;
2TheOverallDescription概述
本部分是开发团队开发过程的高层描述。
它描述了开发过程规范的背景,用来和所有涉及各方就基本过程达成共识。
SoftwareDevelopmentOrganizing开发团队组织结构
说明:
表示公司的行政部门表示公司的逻辑部门
实线表示参加产品实现的组织和人员(不表示所属关系)
虚线表示工作的汇报关系,如SQAE向SQA经理汇报。
ProjectBaseProcess项目基本流程
识别需求
提出解决方案
执行项目
结束项目
投入力量
需求建议书
合同
项目目标
项目定义制定计划计划实施项目终止
时间
基本流程说明:
项目启动:
本阶段主要是进行可行性分析,定义
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 软件 开发 流程
![提示](https://static.bdocx.com/images/bang_tan.gif)