浙江大学嵌入式嵌入式系统7
5
(1)总体规划 市场预测-〉技术准备-〉资金准备-〉资料收集-〉
资料研究-〉项目需求报告编制-〉项目需求报告讨论 准备-〉项目需求报告讨论-〉项目需求报告修改-〉 项目需求报告验收 -〉参与者及职责-〉输出成果及后 序工作-〉技术可行性实验-〉项目计划书。 (2)项目立项 立项申请-〉项目立项评估-〉项目进度计划-〉项目 立项审批。 (3)需求分析 资料收集-〉需求分析编制-〉讨论准备-〉需求分析 讨论-〉需求分析修改-〉需求分析验收。
9
三、 开发环境
嵌入式系统,是指嵌入于 宿主设备,智能地完成宿
嵌入 式 软件
嵌入式应用软件
嵌 入 式
主设备功能的计算/控制系
嵌入式操作系统
开 发
统。
工
嵌入 式
嵌入式硬件模块
具
嵌入式系统开发环境,是
硬件
嵌入式处理器
以开发嵌入式系统为目的
的工程开发环境。包括办
公环境支持、软件支持、
硬件设备支持。
软件支持,指集成开发环 境与软件模拟器等。
硬件支持,指仿真器、目 标板、示波器、烧录器等 。
10
3.1集成开发系统
集成开发系统提供高效明晰的图形化的嵌入式应用软 件开发平台,包括一整套完备的面向嵌入式系统的开 发和调试工具 。(BDM/JTAG仿真器)等
11
31.1编译器
8
UML的应用
I-Logix公司的Rhapsody系列产品 基于统一建模语言UML的可视化编程环境 把UML各类视图映射为具体目标机程序语
言 用于复杂实时嵌入式应用软件从分析、设
计一直到代码实现和软件测试的开发环境 NASA的火星探路者航天器就是运用
Rhapsody在VxWorks上开发应用程序。
3
4.软件要求更高,开发难度加大
与8位开发比较,嵌入式产品开发有如下 特点:前期投入大;开发工具投入高;项 目周期长;项目管理和进度控制困难;质 量保证要求高。
4
二、嵌入式开发的流程
与通用软件的开发流程大同小异,整个开 发过程可分为总体规划、项目立项、需求 分析、系统分析、系统设计、系统实现和 后续流程7个阶段。
7
(6)系统实现 芯片选型-〉关键电路试验-〉原理图编制-〉原理图
评审-〉印制板-〉样板试制-〉硬件功能测试-〉硬 件稳定性测试-〉 BSP调试-〉RTOS移植-〉协议栈 移植-〉软件代码编制准备-〉软件代码编制-〉软件 单元代码走读-〉代码单元测试-〉单元代码修改-〉 单元代码回归测试-〉系统联调-〉系统集成测试-〉 样机交付-〉文档交付。 (7)后续流程 试批量-〉培训安装-〉试运行-〉产品维护-〉批量 -〉售后服务-〉产品新版本-〉产品生命周期结束。
GNU 、CADUL 、CodeWarrior、GreenHill、Diab/SDS、IAR、 BC/VC+Toolkit….等
14
(1)早期的Franklin Software Inc. 的 A51/C51与Keil Software Inc.的 CA51/CA251/CA166赫赫有名。
(2)TASKING Inc. 的C/C++/EC++ 编译器 (3)CAD-UL Inc.提供一整套工具开发X86和
嵌入式语言: ASM/Ada/C/C++/EC/Java/OP/STAPL EC++标准 95年初在日本成立的Embedded C++技术委员
12
嵌入式C/C++开发环境
嵌入式c/c++编译器
交叉编译能力:能够在pc/unix平台上生成其他cpu平 台目标代码
连接/定址器:因为无法提供dos/windows的动态定位 执行能力。嵌入式一般需要目标代码静态定位到具体地 址,定址器完成这一工作。
1
2. 嵌入式产品开发流程
元器件选型-〉原理图编制-〉印制板 -〉样板试制-〉硬件功能测试 -〉 BSP调试-〉 RTOS移植 -〉协议栈移植-〉应用程序调试 - 〉 系统联调 -〉样机交付
2
3.开发完成后需要进行固化和测试
嵌入式应用软件在开发完成后,应生成固 化版本,烧写到目标板的ROM中运行
6
(4)系统分析 系统分析准备-〉确定问题域-〉需求建模-〉
建立分析对象模型-〉系统分析合并-〉系统分 析测试 -〉系统分析修改(测试后) -〉系统分 析验收。 (5)系统设计 系统设计-〉系统设计准备-〉界面设计-〉建 立设计模型-〉系统设计合并-〉对象持久化设 计-〉详细设计-〉系统设计测试-〉系统设计 修改(测试后)-〉系统设计验收。 一般采用自顶向下的设计方法。
68K 。 (4)Wind River Systems, Inc.的Diab C/C++
Compiler Suite,应用于pSOS系统。 (5)IBM 的High C/C++ Compiler ,针对
Power PC。 (6)GNU组织的免费编译器GCC
15
交叉编译和链接
代码生成阶段需要完成的工作包括:编码、交叉 编译和链接/交叉调试和测试等。
嵌入式一般需要目标代码静态定位到具体地址, 由交叉连接/定址器定址器完成这一工作。
目前主流嵌入式编译器有:GCC/GDB、 CADUL、CodeWarrior、GreenHill、 Diab/SDS、IAR、eVC++/Platform Builder等 等。
一、嵌入式开发的特点
1. 需要集成软硬件开发环境
– 嵌入式应用软件开发要使用交叉开发环境。 – 交叉开发环境集成了编辑器、交叉编译器、
交叉调试器、仿真软件(simulator)、工程 管理器于一体 – 商业化的界面友好的同Microsoft Visual Studio可视化开发环境相似,免费如GNU 工具链运行在字符界面下 – 交叉开发的硬件环境包括宿主机和目标板。
启动代码:初始化处理器和c语言堆栈区等环境的汇 编码。
EC++:针对嵌入式的一些实时要求等特点,对标准 C++语言规范的修改扩充。
13
嵌入式C/C++开发环境
提供目标调试(remote/rom monitor)能力. 另外还有其他一些地方需要注意,如I/O库,大小尾段
等。 主流嵌入式编译器: