打印

开贴学习ARM

[复制链接]
13124|68
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sz_kd|  楼主 | 2008-3-16 22:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
什么是ARM


ARM 即Advanced RISC Machines的缩写,既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。


ARM公司历史

1985年4月26日,第一个ARM原型在英国剑桥的Acorn计算机有限公司诞生,由美国加州SanJoseVLSI技术公司制造。

20世纪80年代后期,ARM很快开发成Acorn的台式机产品,形成英国的计算机教育基础。

1990年成立了Advanced RISC Machines Limited(后来简称为ARM Limited,ARM公司)。20世纪90年代,ARM 32位嵌入式RISC(Reduced lnstruction Set Computer)处理器扩展到世界范围,占据了低功耗、低成本和高性能的嵌入式系统应用领域的领先地位。ARM公司既不生产芯片也不销售芯片,它只出售芯片技术授权。

1991 年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用 ARM技术知识产权( IP )核的微处理器,即我们通常所说的 ARM 微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于 ARM 技术的微处理器应用约占据了 32 位 RISC 微处理器 75 %以上的市场份额, ARM 技术正在逐步渗入到我们生活的各个方面。

ARM 公司是专门从事基于 RISC 技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的 ARM 微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的 ARM 微处理器芯片进入市场。目前,全世界有几十家大的半导体公司(包括Intel、IBM、LG半导体、NEC、SONY、菲利浦等)都使用 ARM 公司的授权,软件系统的合伙人则包括微软、升阳和MRI等一系列知名公司。因此既使得 ARM 技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。

ARM处理器的三大特点是:耗电少功能强、16位/32位双指令集和众多合作伙伴。 

ARM商品模式的强大之处在于它在世界范围有超过100个的合作伙伴(Partners)。ARM 是设计公司,本身不生产芯片。采用转让许可证制度,由合作伙伴生产芯片。 

ARM微处理器的特点

采用RISC架构的ARM微处理器一般具有如下特点:

1、体积小、低功耗、低成本、高性能;

2、支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;

3、大量使用寄存器,指令执行速度更快;

4、大多数数据操作都在寄存器中完成;

5、寻址方式灵活简单,执行效率高;

6、指令长度固定; 

当前ARM体系结构的扩充包括: 

·Thumb 16位指令集,为了改善代码密度; 

·DSP DSP应用的算术运算指令集; 

·Jazeller 允许直接执行Java字节码。 

ARM处理器本身是32位设计,但也配备16位指令集。一般来讲存储器比等价32位代码节省达35%,然而保留了32位系统的所有优势。ARM的Jazelle技术使Java加速得到比基于软件的Java虚拟机(JVM)高得多的性能,和同等的非Java加速核相比功耗降低80%。CPU功能上增加DSP指令集提供增强的16位和32位算术运算能力,提高了性能和灵活性。ARM还提供两个前沿特性来辅助带深嵌入处理器的高集成SoC器件的调试,它们是嵌入式ICE-RT逻辑和嵌入式跟踪宏核(ETMS)系列。 

ARM微处理器的应用领域

到目前为止,ARM微处理器及技术的应用几乎已经深入到各个领域:

1、工业控制领域:作为32的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。

2、无线通讯领域:目前已有超过85%的无线通讯设备采用了ARM技术, ARM以其高性能和低成本,在该领域的地位日益巩固。

3、网络应用:随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。此外,ARM在语音及视频处理上行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。

4、消费类电子产品:ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。

5、成像和安全产品:现在流行的数码相机和打印机中绝大部分采用ARM技术。手机中的32位SIM智能卡也采用了ARM技术。

除此以外,ARM微处理器及技术还应用到许多不同的领域,并会在将来取得更加广泛的应用。

ARM微处理器系列

ARM微处理器目前包括下面几个系列,以及其它厂商基于ARM体系结构的处理器,除了具有ARM体系结构的共同特点以外,每一个系列的ARM微处理器都有各自的特点和应用领域。

- ARM7系列

- ARM9系列

- ARM9E系列

- ARM10E系列

- SecurCore系列

- Intel的Xscale

- Intel的StrongARM

  其中,ARM7、ARM9、ARM9E和ARM10为4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。SecurCore系列专门为安全要求较高的应用而设计。以下我们来详细了解一下各种处理器的特点及应用领域。

1、ARM7微处理器系列

ARM7系列微处理器为低功耗的32位RISC处理器,最适合用于对价位和功耗要求较高的消费类应用。ARM7微处理器系列具有如下特点:

-具有嵌入式ICE-RT逻辑,调试开发方便。

-极低的功耗,适合对功耗要求较高的应用,如便携式产品。

-能够提供0.9MIPS/MHz的三级流水线结构。

-代码密度高并兼容16位的Thumb指令集。

-对操作系统的支持广泛,包括WindowsCE、Linux、PalmOS等。

-指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便于用户的产品升级换代。

-主频最高可达130MIPS,高速的运算处理能力能胜任绝大多数的复杂应用。

ARM7系列微处理器的主要应用领域为:工业控制、Internet设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用。

ARM7系列微处理器包括如下几种类型的核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。其中,ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。TDMI的基本含义为:

T:支持16为压缩指令集Thumb;

D:支持片上Debug;

M:内嵌硬件乘法器(Multiplier)

I:嵌入式ICE,支持片上断点和调试点;

2、ARM9微处理器系列

ARM9系列微处理器在高性能和低功耗特性方面提供最佳的性能。具有以下特点:

-5级整数流水线,指令执行效率更高。

-提供1.1MIPS/MHz的哈佛结构。

-支持32位ARM指令集和16位Thumb指令集。

-支持32位的高速AMBA总线接口。

-全性能的MMU,支持WindowsCE、Linux、PalmOS等多种主流嵌入式操作系统。

-MPU支持实时操作系统。

-支持数据Cache和指令Cache,具有更高的指令和数据处理能力。

ARM9系列微处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像机等。

ARM9系列微处理器包含ARM920T、ARM922T和ARM940T三种类型,以适用于不同的应用场合。

3、ARM9E微处理器系列

ARM9E系列微处理器为可综合处理器,使用单一的处理器内核提供了微控制器、DSP、Java应用系统的解决方案,极大的减少了芯片的面积和系统的复杂程度。ARM9E系列微处理器提供了增强的DSP处理能力,很适合于那些需要同时使用DSP和微控制器的应用场合。

ARM9E系列微处理器的主要特点如下:

-支持DSP指令集,适合于需要高速数字信号处理的场合。

-5级整数流水线,指令执行效率更高。

-支持32位ARM指令集和16位Thumb指令集。

-支持32位的高速AMBA总线接口。

-支持VFP9浮点处理协处理器。

-全性能的MMU,支持WindowsCE、Linux、PalmOS等多种主流嵌入式操作系统。

-MPU支持实时操作系统。

-支持数据Cache和指令Cache,具有更高的指令和数据处理能力。

-主频最高可达300MIPS。

ARM9系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。

ARM9E系列微处理器包含ARM926EJ-S、ARM946E-S和ARM966E-S三种类型,以适用于不同的应用场合。

4、ARM10E微处理器系列

ARM10E系列微处理器具有高性能、低功耗的特点,由于采用了新的体系结构,与同等的ARM9器件相比较,在同样的时钟频率下,性能提高了近50%,同时,ARM10E系列微处理器采用了两种先进的节能方式,使其功耗极低。

ARM10E系列微处理器的主要特点如下:

-支持DSP指令集,适合于需要高速数字信号处理的场合。

-6级整数流水线,指令执行效率更高。

-支持32位ARM指令集和16位Thumb指令集。

-支持32位的高速AMBA总线接口。

-支持VFP10浮点处理协处理器。

-全性能的MMU,支持WindowsCE、Linux、PalmOS等多种主流嵌入式操作系统。

-支持数据Cache和指令Cache,具有更高的指令和数据处理能力

-主频最高可达400MIPS。

-内嵌并行读/写操作部件。

ARM10E系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、通信和信息系统等领域。

ARM10E系列微处理器包含ARM1020E、ARM1022E和ARM1026EJ-S三种类型,以适用于不同的应用场合。

5、SecurCore微处理器系列

SecurCore系列微处理器专为安全需要而设计,提供了完善的32位RISC技术的安全解决方案,因此,SecurCore系列微处理器除了具有ARM体系结构的低功耗、高性能的特点外,还具有其独特的优势,即提供了对安全解决方案的支持。

SecurCore系列微处理器除了具有ARM体系结构各种主要特点外,还在系统安全方面具有如下的特点:

-带有灵活的保护单元,以确保操作系统和应用数据的安全。

-采用软内核技术,防止外部对其进行扫描探测。

-可集成用户自己的安全特性和其他协处理器。

SecurCore系列微处理器主要应用于一些对安全性要求较高的应用产品及应用系统,如电子商务、电子政务、电子银行业务、网络和认证系统等领域。

SecurCore系列微处理器包含SecurCoreSC100、SecurCoreSC110、SecurCoreSC200和SecurCoreSC210四种类型,以适用于不同的应用场合。

6、StrongARM微处理器系列

ARM推出嵌入式核心之后,DEC公司获得许可并在此基础上开发出增强版的StrongARM 处理器,后来DEC公司被康柏所合并,而StrongARM核心则被Intel买走,属于该体系的StrongARM SA-1110处理器被长时间用于Pocket PC中(PDA中的一种,采用Windows CE操作系统)。StrongARM SA-1110处理器融合了Intel公司的设计和处理技术以及ARM体系结构的电源效率,采用在软件上兼容ARMv4体系结构、同时采用具有Intel技术优点的体系结构。这款处理器也是微软的Pocket PC战略的奠基石,而在此之前,市场上的WinCE设备正被不同的CPU造成的软件兼容性问题困扰着。

IntelStrongARM处理器是便携式通讯产品和消费类电子产品的理想选择,已成功应用于多家公司的掌上电脑系列产品。代表产品:康柏iPAQ 3630,NEC MP300等一些基于PocketPC/WinCE3.0的机型。另外许多中国台湾的厂商也推出了很多基于该系列处理器的产品。

7、Xscale处理器

在PDA领域,Intel的StrongARM和XScale处理器占据举足轻重的地位,这两者在架构上都属于ARM体系,相当于ARM的一套实际应用方案。StrongARM-SA1100的集成度较低,许多功能都必须借助第三方芯片实现,而且存在一些老掉牙的过时接口和派不上用场的功能,Intel在接手之后对其进行改进,并在2002年2月份正式推出基于StrongARM的下一代架构—XScale。

Xscale处理器是基于ARMv5TE体系结构的解决方案,是一款全性能、高性价比、低功耗的处理器。它支持16位的Thumb指令和DSP指令集,已使用在数字移动电话、个人数字助理和网络产品等场合。Xscale处理器也是Intel目前主要推广的一款ARM微处理器。

-------------------------------------------------------------------------------------------------------------------------------------

相关帖子

沙发
平常人| | 2008-3-16 22:10 | 只看该作者

讲史,读史,追史

谢谢!

使用特权

评论回复
板凳
sz_kd|  楼主 | 2008-3-16 22:30 | 只看该作者

不用客气,转别人的,刚买了个开发板.准备学学

使用特权

评论回复
地板
sz_kd|  楼主 | 2008-3-16 22:36 | 只看该作者

我买的是广嵌的S3C2410开发板,先从网上找了S3C2410的介绍

(1)、S3C2410芯片集成了大量的功能单元,包括:

◆ 内部1.8V,存储器3.3V,外部I/O3.3V,16KB数据Cache,16KB指令Cache,MMU。

◆ 内置外部存储器控制器(SDRAM控制和芯片选择逻辑)。

◆ LCD控制器,一个LCD专业DMA。

◆ 4个带外部请求线的DMA。

◆ 3个通用异步串行端口(IrDA1.0,16-Byte Tx FIFO and 16-Byte Rx FIFO),2通道SPI

◆ 一个多主I2C总线,一个I2S总线控制器。

◆ SD主接口版本1.0和多媒体卡协议版本2.11兼容。

◆ 两个USB HOST,一个USB DEVICE(VER1.1)。

◆ 5个16位定时器,4个PWM定时器和一个内部定时器。

◆ 看门狗定时器。

◆ 117个通用I/O。

◆ 55个中断源。

◆ 24个外部中断。

◆ 电源控制模式:标准、慢速、休眠、掉电。

◆ 8通道10位ADC和触摸屏接口。

◆ 带日历功能的实时时钟。

◆ 芯片内置PLL。

◆ 设计用于手持设备和通用嵌入式系统。

◆ 16/32位RISC体系结构,使用ARM920T CPU核的强大指令集。

◆ 带MMU的先进的体系结构支持WinCE、EPOC32、Linux。

◆ 指令缓存(Cache)、数据缓存、写缓存和物理地址TAG RAM,减小了对主存储器带宽和性能的影响。

◆ ARM920T CPU核支持ARM调试的体系结构。

◆ 内部先进的位控制器总线(AMBA)(AMBA2.0,AHB/APB)。

(2)系统管理

◆ 小端/大端支持

◆ 地址空间:每个BANK128MB(全部为1GB)。

◆ 每个BANK可编程为8/16/32位数据总线。

◆ BANK0到BANK6为固定起始地址。

◆ BANK7可编程BANK起始地址和大小。

◆ 一共8个存储器BANK。

◆ 前6个存储器BANK用于ROM、SRAM和其它。

◆ 两个存储器BANK用于ROM、SRAM、和SDRAM(同步随机存储器)。

◆ 支持等待信号用以扩展总线周期。

◆ 支持SDRAM掉电模式下的自刷新。

◆ 支持不同类型的ROM用于启动(NOR/NAND Flash、EEPROM和其它)。

(3)芯片封装

272-FBGA封装

使用特权

评论回复
5
远上寒山| | 2008-3-16 22:43 | 只看该作者

好贴

楼主加油……

使用特权

评论回复
6
sz_kd|  楼主 | 2008-3-16 22:43 | 只看该作者

272脚的FBGA封装,

看起来很恐怖啊,第1次接触这么多脚玩意

使用特权

评论回复
7
sz_kd|  楼主 | 2008-3-16 22:44 | 只看该作者

回5楼,我是一点不知道,刚开始学,还得高手帮忙啊

使用特权

评论回复
8
林粼粼| | 2008-3-16 22:46 | 只看该作者

共勉

我也在学ARM系列,刚开始,还没入门,不过我弄了块44b0的开发板
ARM9的我消费不起

使用特权

评论回复
9
sz_kd|  楼主 | 2008-3-16 22:53 | 只看该作者

还没有说说ARM与单片机的区别

找了点,欢迎高手补充.
ARM与单片机的区别


1、软件方面
  这应该是最大的区别了。引入了操作系统。为什么引入操作系统?有什么好处嘛?
 1)方便。主要体现在后期的开发,即在操作系统上直接开发应用程序。不像单片机一样一切都要重新写。前期的操作系统移植工作,还是要专业人士来做。
 2)安全。这是LINUX的一个特点。LINUX的内核与用户空间的内存管理分开,不会因为用户的单个程序错误而引起系统死掉。这在单片机的软件开发中没见到过。
 3)高效。引入进程的管理调度系统,使系统运行更加高效。在传统的单片机开发中大多是基于中断的前后台技术,对多任务的管理有局限性。
 4)ARM一般要自己写启动代码,MCU不用,编译软件帮你写好.

2、硬件方面
 (1)ARM就是单片机,不过单片机不都是ARM,ARM是一种处理器内核,MCU是微控制器,微处理器的功能强于微控制器,只不过arm是32位的单片机罢了.
 (2)  MCU的速度和数据宽度和外设要比ARM少很多,就象一个是386一个是奔腾,性能和功能差别大了而已,本质上没什么区别.

 (3) 现在的8位单片机技术硬件发展的也非常得快,也出现了许多功能非常强大的单片机。但是与32ARM相比还是有些差距吧。
  ARM芯片大多把SDRAM,LCD等控制器集成到片子当中。在8位机,大多要进行外扩。

引入嵌入式操作系统之后,可以实现许多单片机系统不能完成的功能。比如:嵌入式web服务器,java虚拟机等。也就是说,有很多免费的资源可以利用,上述两种服务就是例子。如果在单片机上开发这些功能可以想象其中的难度。
 

使用特权

评论回复
10
sz_kd|  楼主 | 2008-3-16 23:10 | 只看该作者

再找找ARM7与ARM9的区别

1.ARM7内核是0.9MIPS/MHz的三级流水线和冯·诺伊曼结构;
 ARM9内核是5级流水线,提供1.1MIPS/MHz的哈佛结构。

2.arm7没有mmu,arm720T是MMU的;
 arm9是有mmu的,arm940T只有Memory protection unit.不是一个完整的MMU。

3.ARM7TDMI提供了非常好的性能-功耗比。它包含了THUMB指令集快速乘法指 令和ICE调试技术的内核。
 ARM9的时钟频率比ARM7更高,采用哈佛结构区分了数据总线和指令总线。
 资料统计ARM9的指令执行效率比ARM7高27%左右.


相关链接:http://www.digsight.cn/html/6/6-144.html

使用特权

评论回复
11
sz_kd|  楼主 | 2008-3-16 23:21 | 只看该作者

今天先看到这

明天再看些寄承器的工作模式和汇编指令再发上来
争取早日跑起第1个ARM程序

使用特权

评论回复
12
gxarm| | 2008-3-17 00:08 | 只看该作者

不错,支持

使用特权

评论回复
13
小李志| | 2008-3-17 08:01 | 只看该作者

哈哈

arm7好焊,arm9不好焊

使用特权

评论回复
14
zzfyj0809| | 2008-3-17 14:35 | 只看该作者

自学ARM技术

看来ARM技术很深奥啊,也对这个有很强的兴趣,可不知道怎么入门,哪位高手指点一下,我在大学时学过单片机汇编和C/C++,不过也忘记得差不多了

使用特权

评论回复
15
sz_kd|  楼主 | 2008-3-19 15:11 | 只看该作者

终于跑起来了第1个ARM程序,发帖留念下

搞了1天多,终于知道怎么使用ADS1.2软件及用JTAG口进行实验仿真.
第1个流水灯程序终于跑起来了,但是目前还不知道它的启动过程,就是在ADS1.2下的启动设置让我折腾了好久
晚上有空我总结下

使用特权

评论回复
16
fengyeu| | 2008-3-19 16:25 | 只看该作者

过几天ARM仿真器回来,也可以学了.

过几天ARM仿真器回来,也可以学了.

使用特权

评论回复
17
阿南| | 2008-3-19 17:40 | 只看该作者

欢迎,欢迎

使用特权

评论回复
18
sz_kd|  楼主 | 2008-3-19 19:47 | 只看该作者

先初步了解了下s3c2410芯片和测试了自己开发板

就想试试能不能自己建个工程来跑跑ARM流水灯程序看看(先实际接触增加信心),程序是有现成的,买的开发板光盘里有实验程序,但是没有仿真软件,搜了下发现用ADS1.2软件介绍很多,所以决定下它来玩.

使用特权

评论回复
19
sz_kd|  楼主 | 2008-3-19 20:18 | 只看该作者

在看看怎么用ADS1.2建工程和仿真(欢迎高手补充)

Ads 1.2建工程和编译步骤

1.打开CodeWarrior
File->New->ARM Execute Image->输入Project Name,按确定来新建一个项目(ARM2)
可以看到有7 种工程类型可以选择:
ARM Excuteable Image:用于由ARM 指令的代码生成一个ELF 格式的可以执行映象文件.

ARM Object Library:用于由ARM 指令的代码生成一个armar 格式的目标文件库。

Empty Project:用于创建一个不包含任何库或者源文件的工程。

Makefile Importer Wizard:用于将Visual C 的nmake 或者GNU make 文件转入到CodeWarrior IDE 工程文件。

Thumb ARM Excutable Image:用于由ARM 指令和Thumb 指令的混和代码生成一个可执行的ELF 格式的映象文件。

Thumb Excutable image:用于由Thumb 指令创建一个可执行的ELF 格式的映象文件。

Thumb Object Library:用于由Thumb 指令的代码生成一个armar 格式的目标文件库。
  这里我们一般选择ARM Excuteable Image,生成1个可以执行映象文件.
 
File->New->File->Text File->输入File Name,按确定来新建一个文件(ARM2.s)
Project->Add arm2.s to project->确定

输入代码到Arm2.s文件中,就是你的跑马灯程序.
然后再加入一些包含文件和启动文件.


2.然后开始配置Complier环境:
2.1 Edit->DebugRel Settings->
  Target->Target Settings->Post-linker选ARM from ELF
  Language Settings->
    ARM Assembler->Target->Arichtecture or Processor选(ARM920T)
    ARM C Complier->Target->Arichtecture or Processor选(ARM920T) 因为是S3C2410采用的是arm920t核,arm7的核不一样,得根据你的核选 对应选项.
2.2  Linker->
    RO Base->0x30000000(根据你的实际硬件SDRAM的地址进行填写的)
    RW Base->0x32000000
    Options->Image entry point->0x30000000
    Layout->Place at begining of Image->Object/Symbol->arm2.o
        Section->LEDTESTASM(对应代码中的段名,进启动时候的入口地址名称,就是程序复位后的起始地址,这个非常重要,设置错了程序跑起来动作不对)
    ARM from ELF->Output file name->arm2.bin,生成的该二进制文件可以烧录在目标板的flash中.

Project->Compile
接着再Project->Make
然后你就可以在这个项目的目录下找到arm2.bin的文件了
用DNW 上传Arm2.bin文件,在问你Do you want to run?时选y
你就可以看到D2,D1,D3,D4的led灯不停的闪烁了,这是直接用USB通过DNW软件下载程序到flash中运行.

2.3 若用JTAG口仿真则需要将JTAG小板上的并口接在PC机并口,再将JTAG板上JTAG接口接在ARM开发板的JTAG调试口上,然后上电,运行H-JTAG软件,然后点operations下的Detect target来检测arm核.
检测到出现该arm是什么核,没有检测到会提示你检测不到arm核,这个时候应该找找自己板子上线有没有连好,还有开发板上电没有.
然后就可以在ads1.2调试软件下的AXD下单步调试.

我讲的不是很清楚,随便自己回顾下,具体要看详细的去下ADS1.2相干的教材看看


使用特权

评论回复
20
远上寒山| | 2008-3-19 23:44 | 只看该作者

楼主不错,期待更好消息……

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

64

主题

4194

帖子

1

粉丝