Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1676286
  • 博文数量: 311
  • 博客积分: 7778
  • 博客等级: 少将
  • 技术积分: 4186
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-09 19:59
个人简介

蓝点工坊(http://www.bluedrum.cn) 创始人,App和嵌入式产品开发。同时也做相应培训和外包工作。 详细介绍 http://pan.baidu.com/s/1y2g88

文章存档

2012年(3)

2011年(115)

2010年(170)

2009年(23)

分类: 嵌入式

2010-11-12 12:41:37

 
Andrew Haung
 
 
  ARM公司只负责设计CPU,并以IP Core形式销售.IP Core可以理解是集成在物理IC的功能模块。与IC的关系可以理解成应用程序跟库函数的关系。ARM的内核IP Core可能就是一个设计文件。
  其它公司把ARM IP Core买回来(当然是看不到其中的设计源码的),加上一些外围模块,就形成一个完整的CPU。然后按生产的数量交给ARM的lisence费用。
   这种模式优点在于,最复杂的CPU设计ARM公司已经完成,IC芯片公司只需加上相对简单的模块即可形成一个完整CPU,这大加快CPU的设计速度的。因此世界上几乎所有大公司都有自己的ARM核的CPU。
   比如S3C2440采用就是 ARM920T的内核。
   S3C6410采用ARM11
 
ARM的版本号
-----------------------------------------------------------------
 
ARM的版本分为1-7的版本.
 
V1-V3已经很少使用.
V4就是广泛使用一个版本。
    ARMv4和ARMv4T结构的处理器得到了广泛的应用。SA-110、SA-1110等是基于ARMv4的;
   ARM7TDMI、ARM720T、 ARM9TDMI、ARM940T、ARM920T、Intel的StrongARM等是基于ARMv4T版本。
V5
  版本5包括v5TE和v5TEJ ,v5TE在v5T的基础上增加了信号处理(DSP)指令集,v5TEJ除了具备v5T的功能外,还可以执行JAVA字节代码,是在ARM上执行JAVA指令的效率提高了5-10倍,并且降低了功耗。
 
V6。
  ARM体系版本6是2001年发布的。其目标是在有效的芯片面积上为嵌入式系统提供更高的性能。

  采用ARMv6核的处理器是ARM11系列。

V7
2004年发布了新的ARMv7体系结构

 
 
三星的S3C2410是ARMv4版本,ATMEL 的AT91SAM9261是用ARMv5.
 
 
ARM体系结构的命名规则
----------------------------------------------------------------
   ARM 体系结构是 CPU 产品所使用的一种体系结构,ARM 公司开发了一套拥有知识产权的RISC体系结构的指令集。每个ARM处理器都有一个特定的指令集架构,而一个特定的指令集架构又可以由多种处理器实现。
特定的指令集架构随着嵌入式市场的发展而发展。由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行
 
 其中 ARM==Advanced RISC Machines
 
   ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S}
 
 x  处理器系列
 y  存储管理 /保护单元
 z  Cache
 
 T  Thumb指令集译码器  ARM核对ARMv4及以后的体系结构支持Thumb指令集   ARMv6及以后的内核自动包含T
 D  JTAG调试器    ARM核支持通过JTAG接口调试        ARMv5及以后的内核自动包含D
 M  快速乘法器     ARM核支持长乘法指令          ARMv4及以后的内核自动包含M
 I  嵌入式跟踪宏单元   ARM核通过嵌入式ICE单元支持硬件断点和观察点    ARMv5及以后的内核自动包含I
 E  增强指令     ARM核在ARMv5上增加DSP指令扩展       ARMv6及以后的内核自动包含E
 J  Jazelle     ARM核支持Jazelle Java加速体系结构
 F  向量浮点单元    ARM核通过向量浮点(VFP)结构支持硬件浮点
 -S  可综合版本     ARM核使用可综合版本的硬件设计
 
 
注:ARM7TDMI之后的所有ARM内核,即使“ARM”标志后没有包含“TDMI”字符,也都默认包含了TDMI的功能特性;
 
 Cortex系列
-----------------------------------------------------------------------
  Cortex 是大脑皮层的意思。在ARM11后,新的CPU采用这个命名。的它指令集是ARMv7
 
   ARM Cortex系列产品由三个系列所组成,全都采用Thumb-2指令集设计,以解决不同市场区块的需求:
      ARM Cortex-A系列:复杂操作系统及客户端装置之应用处理器.基本象台式机
      ARM Cortex-R系列:针对实时系统的嵌入式处理器
      ARM Cortex-M系列:价格敏感型应用装置之嵌入式处理器,包括微处理器应用在内.
 
换句话说Cortex 系列CPU能以更低的价格,更的功耗,更小的程序达到更高的主频。现在Cortex系列基本上G级主频。因此这将是未来智能手机,MID的主流CPU。
 
  以STM32系列为例。的处理速度比同级别的基于ARM7TDMI的产品快30%,换句话说,如果处理性能相同,STM32产品功耗比同级别产品低75%。同样地,使用新内核的Thumb 2指令集,设计人员可以把代码容量降低45%,几乎把应用软件所需内存容量降低了一半.
 
更加详细的分析
 
1)款式A(ARMv7‐A):需要运行复杂应用程序的"应用处理器"。支持大型嵌入式操作系统,比如Symbian,Linux,以及微软的 WindowsCE和智能手机操作系统WindowsMobile。这些应用需要劲爆的处理性能,并且需要硬件MMU实现的完整而强大的虚拟内存机制,还基本上会配有Java支持,有时还要求一个安全程序执行环境。典型的产品包括高端手机和手持仪器,电子钱包以及金融事务处理机。
2) 款式R(ARMv7‐R):硬实时且高性能的处理器。标的是高端实时市场。那些高级的玩意,像高档轿车的组件,大型发电机控制器,机器手臂控制器等,它们使用的处理器不但要很好很强大,还要极其可靠,对事件的反应也要极其敏捷。
3) 款式M(ARMv7‐M):认准了旧世代单片机的应用而量身定制。在这些应用中,尤其是对于实时控制系统,低成本、低功耗、极速中断反应以及高处理效率,都是至关重要的。

 
 
 在现在大量基于Cortex-A8系列的产品上,现在很多工程师开始知道这个ARM系列了。  它几乎现在成为Android产品系列的标配了。象三星的S5P系列,Freescale的 i.MX5系列

 
软件如何与硬件通讯
----------------------------------------------------------------------
 
  软件与硬件通讯方式相当简单。大体上分三种,一。与CPU用指定寄存器用机器指令直接交换数据。二。与外部设备在物理地址上进行数据交换。三.硬件用中断通知软件发生某事。
 
第一种是比较好理解。
    寄存器(Register)是CPU内部小的存储设备,它是访问速度最快的存储设备,同时也是成本最高的设备。因此只少量使用在CPU内部。用于运算和控制CPU。每一个寄存器的大小取决CPU的数据总线宽度。32位CPU的寄存器就是32bit宽.
  每一个寄存器有一个固定的名字,用机器或汇编指令用来直接访问。不同CPU有不同的命名.
  ARM共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器.这些寄存器不能被同时访问,但在任何时候,通用寄存器R0~R14,程序计数器PC,一个或两个状态寄存器都是可访问的.
 
ADD R0,R1,R2
 上一句ARM汇编语句表示存在寄存器R1的数与存在寄存器2的数相当,结果是保存在寄存器R0之中。ADD的动作由CPU里的加法器来完成。
 
第二种,软件与外部设备通讯需要在物理空间进行交换。
 以32bitCPU为例,因为数据地址线的限制,CPU能看到最大地址空间就是4G.所有硬件设备包括CPU和外部模块。这个空间只是一个抽象的表示,并不表示存在这个空间。
  各个种外设,如SDRAM,网口控制器,USB等他们通过各种物理上的连线确定自己在这个地址空间的地址。
 
 软件通过汇编语言的中访问外部空间的指令来与这一些设备进行通讯。
 
对于物理空间,在不同CPU中有两种观点,一种是X86系列。它把外部设备与SDRAM的存储空间分开成两个空间。外部设备用专门的汇编指令in,out来访问。这种相对较麻烦,这种叫端口映射。另一种是绝大部分CPU采用统一编址,这个对外访问用C语言的内存操作,如(memcpy,指针)直接访问,当然汇编也类似。ARM采用方式。这称为地址映射
 关于物理地址要注意下面两种情况:
 
  1.在硬件上,对SOC类CPU(比如S3C系列)除了ARM内核本身,虽然各个模块在物理上集成一个IC之上。但是从软件角度这一些模块仍然是外设,还是采用外设访问方式。而且它们物理地址通过内部连线已经完全定死了。这个可以通过CPU的手册查到。
 
  物理上直接外部设备,如SDRAM,网络控制器等。他们通过片选脚来确定自己的地址。接在哪根片选就表示物理地址,在手册上可以查到。
 
 2.当软件启动MMU(内存管理模块后),通过物理地址的访问将通MMU虚拟出来的地址来访问。 这时地址将发现变化。变化的情况有几种。
 
第三种:中断方式,是外设在中断脚产生一个中断波形。CPU会捕获到这个信号。然后调用指定存储地址上的ISR来执行。ARM的中断有7种
 
 
  
阅读(1668) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~