新闻中心

ARM小记

作者: 时间:2011-02-21 来源:网络 收藏

ARM何物
ARM(AdvancedRISCMachines,进阶精简指令集机器),如果你一直把这个单词读成“A”-“R”-“M”,那么将有一个好消息和一个坏消息要告诉你。好消息是:你这是初次接触到ARM技术相关的文章,而本文内容正是专为你量身打造的,无论你是嵌入式系统的门外汉还是技术的初学者,都可以通过本文轻松地了解ARM技术。请相信我,这并不困难!坏消息是:我很抱歉的告诉你,它的正确读法应该是“arm”,是手臂、胳膊的英文发音。很出丑是不是?但除非你是在大声朗读,不然没人会知道的。你又多了一个知识和一个不可告人的秘密。调整一下心态,我们的故事就从这里开始吧!


1990年,有一家高科技公司在美丽的英国安了家,公司是由一群先知先觉的工程师组成的,他们致力于一种新的CPU体系结构的设计。他们想让这款CPU的性能更为出色,有精简的指令集(可以理解成给CPU发出命令的咒语,当然是越简单越好了)和较低的功耗(适合在需要高速度运算又采用电池充电的设备当中使用)。当时传统的电脑CPU发热量大,需要使用风扇散热,这确实很不方便,至少我不希望我的智能手机看上去像电吹风。所以,他们夜以继日的开发,努力实现这个伟大构想。终于,他们成功了!大家兴高采烈地为这款新的处理器结构取了一个响亮的名字——AdvancedRISCMachines,简称ARM。有趣的是这家公司的名字也是AdvancedRISCMachinesLtd.,简称ARM,不得不说他们当初成立公司时的伟大目标现在实现了,可是这个巧合里面有什么精彩秘密呢?其实早在我出生的前一年——1983年,一家名为Acorn的电脑公司就已经开始着手开发精简指令集的32位微处理器。在我1岁的时候——1985年,该公司已经研发出了ARM1处理器,一年之后又推出了ARM2处理器并批量生产,之后不久又推出了ARM3处理器。这个时候已经大名鼎鼎的苹果公司看到了商机,于是想和Acorn公司合作开发。后来双方研究决定另外开设一家新公司,专门设计、研发精简指令集处理器。于是才有了前面提到的ARM公司的成立。ARM公司成立之后所研发的是ARM6型处理器结构,推出之后就被自己的两个东家(苹果和Acorn公司)应用在其新款的产品上。现在好了,我们的ARM处理器结构诞了。一开始ARM公司的处理器自产、自用,可是随后吸引了一大批世界级的芯片生产厂商(也可能是ARM公司邀请他们过来的,谁知道呢)。这些大厂商们正在为处理器市场的弊端而发愁,所以很快双方建立了合作,即ARM公司自己不生产芯片,而是出售其ARM处理器结构的设计方案,各大芯片生产厂商根据设计方案来生产ARM结构的处理器芯片。这是一桩一本万利的生意,各大厂商每生产一片ARM体系结构的处理器,就要向ARM公司支付一笔知识产权费用。仅是出售一套现有的内核方案就需要至少20万美元,如果还需要特殊修改服务则更是需要上千万美元。ARM公司也在不断的升级、完善自己的产品以占据更多的市场份额。目前的32位微处理器市场上,ARM体系结构的产品已经占到7成以上,而且还在增长。ARM公司身体力行,用实践证明了“知识就是财富”这句话的真实性。当然,这还要是在严格保护知识产权、严厉打击盗版的国家和地区才行。
话分两头,单表买家。ARM处理器结构被各大芯片厂商采用,制作出高性能、低功耗的理器,然后推向市场(通常我们叫它“ARM处理器”,还有叫“ARM的”)。这些厂家里包括三星电子(SAMSUNG)、飞思卡尔(Freescale,摩托罗拉旗下公司)、思睿逻辑(CirrusLogic)、爱特梅尔(ATMEL)、恩智浦(NXP,飞利浦旗下公司)、国际商业机器公司(IBM)、德州仪器(TI)、富士通(FUJITSU)和任天堂等,相信这些公司不是脑门发热的家伙,它们选择ARM一定有更长远的考虑。
处理器行业方兴未艾,每天都会有新的技术和方案来满足我们的需求。在低端市场有51等8位处理器来满足我们制作流水灯、电子钟之类的作品,更可以作为控制类产品的开发。它们结构简单、价格便宜、易学易用,是目前电子爱好者热衷的玩艺儿。在高端市场,由x86结构的32位或64位的处理器来构成我们PC机的核心部分。它们性能极高、速度飞快,一边看电影一边聊QQ都不在话下。
而一些需要电池供电的手持设备上,如智能手机、高级游戏机、数码相机、掌上电脑等消费类电子产品却需要一款中端类型的处理器。ARM不是唯一的选择,但却是最好的选择。苹果的iPod、诺基亚N93、索爱K系列手机、戴尔的PDA电脑、任天堂的掌上游戏机、多普达的智能手机、还有国内的一些山寨版电子产品上无不用到ARM的处理器。同时在世界范围内的嵌入式行业也刮起了一股ARM的流行风,ARM的学习教程、开发实验板、开发工具、仿真软件日新月异、层出不穷。许多80的研发公司也开始向ARM转型,而原本学习80的技术人员和爱好者也开始追赶流行,开始学习ARM技术。我个人认为这种“追赶时尚”多少存在一些非理性和麻木的因素。单片机行业真的要从8位转向32位吗?ARM全面取代8051是未来市场的趋势吗?作为单片机初学者的你应该怎么办,是紧跟时代脉动,还是专心一门技术?以我个人拙见,根本没有选择的必要,下文中再与你细聊。
ARM最好的选择,但不是唯一的选择,与之竞争的对手也非等闲之辈。最有名的当属英特尔公司出品的XScale处理器(芯片是在2003年前后推出的,2006年英特尔退出嵌入式领域,将XScale处理器部门卖给了Marvell公司),XScale系列处理器从早期英特尔生产的PXA255、XA270到现在Marvell公司生产的PXA300、PXA310、PXA320,从性能上看都相当优秀。XScale处理器曾被应用在掌上电脑和智能手机上(如MOTOE680)。有趣的是,XScale处理器也是在ARMV5TE核心的基础上改进而成的。另外还有飞思卡尔公司的ColdFire(冷火)处理器架构、AIM联盟(苹果、IBM、摩托罗拉的联盟)所研发的PowerPC微处理器架构,以及MIPS技术公司的MIPS32和MIPS64处理器架构。另外还有像AVR32等新型处理器不断推出,这些都是32位嵌入式微处理器,这里就不一一介绍了。表1列出了ARM处理器的系列和应用。请注意表中“应用”这一列,也许你会发现一些熟知的电子产品。之前你在使用它们的时候并没有去想它们的处理器是什么,因为这个问题显得相当神秘,现在你知道了,原来那些看似复杂的产品都有一颗ARM“心”。
最近看到一条新闻,基于ARM处理器的上网本(见图2)将在2010年6月份推出。但因为微软公司的Windows操作系统不支持ARM处理器,所以ARM处理器的上网本将会使用Linux等操作系统。这条新闻预示着ARM开始进军上网本市场,以其特有的实力将笔记本电脑变得更轻巧,未来的智能产品将会超出现在的想象。ARM还可以创造多少奇迹?让我们拭目以待吧。



学习指南
许多朋友想学习ARM,可是又不知道该从何入手。想听听我的传奇经历吗?那是大学三年级离毕业之前,我在哈尔滨的电子市场看到了一款LPC2200处理器(飞利浦公司的ARM处理器产品)的开发板(见图3),这是飞利浦旗下的一款ARM处理器,带一个真彩液晶屏,开机时很炫酷,随板又赠送一本ARM基础教程。当时很开心,在还没把8051学出什么名堂的时候,就开始想转战ARM技术。当时这款产品要价2000元,我反复挣扎了很久,最后还是压不住冲动的性子,把它买了下来。当时向债主爸爸许诺,一定在短期之内把ARM学好。我还真是下了狠心,在各位同学纷纷准备毕业设计论文的时候,我正抱着一本ARM基础教程的书反复研究。当时还没有什么好的ARM技术论坛,21IC论坛上水太深,也不敢随便冒泡。就这样,短暂又美好的大学时光过去了,那时我已经自认为对ARM技术有了一定的了解。


书中主要讲述ARM7TDMI的系统结构及原理,枯燥且难理解。如果是现在,我都懒得翻这种书,可当时却是朝圣般地研读。当时感觉ARM是一个结构非常复杂的微处理器,它是32位处理器,是一个超级单片机,要了解ARM的内核结构,精简指令集的使用,还要学习汇编语言,最后就是学习一个叫μC/OS-II的操作系统。总而言之要学的内容比8051复杂,设计制作也就更难。回想起来,对当时学过的内容已没有什么印象了。
转机出现在南下求职中。毕业之后许多同学留在了哈尔滨,而我却选择只身一人南下深圳,因为那里的电子行业发达,如果可以找到一家好公司可以学到很多经验。和我一样想法的人应该很多,可是最后的遭遇也各不相同,我还是比较幸运的,找到一家很不错的嵌入式系统研发公司,老板对我也很好。我在那里从测试员做起,然后做到技术支持工程师,最后是产品经理。一路下来经历了许多有趣的事情,也从一个产品应用的角度重新认识了ARM。我觉得后来在工作经验中学到的ARM更成熟、更鲜活。
实践中的ARM和书中的ARM完全不同。我要学习的内容从内核结构变成了操作系统,ARM的最大特点就是可以安装嵌入式操作系统,包括在ARM7上安装μC/OS-II,在ARM9上安装的WindowsCE、VxWorks和Linux。安装了操作系统的ARM其实是更简单。以应用较广泛的WindowsCE来说,我们要开发的USB接口、以太网之类的功能早就已经模块化了,可以直接加载使用。我们需要做的只是在用EVC编译器制作一个主程序和用户界面。
所以ARM已经将强大的操作系统和底层硬件分隔开来,学习ARM其实是在学习操作系统。这就好像我们今天学习PC机的使用,其实主要是在学习Windows操作系统的使用一样。学习ARM时如果从电脑软件一端入手便会很容易,如果从单片机一端的硬件结构开始,那么学习会困难一些——主要是思维方式不同,学习的难度就有不同。但并不是说不可以这样学习,把ARM处理器当成没有操作系统的超级单片机使用也是很好的选择。市场上许多介绍ARM入门的书多是电子行业的资深人士,他们熟悉8051,当ARM出现时习惯上将ARM处理器当作高级版的单片机来看待,自然也就习惯性地从硬件入手教学。另一方面,现在已经非常成熟的电脑软件开发的专家,多是用VC来编写电脑软件,如果让他们使用EVC(嵌入式VC)来开发嵌入式系统自然不在话下,可惜他们并没有及时地进入这个领域。所以由电脑软件专家编写的嵌入式系统开发教程更是凤毛麟角。嵌入式系统要想快速发展,就需要由懂得的硬件工程师和通晓电脑软件开发的专家通力配合才能实现。目前业内也都意识到了这一点,嵌入式系统的未来值得期待。
作为个人来讲,无论你是单片机爱好者,还是电子技术应用专业的在校大学生,在掌握8051应用之后都应该尽量学习一下ARM方面的知识。我个人推荐你学习三星电子公司出品的S3C2410或S3C2440处理器。它们是ARM9核心的,可以安装WindowsCE和Linux操作系统。市场上的学习板价格也便宜,图书和资料也相当丰富。相信你会爱上图型界面的开发的,那确实是很让一个电子爱好者着迷的事情。现在行业内嵌入式系统的开发人才短缺,学好ARM也会对找工作大有好处。

小结
文章写到这里,也许有的朋友已经开始计划学习ARM了。我的文章煽动性确实很强,可是面对自己的未来计划应该更理性、更冷静的思考。首先ARM对于单纯的电子爱好者而言并没有单片机那么好玩。因为ARM处理器的价格较高,周边的元器件也并不便宜。虽然用ARM可以开发一些智能化更高的产品(例如带有彩色显示屏的设备、以太网接口的设备等),但是做一个硬件制作下来需要几百到几千元,作为电子爱好者的DIY娱乐,确实是太奢侈了。所以多数学习ARM的人都是为了找到福利更好的工作,或者承接一些基于ARM的项目开发。如果你不是出于这两种目的,对于ARM只了解就可以了。还有,ARM软、硬件开发的复杂程度要比8位单片机高,如果8位单片机还没有熟悉开发的时候就转到ARM的学习,其实是不理智的行为。玩转ARM处理器除了过硬的单片机功底,还需要软件开发的能力,ARM开发中有80%的工作都是在软件层面上,如果你学过电脑软件的开发(如VB、VC开发),也接触过操作系统(如Windows、Linux),再学习ARM就会事半功倍了。虽然操作系统会让开发变得更方便快速,可是花时间研究操作系统也是必须的。最后结束一句吧:ARM很流行,也要量力而行。



评论


相关推荐

技术专区

关闭