当前位置:
文档之家› 第5章开发环境与技术 嵌入式系统设计教程(第2版)
第5章开发环境与技术 嵌入式系统设计教程(第2版)
软件的生成主要是在宿主机上进行,利用各种 工具完成对应用程序的编辑、交叉编译和链接 工作,生成可供调试或固化的目标程序。
调试是通过交叉调试器完成软件的调试工作。 调试完成后还需进行必要的测试工作。
固化运行是先用一定的工具将应用程序固化到 目标机上,然后启动目标机,在没有任何工具 干预的情况下应用程序能自动地启动运行。
2
嵌入式系统通常是一个资源受限的系统,因此 直接在嵌入式系统的硬件平台上编写软件比较困 难。目前一般采用的解决办法是首先在通用计算
机(宿主机)上编写程序,然后通过交叉编译 生成目标机上可以运行的二进制代码格式,然 后通过串口或者以太网接口将交叉编译生成 的目标代码传输并装载到目标机上,并在监 控程序或者操作系统的支持下利用交叉调试 器、JTAG调试装置或ICE进行分析和调试,最 后目标机脱离宿主机单独运行。
3
5.2 嵌入式软件开发工具
“工欲善其事,必先利其器” 嵌入式软件开发工具的集成度和可用性将直接关系
到嵌入式系统的开发效率。ARM的开发工具包括有编译 器、、汇编器、连接器、调试器、操作系统、函数库、 评估板、JTAG调试器、在线仿真器等。目前世界上约有 40多家公司提供不同类型的产品。
在Windows环境下,其代表产品是ARM公司的软件开 发工具包ADS和新推出的RVDS。
11
嵌入式系统开发流程框架图
Source Insight
ARM SDT Project Manager
开始新工程
编辑源 代码
基本开 发流程
PC机
监控结 果
编译链 接
仿真调 试
程序下 载
串口助手 或超级终
端
ARM SDT Debuger
armJtag
并口
ArmDvk
USB
串口
内部逻辑 开发流程 硬件连接
第5章 嵌入式系统开发环境与相关开发技术
5.1 概述 5.2 嵌入式系统的开发工具 5.3 嵌入式系统调试技术 5.4 嵌入式系统开发经验 5.5 嵌入式系统的Bootloader技术
1
5.1 概述
一个嵌入式系统的开发环境一般包括 有开发用的宿主机、嵌入式目标机、 调试器和软件开发工具,它们之间通 过串口、JTAG(并口)和网络接口等 进行通信。
Visual C++等。
7
1)嵌入式软件的交叉开发环境
交叉开发环境是指用于嵌入式软件开发的 所有工具软件的集合,一般包括:
文本编辑器 交叉编译器 交叉调试器 仿真器 下载器等
交叉开发环境由宿主机和目标机组成,宿 主机与目标机之间在物理连接的基础上建 立起逻辑连接。
8
运行平 Target
5
开发工具的分类
嵌入式软件的开发可以分为以下几种 :
编写简单的板级测试软件,主要是辅助硬件的调试 开发基本的驱动程序 开发特定嵌入式操作系统的驱动程序(板级支持包) 开发嵌入式系统软件,如:嵌入式操作系统等 开发应用软件
6
嵌入式系统开发环境和开发过程
建立交叉开发环境是进行嵌入式软件开发
的第一步,目前常用的交叉开发环境主要有开放
和商业两种类型。开放的交叉开发环境的典型代
表是GNU工具链、目前已经能够支持x86、ARM、
MIPS、PowerPC等多种处理器。商业的交叉开发环
境 则 主 要 有 Metrowerks CodeWarrior 、
ARMSoftware Development Toolkit 、 Embedded
台 目标机应用系统
调 试
— 应用软件
代 — 应用中间件
理 — 目标机OS
目标机硬件
开发平 Host
台 宿主机开发环境
运 行
— 编辑 — 编译
库
— 连接
— 调试
宿主机 OS
宿主机硬件
交叉开发环境
9
嵌入式软件的交叉开发环境
物理连接和逻辑连接 物理连接是指宿主机与目标机通过物理线路连接 在一起,连接方式主要有三种:
串行通信口 局部以太网口 OCD(On Chip Debug)方式,如JTAG、BDM等
物理连接是逻辑连接的基础。 逻辑连接指宿主机与目标机间按某种通信协议建
立起来的通信连接,目前逐步形成了一些通信协 议的标准。
10
2)嵌入式软件实现阶段的开发过程
嵌入式软件的开发进入实现阶段,可分为 三个步骤:生成、调试和固化运行。
14
ARM映像文件格式
映像文件是计算机上的一个可执行文件,在执 行之前被加载到计算机存储器中。
ARM集成开发环境中的各种原文件(汇编、C以 及C++程序)经过ARM编译器编译之后,生成ELF 格式的目标文件。这些目标文件和相应的C/C++ 运行时库经过ARM连接器连接后,生成.axf映像 文件。在开发板上调试运行后,使用fromelf工 具将映像文件中的调试信息和注释过滤掉生成 二进制的可加载文件.bin。可加载文件可写入 嵌入式设备的ROM中,再加电启动过程执行。
Jtag 仿Hale Waihona Puke 器JtagUSB口
ARM CPU 执行
RS232电 平转换
串口
PC机硬件平台
12
开发流程
13
(1)嵌入式软件生成阶段
三个过程
源代码程序 的编写
编译成各个 目标模块
链接成可供 下载调试或 固化的目标 程序
源程序 编辑器
库文件
目标 模块
可供调试 /固化
交叉编 译器
交叉链 接器
在Linux环境中,主要使用GNU开发工具。
4
开发工具的分类
根据不同的阶段,嵌入式软件开发工具可 以分为:
需求分析工具(Requirement Analysis Tools) 软件设计工具(Software Design Tools) 编码、调试工具(Coding Tools) 测试工具(Testing Tools) 配置管理工具、维护工具等
15
嵌入式软件的生成
这一过程与普通计算机开发过程的本质区别是在于 交叉编译器和交叉连接器。
其中交叉编译器的主要功能是把在宿主机上编写的 高级语言程序编译成可以在目标机上运行的二进制 代码。常见的ARM软件开发环境有两种:
①ARM公司开发的集成开发环境ADS 1.2,该开发环境 使用了CodeWarrior公司的编译器,使用ADX进行本 地和远程调试。ADS有一系列应用程序及相关文档、 范例组成,主要包括命令行开发工具、GUI开发工 具、实用工具和支持软件。使用它们就可以编写和 调试自己的应用程序了。