3、JTAG仿真器
JTAG仿真器也称为JTAG调试器,是通过ARM芯片的JTAG边界扫描口进行调试的设备。JTAG仿真器比较便宜,连接比较方便,通过现有的JTAG边界扫描口与 ARM CPU 核通信,属于完全非插入式(即不使用片上资源)调试,它无需目标存储器,不占用目标系统的任何端口,而这些是驻留监控软件所必需的。另外,由于JTAG调试的目标程序是在目标板上执行,仿真更接近于目标硬件,因此,许多接口问题,如高频操作限制、AC和DC参数不匹配,电线长度的限制等被最小化了。使用集成开发环境配合JTAG仿真器进行开发是目前采用最多的一种调试方式。
在以下的章节中,我们选取了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 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调试软件也包含在其中。
四、 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等。
五、 Embest IDE
Embest IDE英文全称是Embest Integrated Development Environment,是深圳市英蓓特信息技术有限公司(www.embedinfo.com)推出的一套应用于嵌入式软件开发的新一代集成开发环境。