一、引言
作为 Soc (System On Chip)的典型应用,和持电话、机顶盒、数码像机、GPS、个为数字助理以及因特网设备等产品的市场需求越来越大。目前,基于 ARM 的 处理器 以其高速度、低功耗等诸多优异的性能而成为上述各类产品中选用较多的处理器。
二、ARM内核
ARM内核分为ARM7、ARM9、ARM10以及StrongARM等几类。其中每一类又根据其各自包含的功能模块而分成多种构成在ARM内核中有四个功能模块可供生产厂商根据不同用户的不同要求来配置生产。这四个模块分别用T、D、M和I来表示。
T:表示Thumb,该内核可从16位指令集扩充到32位ARM指令集。
D:表示Debug,该内核中放置了用于调试的结构,通常它为一个边界扫描JTAG,可使CPU进入调试模式,从而可方便地进行断点设置、单步调试。
M:表示Multiplier,是8位乘法器。
I:表示EmbeddeDICE LogIC,用于实现断点观测及变量观测的逻辑电路部分,其中的TAP控制器可接入到边界扫描链。
ARM7
ARM7 采用ARMV4T(Newman)结构,分为三级流水,空间统一的指令与数据Cache,平均功耗为0.6mW/MHz,时钟速度为66MHz,每条指令平均执行1.9个时钟周期。其中的ARM710,ARM720和ARM740为内带Cache的ARM核。
ARM9
ARM9 采用ARMV4T(Harvard)结构,五级流水处理以及分离的Cache结构,平均功耗为0.7mW/MHz。时钟速度为120MHz- 200MHz,每条指令平均执行1.5个时钟周期。与ARM7系列相似,其中的ARM920、ARM940和ARM9E为含Cache的CPU核。性能为132MIPS(120MHz时钟,3.3V供)或220MIPS(200MHz时钟)。
ARM10
ARM10采用ARMV5T结构,六级流水处理,指令与数据分离的Cache结构。平均功耗为1000mW,时钟速度为300MHz,每条指令平均执行1.2个周期,其中ARM1020为带Cache的版本。
ARM10TDMI:与所有ARM核在二进制级代码兼容,内带高速32X16MAC,预留DSP协处理器接口。其中的VFP10(矢量浮点单元)为七级流水结构。
ARM1020T: ARM10TDMI+32KI&D Caches+MMU结构,300MHz时钟,功耗为1W(2.0V供电)或00mW(1.5V供电)。指令 Cache和数据Cache分别为32K,宽度为64bits。能够技术多种商用操作系统。适用于下一代高性能手持式因特网设备及数字式消费类应用。
StrongARM
StrongARM处理器采用ARMV4T的五级流水结构。目前有SA110、SA1100以及SA1110等三个版本。
三、ARM7系列开发工具及开发环境
1.软件开发工具
Green Hills Tools: Green Hills的ARM软件工具包能够支持ARM6、ARM7、ARM7M、ARM7TM、ARM7TDMI、ARM7500FE、ARM8、 ARM9、ARM10以及StrongARM等系列处理器。它由编译器、交叉工具包、集成开发环境和调试接口等组成。
Compiler:高优化性能的C/C++编译器。
Cross Tool Chain:交叉开发工具。包括汇编器(Assembler)、连接器(Linker)、库函数以及目标代码格式转换器。
MULTI:集成开发环境。Green Hills的MULTI集成环境综合了软件开发和调试过程中要用到的各种工具,如源级调试器、工程管理器、版本控制器、文本编辑器、性能分析器、图形浏览器。运行出错检测器、ARM指令集 仿真器 以及底层调试接口等。用户可方便地在MULTI环境中利用上述工具来开发应用程序。
Servers:底层调试接口。Green Hills的Servers提供两类调试接口供用户选择使用。一类用于Angel监控器、在线仿真器以及EPI公司的JEENI JTAFG仿真器等;另一类则用于商用操作系统及用户自己编写的操作系统。
ASDT2.5:SDT2.5是ARM公司提供的一大套由C编译器、连接定位器、C语言调试器和Angel监控器组成的开发软件包。由于价格比较适中而应用比较广泛。
2.硬件开发工具
ARM 的硬件开发工具主要包括两类仿真器,一是JTAG仿真器,二是全功能在线仿真器。前者是利用ARM处理器中的调试模块的功能,通过其JTAG边界扫描口来与仿真器连接。这种方式的仿真器比较便宜,连接比较方便。但由于仅通过十几条线来调试,因而功能有局限。目前ARM处理器的JTAG仿真器在市场上比较流行的是EPI公司的JEENI和MAJIC,著名的德国Lauterbach公司有一款通用JTAG/BDM/ONCE仿真器TRACE32-ICD也能够很好的支持ARM系列处理器。对于全功能在线仿真器来说,由于其信真头完全取代目标板上的CPU,因而功能非常强大。但这类仿真器为了能够全速仿真时钟速度高于100MHz的处理器,通常必须采用极其复杂的设计和工艺,因而其价格比较昂贵。Lauterbach公司的TRACE32-Fire就是这类产品的佼佼者。
JEENI仿真器:这是一种价位较低的JTAG仿真器。它能够很好地与SDT2.5工具连接。用户可使用其编译器和调试界面。
MAJIC仿真器:与JEENI相比,MAJIC能够通过100base-T以太网与主机相连,支持多处理器和低电压I/O。
TRACE32 -ICD:这是一种通用JTAG/BDM/ONCE仿真器,既能够支持Motorola系列的68K、ColdFire、MPC5XX/8XX、 MPC82XX,又能够通过更换模块来支持ARM7系列CPU.同时也能够支持SIEMENS的ONCE方式,如TriCore、C166等。另外, TRACE32-ICD提供独特的RISC逻辑追踪功能。
TRACE32Fire:这是全功能ICE,提供强大的调试和侦错功能。