再上一篇:6.2.2 Angel 系统的结构
上一篇:6.2.3 Angel 的通信结构
主页
下一篇:6.4.2 在 ARM 平台上使用 IPP 开发应用
再下一篇:6.5 嵌入式 Linux
文章列表

6.3 ADS 开发环境

嵌入式系统(修订本)——Intel XScale 结构与开发 陈章龙 著

ADS 是一套用来开发ARM 处理器应用系统的开发工具包,用户可以用ADS 编辑、编 译和调试C、C++以及汇编程序。

ADS 包括下列部分:

• 命令行开发工具

• 开发工具

• 实用工具

• 支持软件

命令行开发工具包括:
•armcc:ARM 的C 编译器,支持标准C 语言;
•armcpp:ARM 的C++编译器,,支持ISO C 语言以及EC++语言;
•tcc:Thumb 的C 编译器,支持标准C 语言;
•tcpp:Thumb 的C++编译器,,支持ISO C 语言以及EC++语言;
•armasm:ARM 和Thumb 的汇编器,支持ARM 以及Thumb 汇编语言;
•armlink:ARM 的链接器,产生ELF 格式文件;
•armsd:ARM 以及 Thumb 的调试器,支持代码级调试,可通过单步执行、设断 点以及检查变量或内存;
•Rogue Wave C++ library:实现ISO/IEC 14822 的标准C++库;
•Support library:ARM C 库提供了支持C++的工具,可以编译成不同体系和处理 器的代码。

ARM 的图形开发工具包括:

•AXD:Windows 以及Unix 下的ARM 调试器,提供了完整调试C、C++以及汇编 语言的Windows 以及Unix 下的环境;
•ADW:Windows 下的 ARM 调试器,提供了完整调试 C、C++以及汇编语言的

Windows 的环境;

•ADU :Unix 下的 ARM 调试器,提供了完整调试 C、C++以及汇编语言的 Unix
下的环境;
•CodeWarrior IDE:Windows 下的项目管理工具。
实用工具包括:
•fromELF:ARM 的 Image 文件转换工具,可以将 ELF 格式的文件转换成其他格 式文件,包括AIF、IHF 等;
•armprof:显示程序调试时的信息文件;
•armar:将ELF 格式的文件收集在库中;
•Flash downloader:下载二进制文件。
支持软件:
•ARMulator:ARM 内核的仿真软件,提供了对指令的精确仿真,和ARM 的调试 器集成在一起;
•Angel :运行在目标机上的调试监控程序,可以对 ARM、Thumb 代码的应用程 序调试。

ADS 可以在下列平台运行:

• Sun 工作站操作系统Solaris 2.5.1 或者2.6

• HP 工作站操作系统HP-UX 10.20

• PC 操作系统Windows 95 , Windows 98 以及Windows NT 4

§6.4 Intel 集成性能函数库 IPP

6.4.1 IPP 简述

IPP是Intel® Integrated Performance Primitives的缩写,中文名称是英特尔集成性能函数 库。IPP是PCA架构中的一个重要部分,它在操作系统之上向应用程序提供功能调用;同时 又直接立足于硬件,穿过了操作系统。那它究竟是什么呢?我们先从Intel对IPP的解释开始。

Integrated 指跨平台性,兼容多种处理器和操作系统。

Performance 指IPP 在性能方面得到了优化。

Primitives 指IPP 的各种调用只提供基本的,低开销的的元语级功能。 所以就字面而言,IPP 是 Intel 提供在其系列处理器平台上兼容的,性能优化的,元语级

功能集合。这些的确是IPP 的基本特征。
在各种 Intel 处理器平台上,都可以使用相同接口的 IPP 开发应用。除了 XScale 和 StrongARM,IPP 还兼容Intel 其他32 位和64 位处理器。在这么多平台上实现兼容对IPP 本 身的开发者来说是一项浩大的工程,但对使用者来说则是一个优点。IPP 目前都是基于某一 操作系统的,通常是32 位和64 位的Windows 和Linux 操作系统。但是在IPP 实现中,IPP 避免使用与特定操作系统相关的系统调用。因而使用IPP 开发的应用程序能够相对容易地在 Intel 处理器平台间移植。

IPP的最大优势在于性能优化。作为处理器的设计生产商,Intel在实现IPP的过程中能够 利用处理器的特点,采用不同的措施优化性能。就StrongARM的IPP而言,我们将在后面提 到用整数运算指令实现浮点数运算的优化措施。此外,虽然各个函数之间的调用都采用C语 言作为接口,但具体算法的实现几乎都用汇编语言。除了在ARM汇编语言编程部分提到那

些技巧之外,Intel作为处理器的设计者还能够根据CPU的流水线特性和总线特性采取措施, 从而减少数据依赖,提高访问速度。Intel在这方面的优势是其他开发者无法比拟的。而开发 者则可以将主要力量集中到开发个性化的具体应用上来。现在属于IPP的某些功能可能在将 来被固化到硬件中去。从这个角度去理解IPP在PCA架构或其他软硬件体系中的位置,或许 更接近它的本质。

IPP 目前提供的功能调用主要集中在多媒体处理方面,包括信号处理,图像处理,JPEG, 音频处理,视频处理,语音处理,语音识别,计算机视觉,矩阵和向量计算等。其中有些在 多媒体应用中处于底层,是多媒体技术的基本工具,如向量计算,信号发生,滤波,FFT 等; IPP 中的另一些功能调用实现了常用的多媒体数据处理算法,如图像处理用到的各种计算, 二维FFT,DCT,颜色空间变换等;还有一部分调用则实现了一些多媒体主流标准,如JPEG, MP3,MPEG,H.263 视频编码,GSM—AMR 语音编码,G.723.1 语音编码等。这些调用有 利于使用 Intel 处理器的开发者在多个层次上进行开发。信号处理和向量计算等适用于算法 层次上的开发,比如手写识别,语音识别,语音合成技术。有些甚至只是实验室中的试验算 法。使用IPP,开发者可以在一个相对统一的界面下开发,并且可以得到很高的性能,从而 加速新技术的实现和验证过程。常用算法则更有利于应用开发,它们可以替代原来需要应用 开发者自己开发的函数库。虽然通过开放源码潮流,我们可以找到许多源代码,或者开发者 和开发商已经拥有相应的函数库,但是IPP 通常具有更好的性能,而且拥有一个相对统一的 接口标准。至于 MP3,MPEG 等标准的实现就更有诱惑力了,它们除了在性能和接口上的 魅力外,简直可以直接用于开发商业化产品。事实上,使用 IPP 开发 MP3 播放软件,只需 要写很少的代码,其中核心部分甚至不到100 行。

总的来说,IPP 是与硬件关系非常密切的低层软件;兼容Intel 的各种体系的处理器,兼 容 Windows 和 Linux 操作系统;提供信号处理,图像处理,音频处理,视频处理,语音处 理等数千个功能调用;针对不同的处理器采用相应的代码实现以优化性能。

IPP 对各体系结构处理器支持参见下表:

表6-26 IPP功能

Function Group

Itanium

Architechture

IA-32 (includes

Pentium 4

Processor)

Intel StrongARM Microarchitecture

Intel XScale

Microarchitecture

Signal

Processing

now

now

now

now

Image

Processing

now

now

now

now

JPEG

now

now

now

now

Speech

Recognition

now

now

Computer Vision

now

now

Audio Codecs

v2.0

V2.0

now

now

Video Codecs

v2.0

V2.0

now

now

Matrix

v2.0

V2.0

Vector Math

v2.0

V2.0

Speech Coding

future

future

now

now