摘要:本文简单介绍了arm系列处理的结构和技术特性。针对目前应广泛的arm7,详细介绍了相应的软件工具和硬件工具以及操作系统,并构建了一个pda方案来说明其实际应用。
关键词:arm soc pda
一、引言
作为soc(system on chip)的典型应用,和持、机顶盒、数码像机、gps、个为数字助理以及因特网设备等产品的市场需求越来越大。目前,基于arm的处理器以其高速度、低功耗等诸多优异的性能而成为上述各类产品中选用较多的处理器。
二、arm内核
arm内核分为arm7、arm9、arm10以及strongarm等几类。其中每一类又根据其各自包含的功能模块而分成多种构成(见表1)
在arm内核中有四个功能模块可供生产厂商根据不同用户的不同要求来配置生产。这四个模块分别用t、d、m和i来表示。
t:表示thumb,该内核可从16位指令集扩充到32位arm指令集。
d:表示debug,该内核中放置了用于调试的结构,通常它为一个边界扫描链jtag,可使cpu进入调试模式,从而可方便地进行断点设置、单步调试。nload="java_sc-ript_:if(this.width>200)this.width=200" align="left" vspace="1" border="0" onmousewheel="return bbimg(this)" alt="" src="https://www.gkzhan.com/upimg/allimg/070106/1305410.gif" />
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(矢量浮点单元)为七级流水结构。nload="java_sc-ript_:if(this.width>200)this.width=200" align="left" vspace="1" border="0" onmousewheel="return bbimg(this)" alt="" src="https://www.gkzhan.com/upimg/allimg/070106/1305411.gif" />
arm1020t: arm10tdmi+32ki&d caches+mmu结构,300mhz时钟,功耗为1w(2.0v供电)或00mw(1.5v供电)。指令cache和数据cache分别为32k,宽度为64bits。能够技术多种商用操作系统。适用于下一代高性能手持式因特网设备及数字式消费类应用。
strongarm
strongarm处理器采用armv4t的五级流水结构。目前有sa110、sa1100以及sa1110等三个版本(见表2)。
三、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。nload="java_sc-ript_:if(this.width>200)this.width=200" align="left" border="0" onmousewheel="return bbimg(this)" alt="" src="https://www.gkzhan.com/upimg/allimg/070106/1305412.gif" />
trace32 -icd:这是一种通用jtag/bdm/once仿真器,既能够支持motorola系列的68k、coldfire、mpc5xx/8xx、 mpc82xx,又能够通过更换模块来支持arm7系列cpu.同时也能够支持siemens的once方式,如tricore、c166等。另外, trace32-icd提供独特的risc逻辑追踪功能。
trace32fire:这是全功能ice,提供强大的调试和侦错功能。
四、支持arm7的rtos及其系统开发
目前在国内,arm7的应用较多,arm9、arm10的使用尚未开始。在引,我们以arm7的应用来例来说明arm7系统的构成及其os的应用。
arm7处理的生产厂商很多,他们仅须向arm公司购买arm7核的license便可进行生产。目前常用到的arm7芯片有tmel公司的at91m40400、cirrus logic公司的cl-ps7500fe/ep7211等、hyundai公司的gms30c7201、linkup公司的l7200、samsung公司的ks32c4100/50100等等。另外,ti公司、lsi logic、ns公司、nec公司以及philips公司也生产相应的arm7芯片。虽然众多的厂商提供多种瑾的处理器,但是除外部一些功能模块外,它们的内核是相同的,因而在软件编程有调试上是相同的。
在多种商用rtos(实时多任务操作系统)中,nucleus plus实时多任务操作系统是一种带源代码的os,目前非常流行。在国内也拥有大量的实际应用。nucleus是zui早支持arm系列cpu的操作系统之一,它提供内核、图形界而模块、通讯协议模块、文件系统以及嵌入式网上浏览器等等完整的解决方案。国内许多的公司均已选用nucleus在arm平台上实现pda、stb、dvd、pos、gps、手机以及智能终端等。
五、基于arm7的pda方案
arm7系列芯片具有高速、低功耗、集成度高等特点,非常适合用于开发pda设备。在此介绍一个韩国现代电子提供的以gms30c7201芯片为核心的pda方案(见图1)。
*操作系统:nucleus plus
*编译器:arm sdt / green hill
*仿真器:jenni / trace32-icd
在这一平台上,我们选用ati公司的nucleus操作系统及相应的文件系统、图形软件包、网络模块和浏览器来实现pda的各种功能。现在已经完成了大部分的软件移植工作:mucleus内核、文件系统、图形软件包、tcp/ip网络模块(使用ppp拔号上网)以及各种片上设备的驱动、浏览器的移植也即将完成。