• 沒有找到結果。

ARM DS-5实战开发从入门到精通 - 万水书苑-出版资源网

N/A
N/A
Protected

Academic year: 2021

Share "ARM DS-5实战开发从入门到精通 - 万水书苑-出版资源网"

Copied!
8
0
0

加載中.... (立即查看全文)

全文

(1)

1

DS-5 概述 

DS­5  是 ARM 官方推出的基于 Eclipse 的调试工具,可以用来调试所有 ARM 处理 器,包括 Cortex­A、Cortex­R 和 Cortex­M 系列,以及更早期的 ARM9 和 ARM11 等处 理器。它是和 ARM CPU 的专家们一起开发的,所以它比市场上其他的调试器能更早、 更好地支持 ARM 处理器。 

1.1  DS­5 介绍 

DS­5 的功能非常强大,除了常见的最基本的 JTAG 调试功能外,如设置断点、控制  CPU  运行和停止、单步调试等,还含有很多特色功能,如可以无缝地运行  ARM  的  Fast­Model;在不打断 CPU 执行的条件下获取 CPU 执行的指令和数据信息;用来分析 系统软硬件性能的 Streamline;芯片的验证和启动等。下面是 DS­5 的一些常见功能。 l 加载调试的代码镜像和符号表。 l 运行代码镜像。 l 设置断点和观察点。 l 代码和指令的单步调试。 l 变量、寄存器和内存的访问。 l 程序调用、运行的栈信息。 l 支持异常的处理和 Linux 系统的异常信号。 支持调试 Linux 的多线程应用。

(2)

l 支持调试 Linux 内核和驱动模块,启动代码和内核的移植。 l 支持裸操作系统的对称多处理器的调试。 l 支持像 gdb 风格的命令行输入。 

1.2  DS­5 debugger 调试器 

DS­5 是一个基于 Eclipse 的图形化界面,如图 1­1 所示。DS­5 调试器完全支持所有 的 ARM 处理器、ARM 开发板和 ARM 虚拟平台 Fast­Model 的连接和调试。全面的图形 化界面和直观的视图窗口可以方便地调试 Linux、Android 和裸机程序,包括单步调试和 软/硬件断点的设置,反汇编代码和源程序的同步,堆栈的调用管理,CPU  寄存器、内 存、变量和线程的显示和操作。 图 1­1  DS­5 调试器视图  DS­5 还可以实现项目的管理和调试, 在 DS­5 的软件管理窗口中可以方便地进行代 码的查看、查找和编辑工作,在调试管理窗口中进行程序的单步调试或运行到断点,在 其他窗口中可以观察程序指令执行的最新信息。 除了视觉窗口外,DS­5 还提供了一个 gdb 风格的命令行,可以在这个命令行中直 接输入命令来控制整个系统的运行。

(3)

1.3  DS­5 虚拟平台 FVP 

FVP 是 ARM 开发的一种虚拟平台, 可以在没有实际硬件的情况下进行软件的开发、 验证和调试。这使得软件开发人员可以更早地介入到项目的开发中,加快整个项目的开 发速度,缩短产品的上市周期。比如 ARM 最近几年推出了 Aarch64 位架构,以前的软 件和应用程序都是 32 位的, 有可能市场上 64 位的 ARM CPU 或者基于 ARM 64 位 CPU  的开发板还没有出来, 这时软件开发人员可以使用 ARM 的 FVP 虚拟平台进行先期的软 件移植和验证工作,等有了实际硬件平台后,再在硬件平台上运行和进行性能调试,就 显得非常方便了。该模型与真实的硬件有一定的差别,比如不能提供精确时序的仿真、 底层硬件的交互和实际外设的访问或操作。  DS­5 安装好后,在 DS­5 安装路径的 example 目录下可以找到 ARM 提供的虚拟平 台应用实例,目前提供例子的有 ARMv8 架构(即 ARM 的 64 位架构)和 ARMv7 的 32  位架构虚拟平台,包括 Cortex­A9、Cortex­A7、Cortex­A15 等。 

1.4  DS­5 的编译器

最新的 DS­5 软件版本一旦安装好后就包含了 3 个编译器:ARM 编译器 5.0、ARM  编译器 6.0 和 GNU 的 gcc 编译器, 所有这些编译器都可以在安装目录的 DS­5/sw 下找到。  1.4.1  ARM 编译器 5.0  ARM 编译器 5.0 也就是我们以前常说的 armcc,ARM 在这个编译器上的开发已经 有几十年的历史, 在市场上的应用非常广泛和稳定, 主要适用于 ARM 原来 32 位架构的 处理器,用来编译裸机嵌入式系统的程序、固件或库,包括的编译工具和功能如下: (1)armar:库管理工具,能将多个 ELF 格式的目标文件集中到一起,并存入归档 文件或库中维护。用这样的归档文件或库,可替代多个 ELF 文件传递给链接程序,还可 以提供给第三方开发应用程序。 (2)armasm:汇编工具,汇编 ARM 和 Thumb 汇编语言程序。 (3)armcc:编译工具,编译 C/C++代码,支持 inline 和嵌入汇编,还支持 NEON  向量编译程序。 (4)armlink:链接工具,将一个或多个目标文件合并成一个或多个目标,生成一 个可执行程序文件。 (5)fromelf:Image 镜像转换工具,也能对输入的镜像文件产生文本信息,如反汇 编、代码和数据区的大小。

(4)

1.4.2  ARM 编译器 6.0  ARM 编译器 6.0 是基于现代开源编译器架构 LLVM/Clang 设计的, 它汲取了 LLVM  里面的精华部分,同时 ARM 加上了为之优化过的很多库,最终在代码密度和性能之间 取得了很好的平衡。它的语法格式跟之前的编译器 5.0 是不一样的,更符合 GNU 的语 法规范。 目前主要适用于 ARM 最新的 64 位架构的处理器也是用来编译裸机嵌入式系统 的程序、固件或库,它同样包含 armar、armlink、fromelf 等编译工具,和表 1­1 中介绍 的功能是一样的, 不同的是编译器 6.0 下的这些编译工具可同时支持 ARM 的 32 位和 64  位架构,但只能编译成 32 位的应用。 特别要指出 armasm 这个编译工具,它主要是用来支持原来编译器 5.0 中的汇编语 法格式,方便把之前 32 位 ARM 的汇编代码快速地在 64 位架构下编译运行。如果项目 需要重新写汇编程序,则建议直接按照编译器 6.0 的语法格式来写,然后用 armclang 进 行编译。  Armclang 可以用来编译 C/C++代码,同时因为它还内嵌了一个汇编器, 所以也可以 用来编译符合 GNU 语法的汇编程序。如果是之前的汇编程序,则要用 armasm。这里简 单的举个例子来说明下 armclang 的使用方法: 比如编译 C 代码: 

armclang ­c ­O1 ­o hello_world.o ­xc ­std=c90 ­g hello_world.c  选项说明如下:  ­c:告诉编译器只编译,不链接。  ­O1:告诉编译器使用的优化选项。  ­xc:告诉编译器编译的源代码是 C。  ­std=c90:告诉编译器 C 代码是符合 C90 规范的。  ­g:告诉编译器添加调试信息。  ­o:输出的目标文件名。 详细的使用方法请参照 ARM 的官方文档和 LLVM 官网http://www.llvm.org。  1.4.3  GNU 编译器  DS­5 的发行版本中还包含了一个开源的 GNU GCC 编译工具,主要用来编译 Linux  内核、Linux 驱动程序、上层应用和 Android。 这些编译工具可以在安装目录的 DS­5/sw/gcc/bin 下找到,也可以通过 Linaro 这个 网站直接免费下载。这些编译工具在 DS­5 的发行版中有 Linux 版本,也有 Windows 版 本,具体由下载的 DS­5 是 Windows 版本还是 Linux 版本决定,主要工具如表 1­1 所示, 可以在命令行或 DS­5 Eclipse 下使用这些工具来编译程序。

(5)

表 1­1    GNU 编译工具 工具 描述  arm­linux­gnueabihf­ar  GNU 库管理工具  arm­linux­gnueabihf­as  GNU 汇编器  arm­linux­gnueabihf­gcc  GNU C 编译器  arm­linux­gnueabihf­g++  GNU C++编译器  arm­linux­gnueabihf­ld  GNU 链接器 详细使用文档可参照 DS­5 安装路径下的 documents/gcc。 

1.5  DS­5 Streamline 

Streamline 是 DS­5 中的一个图形化性能分析工具。它集成内核驱动程序、目标守护 进程和一个基于  Eclipse  的界面,能将抽样采集到的数据转换成报告格式,以可视化和 统计表格的形式显示,方便用户发现系统的资源利用状况和系统的瓶颈,是一个很好的 性能分析和优化工具。Streamline  使用内核级的硬件性能计数器以提供系统资源的精确 表示,除了可以显示 CPU 和 Cache 命中率、分支跳转指令数等相关资源信息外,还可 以显示分析 Mali GPU 的信息,如图 1­2 所示。 图 1­2    DS­5 的图形化性能分析工具

(6)

1.6  DS­5 硬件调试器 DSTREAM 

DSTREAM 是 ARM 官方开发的一款硬件调试工具,可以在基于 ARM 设计的 CPU  上完成调试和跟踪任务,允许调试软件通过 JTAG 或串行调试 SWD 硬件接口接到基于  ARM CPU 设计的开发板上进行调试, 也可以在不打断 CPU 执行的情况下获取指令和数 据信息进行调试分析和代码优化。  DSTREAM(如图 1­3 所示)这个硬件调试器主要包含: l  DSTREAM 硬件调试单元。 l  DSTREAM 硬件调试分析接口。 l 电源、USB 和以太网接口。 图 1­3  硬件调试器 DSTREAM  ARM 还为 DSTREAM 这个硬件调试器提供了一系列硬件配置工具,使用户可以配 置和升级 DSTREAM,包括: l  Debug Hardware Config IP:用于配置 DSTREAM 的 IP 地址。 l  Debug Hardware Update:用于更新 DSTREAM 的固件。

(7)

的硬件配置信息并生成文件,以便导入 DS­5 生成此设备的配置数据库。但这 个工具目前已被 DS­5 中集成的平台配置编辑器 (Platform Configuration Editor,  PCE)所取代,我们会在后续章节中详细介绍 PCE 的使用。 

1.7  DS­5 的版本管理 

DS­5 目前有 3 种版本:社区版、专业版和旗舰版,表 1­2 列出了这 3 个版本之间的 详细区别,可根据实际项目情况选择相应的版本。 表 1­2  DS­5 的版本比较 社区版 专业版 旗舰版 编译器  ARM 编译器 5.0 Ö Ö  ARM 编译器 6.0  支持 ARMv7­A Ö 调试 最高支持 ARMv7  最高支持 ARMv8  裸板、RTOS­aware 调试 Ö Ö  ETM、PTM、ITM、STM 信息跟踪 Ö Ö  Linux、Android 本地库和应用程序 Ö Ö Ö 

Linux 应用程序的 Rewind 调试 Ö 最高支持 ARMv7  系统系能分析 最高支持 ARMv7  最高支持 ARMv8  性能图表显示 受限 Ö Ö 函数剖析功能 Ö Ö Ö 剖析和多核视觉显示 Ö Ö 功耗数据 Ö Ö  Cortex­M DWT/ITM 数据收集 Ö Ö 虚拟平台  Cortex­A9MP4 FVP Ö Ö  AEM ARMv8­A VE MP4 FVP Ö

(8)

2

DS-5 的安装和启动

本章主要介绍 DS­5 的安装需求、安装步骤和如何在 Windows 或 Linux 环境下启动  DS­5。 

2.1  主机系统需求

要安装和使用 DS­5,需要一台最低配置为双核 2GHz 处理器(或同等配置)和 2GB  内存的计算机。建议  4GB  或更高的内存,以提高调试大镜像文件或使用仿真模型时的 性能。整个 DS­5 安装大概需要 3GB 的硬盘空间,屏幕的最低分辨率为 1024×768。  DS­5 支持以下 32 位和 64 位版本的系统平台和服务包: l  Windows 7 Professional Service Pack 1  l  Windows 7 Enterprise Service Pack 1  l  Windows XP Professional Service Pack 3(32­bit only) (不建议使用,微软已宣 布不再维护,所以以后版本将不再支持) l  Windows Server 2012(ARM Compiler 5 and 6 toolchains only) l  Windows Server 2008 R2(ARM Compiler 5 toolchain only) l  Red Hat Enterprise Linux 5 Desktop with Workstation option  l  Red Hat Enterprise Linux 6 Workstation

參考文獻

相關文件

-39% want to learn more English in other subjects -1 time per semester.

Por tfoli o asses sment : Inst ructional guide, Hong Kong: The Hong Kong Instit ute of Education.. Teachi ng t he C hines e

The Liouville CFT on C g,n describes the UV region of the gauge theory, and the Seiberg-Witten (Gaiotto) curve C SW is obtained as a ramified double cover of C g,n ... ...

In fact, the formation of chemical C-O state increases the extra factor inside the DOS re-distribution; therefore, without this, like the case of the sidewalls region (C), it shows

We compare the results of analytical and numerical studies of lattice 2D quantum gravity, where the internal quantum metric is described by random (dynamical)

[r]

展望今年,在課程方面將配合 IEET 工程教育認證的要求推動頂石課程(Capstone

本系已於 2013 年購置精密之三維掃描影像儀器(RIEGL