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