ARM开发工具综述

ARM应用软件的开发工具根据功能的不同,分别有编译软件、汇编软件、链接软件、调试软件、嵌入式实时操作系统、函数库、评估板、JTAG仿真器、在线仿真器等,目前世界上约有四十多家公司提供以上不同类别的产品。
用户选用ARM处理器开发嵌入式系统时,选择合适的开发工具可以加快开发进度,节省开发成本。因此一套含有编辑软件、编译软件、汇编软件、链接软件、调试软件、工程管理及函数库的集成开发环境(IDE)一般来说是必不可少的,至于嵌入式实时操作系统、评估板等其他开发工具则可以根据应用软件规模和开发计划选用。
使用集成开发环境开发基于ARM的应用软件,包括编辑、编译、汇编、链接等工作全部在PC机上即可完成,调试工作则需要配合其他的模块或产品方可完成,目前常见的调试方法有以下几种:
1、指令集模拟器
部分集成开发环境提供了指令集模拟器,可方便用户在PC机上完成一部分简单的调试工作,但是由于指令集模拟器与真实的硬件环境相差很大,因此即使用户使用指令集模拟器调试通过的程序也有可能无法在真实的硬件环境下运行,用户最终必须在硬件平台上完成整个应用的开发。
2、驻留监控软件
驻留监控软件(Resident Monitors)是一段运行在目标板上的程序,集成开发环境中的调试软件通过以太网口、并行端口、串行端口等通讯端口与驻留监控软件进行交互,由调试软件发布命令通知驻留监控软件控制程序的执行、读写存储器、读写寄存器、设置断点等。
驻留监控软件是一种比较低廉有效的调试方式,不需要任何其他的硬件调试和仿真设备。ARM公司的Angel就是该类软件,大部分嵌入式实时操作系统也是采用该类软件进行调试,不同的是在嵌入式实时操作系统中,驻留监控软件是作为操作系统的一个任务存在的。
驻留监控软件的不便之处在于它对硬件设备的要求比较高,一般在硬件稳定之后才能进行应用软件的开发,同时它占用目标板上的一部分资源,而且不能对程序的全速运行进行完全仿真,所以对一些要求严格的情况不是很适合。
3、JTAG仿真器
JTAG仿真器也称为JTAG调试器,是通过ARM芯片的JTAG边界扫描口进行调试的设备。JTAG仿真器比较便宜,连接比较方便,通过现有的JTAG边界扫描口与 ARM CPU 核通信,属于完全非插入式(即不使用片上资源)调试,它无需目标存储器,不占用目标系统的任何端口,而这些是驻留监控软件所必需的。另外,由于JTAG调试的目标程序是在目标板上执行,仿真更接近于目标硬件,因此,许多接口问题,如高频操作限制、AC和DC参数不匹配,电线长度的限制等被最小化了。使用集成开发环境配合JTAG仿真器进行开发是目前采用最多的一种调试方式。
4、在线仿真器
在线仿真器使用仿真头完全取代目标板上的CPU,可以完全仿真ARM芯片的行为,提供更加深入的调试功能。但这类仿真器为了能够全速仿真时钟速度高于100MHz的处理器,通常必须采用极其复杂的设计和工艺,因而其价格比较昂贵。在线仿真器通常用在ARM的硬件开发中,在软件的开发中较少使用,其价格高昂也是在线仿真器难以普及的因素。
在以下的章节中,我们选取了ARM SDT、ARM ADS、MULTI 2000、Hitools for ARM、Embest IDE for ARM五种集成开发环境向读者作一个简单的介绍,这些产品在国内有相对较畅通的销售渠道,用户容易购买。前三种由国外厂商出品,历史比较悠久,在全球范围内应用较为广泛,后两种由国内厂商推出,具有很高的性价比。另外选取了国际市场上较流行的两种JTAG仿真器:EPI公司的JEENI和ARM公司的Multi-ICE。
二、 ARM SDT
ARM SDT的英文全称是ARM Software Development Kit ,是ARM公司(www.arm.com)为方便用户在ARM芯片上进行应用软件开发而推出的一整套集成开发工具。ARM SDT经过ARM公司逐年的维护和更新,目前的最新版本是2.5.2,但从版本2.5.1开始,ARM公司宣布推出一套新的集成开发工具ARM ADS 1.0,取ARM SDT而代之,今后将不会再看到ARM SDT的新版本。
ARM SDT由于价格适中,同时经过长期的推广和普及,目前拥有最广泛的ARM软件开发用户群体,也被相当多的ARM公司的第三方开发工具合作伙伴集成在自己的产品中,比如美国EPI公司的JEENI仿真器。
ARM SDT(以下关于ARM SDT的描述均是以版本 2.50为对象)可在Windows95、98、NT以及Solaris 2.5/2.6、HP-UX 10上运行,支持最高到ARM9(含ARM9)的所有ARM处理器芯片的开发,包括StrongARM。
ARM SDT包括一套完整的应用软件开发工具:
*armcc ARM的C编译器,具有优化功能,兼容于ANSI C。
*tcc THUMB的C编译器,同样具有优化功能,兼容于ANSI C。
*armasm 支持ARM和THUMB的汇编器。
* armlink ARM连接器,连接一个和多个目标文件,最终生成ELF格式的可执行映像文件。
* armsd ARM和THUMB的符号调试器。
以上工具为命令行开发工具,均被集成在SDT的两个Windows开发工具ADW和APM中,用户无需直接使用命令行工具。
*APM Application Project Manageer,ARM工程管理器,完全图形界面,负责管理源文件,完成编辑、编译、链接并最终生成可执行映像文件等功能,见下图。



*ADW Application Debugger Windows,ARM调试工具,ADW提供一个调试C、C++和汇编源文件的全窗口源代码级调试环境,在此也可以执行汇编指令级调试,同时可以查看寄存器、存储区、栈等调试信息。



ARM SDT还提供一些实用程序,如fromELF、armprof、decaxf等,可以将ELF文件转换为不同的格式,执行程序分析以及解析ARM可执行文件格式等。
ARM SDT集成快速指令集模拟器,用户可以在硬件完成以前完成一部分调试工作;ARM SDT提供ANSI C、C++、Embedded C函数库,所有库均以lib形式提供,每个库都分为ARM指令集和THUMB指令集两种,同时在各指令集中也分为高字节结尾(big endian)和低字节结尾(little endian)两种。
用户使用ARM SDT开发应用程序可选择配合Angel驻留模块或者JTAG仿真器进行,目前大部分JTAG仿真器均支持ARM SDT。
ARM SDT 2.50的零售价一般在4000美元到4500美元。
三、 ARM ADS
ARM ADS的英文全称为 ARM Developer Suite,是ARM公司推出的新一代ARM集成开发工具,用来取代ARM公司以前推出的开发工具ARM SDT,目前ARM ADS的最新版本为1.2。
ARM ADS起源于ARM SDT,对一些SDT的模块进行了增强并替换了一些SDT的组成部分,用户可以感受到的最强烈的变化是ADS使用CodeWarrior IDE集成开发环境替代了SDT的APM,使用AXD替换了ADW,现代集成开发环境的一些基本特性如源文件编辑器语法高亮,窗口驻留等功能在ADS中才得以体现。
ARM ADS支持所有ARM系列处理器包括最新的ARM9E和ARM10,除了ARM SDT支持的运行操作系统外还可以在Windows2000/Me以及RedHat Linux上运行。
ARM ADS由六部分组成:
* 代码生成工具(Code Generation Tools)
代码生成工具由源程序编译、汇编、链接工具集组成。ARM公司针对ARM系列每一种结构都进行了专门的优化处理,这一点除了作为ARM结构的设计者的ARM公司,其他公司都无法办到,ARM公司宣称,其代码生成工具最终生成的可执行文件最多可以比其他公司工具套件生成的文件小20%。
*集成开发环境(CodeWarrior IDE from Metrowerks)
CodeWarrior IDE是Metrowerks公司一套比较有名的集成开发环境,有不少厂商将它作为界面工具集成在自己的产品中。CodeWarrior IDE包含工程管理器、代码生成接口、语法敏感编辑器、源文件和类浏览器、源代码版本控制系统接口、文本搜索引擎等,其功能与Visual Studio相似,但界面风格比较独特。ADS仅在其PC机版本中集成了该IDE。



*调试器(Debuggers)
调试器部分包括两个调试器:ARM扩展调试器AXD(ARM eXtended Debugger )、ARM符号调试器armsd(ARM symbolic debugger)。
AXD基于Windows9X/NT风格,具有一般意义上调试器的所有功能,包括简单和复杂断点设置、栈显示、寄存器和存储区显示、命令行接口等。
Armsd作为一个命令行工具辅助调试或者用在其他操作系统平台上。



* 指令集模拟器(Instruction Set Simulators)
用户使用指令集模拟器无需任何硬件即可在PC机上完成一部分调试工作。
* ARM 开发包(ARM Firmware Suite)
ARM开发包由一些底层的例程和库组成,帮助用户快速开发基于ARM的应用和操作系统。具体包括系统启动代码、串行口驱动程序、时钟例程、中断处理程序等,Angel调试软件也包含在其中。
* ARM应用库(ARM Applications Library)
ADS的ARM应用库完善和增强了SDT中的函数库,同时还包括一些相当有用的提供了源代码的例程。
用户使用ARM ADS开发应用程序与使用ARM SDT完全相同,同样是选择配合Angel驻留模块或者JTAG仿真器进行,目前大部分JTAG仿真器均支持ARM ADS。
ARM ADS的零售价为5500美元,如果选用不固定的许可证方式则需要6500美元。
四、 Multi 2000
Multi 2000是美国Green Hills软件公司(www.ghs.com)开发的集成开发环境,支持C/C++/Embedded C++/Ada 95/Fortran编程语言的开发和调试,可运行于Windows平台和Unix平台,并支持各类设备的远程调试。
Multi 2000支持Green Hills公司的各类编译器以及其它遵循EABI标准的编译器,同时Multi 2000支持众多流行的16位、32位和64位处理器和DSP,如PowerPC、ARM、MIPS、x86、Sparc、TriCore、SH-DSP等,并支持多处理器调试。
Multi 2000包含完成一个软件工程所需要的所有工具,这些工具可以单独使用,也可集成第三方系统工具。Multi 2000各模块相互关系以及和应用系统相互作用如下图所示:



l 工程生成工具(Project Builer)
工程生成工具实现对项目源文件、目标文件、库文件以及子项目的统一管理,显示程序结构,检测文件相互依赖关系,提供编译和链接的图形设置窗口,并可对编程语言的进行特定环境设定。



l 源代码调试器(Source-Level Debugger)
源代码调试器提供程序装载、执行、运行控制和监视所需要的强大的窗口调试环境,支持各类语言的显示和调试,同时可以观察各类调试信息。



l 事件分析器(EventAnalyzer)
事件分析器提供用户观察和跟踪各类应用系统运行和RTOS事件的可配置的图形化界面,它可移植到很多第三方工具或集成到实时操作系统中,并对以下事件提供基于时间的测量:任务上下文切换、信号量获取/释放、中断和异常、消息发送/接受、用户定义事件。



l 性能剖析器(Performance Profiler)
性能剖析器提供对代码运行时间的剖析,可基于表格或图形显示结果,有效的帮助用户优化代码。



l 实时运行错误检查工具(Run-Time Error Checking)
实时运行错误检查工具提供对程序运行错误的实时检测,对程序代码大小和运行速度只有极小影响,并具有内存泄漏检测功能。
l 图形化浏览器(Graphical Brower)
图形化浏览器提供对程序中的类、结构变量、全局变量等系统单元的单独显示,并可显示静态的函数调用关系以及动态的函数调用表。



l 文本编辑器(Text Editor)
Multi 2000的文本编辑器是一个具有丰富特性的用户可配置的文本图形化编辑工具,提供关键字高亮显示、自动对齐等辅助功能。
l 版本控制工具(Version Control System)
Multi 2000的版本控制工具和Multi 2000环境紧密结合,提供对应用工程的多用户共同开发功能。Multi 2000的版本控制工具通过配置对支持很多流行的版本控制程序,如Rational公司的ClearCase等。

相关