1、嵌入式开发基本知识田磊嵌入式产品的概念嵌入式简单的讲就是把处理器的嵌入各种电子设备内部,实现设备的智能化。Z80/mcs51/6502等基于单片机开发的产品也是嵌入式产品。目前语义更泛指基于高端处理器(16/32bit),使用实时操作系统的产品。嵌入式产品发展迅速进入嵌入式领域开发的公司正快速增加进入嵌入式领域开发的公司正快速增加,国内嵌入式市场成为目前公认的新兴利润市场,通信与数据通信,移动计算,PDA,医疗测试仪器.。国内业界掀起了从8位单片机转入16/32位高性能cpu开发的新一轮高潮。嵌入式开发流程介绍嵌入式产品开发流程与8位机开发流程类似,但增加了RTOS移植部分。元器件选型原理图编
2、制印制板样板试制硬件功能测试 BSP调试 RTOS移植协议栈移植应用程序调试 系统联调 样机交付另外嵌入式开发中普遍使用C语言,系统复杂程度和开发周期均比8位机开发增加。嵌入式开发的特点与位开发比较,嵌入式产品开发有如下特点:前期投入大。 开发工具投入高。项目周期长。项目管理和进度控制困难。质量保证要求高。实时操作系统实时操作系统能实现任务调度,内存管理等基本功能,能简化产品开发流程,提高产品质量。实时操作系统内核尺寸小,适应嵌入式产品对体积和成本的要求。实时操作系统能适应工控/通信等设备对响应速度的要求。实时操作系统与协议栈很多实时操作系统厂家均提供基于相应RTOS的协议栈产品各类协议栈如T
3、CP/IP、VOIP、 NO.7、 MAP、语音识别、手写输入、红外传输 能简化产品开发难度各类协议栈能缩短产品开发周期,提升产品质量嵌入式/应用系统开发的区别嵌入式产品对实时性要求高嵌入式产品对代码尺寸有要求嵌入式开发不能使用DOS中断或Windows-API资源。嵌入式产品的软件开发环境与调试环境与应用系统开发不同,一般要使用交叉编译器和仿真调试器。嵌入式C/C+开发嵌入式c/c+编译器 交叉编译能力:能够在pc/unix平台上生成其他cpu平台目标代码连接/定址器:因为无法提供dos/windows的动态定位执行能力。嵌入式一般需要目标代码静态定位到具体地址,定址器完成这一工作。 启动代
4、码:初始化处理器和c语言堆栈区等环境的汇编码。 EC+:针对嵌入式的一些实时要求等特点,对标准C+语言规范的修改扩充。嵌入式C/C+开发环境提供目标调试(remote/rom monitor)能力.另外还有其他一些地方需要注意,如I/O库,大小尾段等。主流嵌入式编译器:GNU 、CADUL 、CodeWarrior、GreenHill、Diab/SDS、IAR、BC/VC+Toolkit.等仿真器与调试器的功能内存查看寄存器浏览单步/断点设置跟踪程序下载执行Flash烧写操作系统任务级状态查看仿真器与调试器的历史全仿真器 使用硬件仿真芯片和仿真内存,连接困难,价格昂贵。如常见的51仿真器.Ro
5、m monitor 调试器的一场革命,最廉价的一种方式,烧入Flash的一段小程序,可通过串/并/ethernet口调试仿真器与调试器的历史Rom仿真器 通过连接目标系统上的Rom插座,实现虚拟串/ethernet口和Rom monitor.与Rom下载器不同。Rom monitor 与Rom仿真器的优点:Cpu 无关,下载程序速度快。价格便宜。monitor程序的“鸡,蛋”悖论 Rom仿真器对C/C+开发环境的支持很重要。仿真器与调试器的历史BDM背景调试模式,由motorola提出,把相应调试微码放入处理器,使用高速串口进行访问。(rom monitor的进一步扩展)JTAG 边界扫描协议
6、,是IEEE规范,目前是主流。使外界可以访问ASIC内部寄存器的技术。仿真器与调试器的历史BDM&JTAG调试器,与仿真器的区别。同样能够直接控制处理器硬件,在单板的硬件调试能力比rom monitor强。价格便宜/连接方便仿真器使用仿真内存,调试器需要目标板。 仿真器支持硬件断点能力强仿真器可以支持trace功能,排错能力强流程实例总体规划 市场预测技术准备资金准备资料收集资料研究项目需求报告编制 项目需求报告讨论准备 项目需求报告讨论 项目需求报告修改 项目需求报告验收 参与者及职责 输出成果及后序工作 技术可行性实验项目计划书 嵌入式开发流程实例项目立项立项申请 项目立项评估 项目进度计
7、划 项目立项审批 流程实例需求分析资料收集 需求分析编制 讨论准备 需求分析讨论需求分析修改 需求分析验收 流程实例系统分析系统分析准备 确定问题域 需求建模 建立分析对象模型 系统分析合并 系统分析测试 系统分析修改(测试后) 系统分析验收 流程实例系统设计系统设计 系统设计准备 界面设计 建立设计模型 系统设计合并 对象持久化设计 详细设计 系统设计测试 系统设计修改(测试后) 系统设计验收 流程实例系统实现芯片选型关键电路试验原理图编制原理图评审印制板样板试制硬件功能测试硬件稳定性测试 BSP调试 RTOS移植协议栈移植软件代码编制准备软件代码编制软件单元代码走读 代码单元测试单元代码修
8、改单元代码回归测试 系统联调 系统集成测试样机交付文档交付流程实例后续流程试批量培训安装试运行产品维护批量售后服务产品新版本产品生命周期结束集成产品开发简介(IPD)IBM公司等国外大公司使用的产品并行开发流程模式,目前国内一些企业如华为已经采用。关注于产品上市时间,成本,质量,灵活性,服务等方面。从流程重整和产品重整两方面达到缩短上市时间,提高产品利润。IPD的基本概念IPD是一种产品开发的理念和方法,来源于PRTM公司出版的PACE(产品及生命周期优化法)一书。IPD强调以市场需求作为产品开发的驱动力。IPD的核心是流程重整和产品重整。关注异步开发和公用基础模块的重用。IPD框架框架中集成
9、了业界最佳实践的诸多要素,具体包括: 产品重整:异步开发与共用基础模块,流程重整:跨部门团队,项目与管道管理,结构化流程, 市场管理:客户需求分析,优化投资组合和衡量标准共7个方面。异步开发与共用基础模块异步开发指将产品开发分解为不同层次的任务,通过减弱各层次间的依赖关系,重用已有的共有基础模块实现技术开发与产品开发的分离。共用基础模块指那些可以在不同产品,系统之间共用的零件,模块,技术等技术成果跨部门团队跨部门团队是指由开发生产采购财务客服等不同部门组成的贯穿整个产品开发过程的团队。分为IPMT(管理团队)与PDT(产品开发团队)IPD开发组织结构简介IPMT XX产品经理产品经理开发:XX
10、产品软件经理硬件经理测试经理市场:XX产品市场经理客服:XX产品技术支持经理培训:XX产品培训经理资料:XX产品资料经理生产:XX产品试制经理结构化流程指产品的开发流程被明确划分为概念,计划,开发,验证,发布,生命周期六个阶段。每个阶段流程中均有定义清晰的决策评审点项目与管道管理项目管理指在产品概念产生到产品投放市场的过程中建立规范的管理方式。项目管理包括项目计划和计划执行管道管理指根据公司的业务策略对开发项目及所需资源进行排序和平衡。客户需求分析了解客户需求,确定产品市场定位的工具。包括8个方面:产品价格,可获得性,包装,性能,易用性,保证程度,生命周期成本,社会接受程度。投资组合分析&衡量指标投资组合分析:根据确定的市场机会,对企业能力的评估结果来确定企业的业务策略,进而确定产品开发的投资。衡量指标:指从商业角度对产品开发过程,不同层次人员或组织的绩效进行衡量的一系列指标。总结网络产品/PDA/IA产品设备上网/工业控制当前国内嵌入式开发整体水平与国外尚有差距,特别是项目管理方面的差距。学习和使用国外成熟的系列工具如项目管理工具需求管理工具产品维护工具质量保证工具等能规范开发流程,量化产品开发过程,是一条尽快与国际接轨的好方法。