说来惭愧,一年前听说ARM这个词,是在大四上学期,但也只是听说,因为我们学校课程设置落后,学电子的竟然没有ARM这门课,大多是在网上了解的,但也只是很浅很浅的了解,那时候忙着研究单片机去了。网上看到ARM培训很热,无奈囊中羞涩....只是向别的专业同学借了一本ARM书籍,过年回家看了看,却只是很浅的理论上的,而且不用就忘记了。今年上半年年初面试之后的感觉是ARM,我还没入门。 今年毕业找工作也是瞎折腾了一番,ARM也没怎么去学,单片机提升也不高,但过去的都已过去,如果认识到过去的错误与教训,那么就从现在开始,永远也不晚,关键是**,兴趣和激情吧。下面说说ARM的概述,暂时也只了解这么点,哈哈。
==》ARM历史
·第一片ARM核是由Acorn Computers Limited公司在1983~1985年开发的,这是一个总部设在剑桥的小型英国公司。
·1990年11月,ARM成立于英国,原名Advanced RISC Machine有限公司,是由苹果电脑,Acorn电脑集团和VLSI Technology的合资企业。
·1998年4月ARM在伦敦证券交易所和纳斯达克交易所上市。
·2002年7月,ARM中国-安谋咨询上海有限公司在上海成立。
==》ARM公司只出售ARM核心技术授权,不生产芯片。采用ARM授权的主要半导体公司有三星,英特尔,飞利浦,摩托罗拉,艾特梅尔等。
==》ARM处理器版本
·V4:目前ARM支持的最老版本的体系结构,它只支持32位的ARM指令,这一体系包括strongARM,ARM8等。
·V4T:增加了Thumb指令支持,具有32位寻址空间和7种工作模式,有当前程序状态寄存器CPSR和程序状态备份寄存器SPSR,具有专门
访问程序状态寄存器的指令MSR,MRS,增加了半字加载/存储指令和读取带符号字节的加载指令,内核集成了嵌入式跟踪宏单元,支持
实时仿真,该版本的典型内核有ARM7TDMI(95年发布),ARM720T,ARM9TDMI,ARM940T
·V5:在原V4基础上提高了ARM/Thumb的切换效率,增加了前导零计数指令CLZ,增加了软件调试指令BKPT,支持乘法指令设置标志位,
·v5TE:1999年,ARM发布了带有DSP指令的ARMv5TE架构。
·v5TEJ:2000年,发布的该架构引入了具有JAVA处理能力的Jazelle技术
·V6:正式发布于2001年,该架构不但支持单指令多数据处理指令(SIMD),还引入了Thumb-2和TrustZone技术。支持存储器大端小端格式
混合的数据操作,增加了实时处理能力,改进了异常中断和中断处理,SIMD对音频和视频信息处理进行优化。典型内核为ARM11(2002年发布)
·V7:以cortex命名,分成三个方向,支持虚拟内存管理的A系列,具有更高实时性的R系列,和针对微控制领域和低端应用的M系列。
典型代表是A8,R4,M3
==》根据适用的领域,ARM处理器可分为三类:
·嵌入式实时系统应用处理器
·应用系统平台处理器
·安全应用系列处理器,SecurCore系列是专为安全设备而设计的
==》当前主流的ARM处理器系列主要有ARM7,ARM9,ARM10,ARM11和ARM cortex系列。
·ARM7系列---基于冯·诺依曼结构,适用于对价位和功耗要求较高的消费类应用,言下之意就是相对其他ARM系列来说比较低端
三级流水线结构,主要应用领域为工业控制,internet设备,网络和modem设备,移动电话等
·ARM9系列---基于哈佛结构,五级流水线结构,具有独立的数据cache和指令cache,含有全性能的MMU(存储器管理单元)
主要用于无线设备,仪器仪表,安全系统,机顶盒,高端打印机,数字照相机和数字摄像机等。
·ARM10系列---六级流水线,支持VFP10浮点处理协处理器。
·ARM11系列--主要有ARM1136J,ARM1156T2和ARM1176JZ三个内核型号,分别针对不同应用领域,八级流水线,支持高速AXI总线接口。
ARM11处理器是为了有效地提供高性能处理能力而设计的,其主要应用于多媒体播放设备,智能手机或终端,网络设备,通信基站
以及手持设备等。
·ARM cortex处理器系列具有先进的三级流水线,基于哈佛结构,分为cortex-A,cortex-R,cortex-M三个方向,其中M系列只支持
Thumb-2指令集,它是Thumb指令集的扩展集 ==》ARM内核版本命名规则---命名格式为:ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{S}大括号内的字母是可选的,它们含义如下
·x--系列号,如ARM7中的7,ARM9中的9
·y--内部存储管理/保护单元,如ARM720T中的2,ARM940T中的4
·z--内含有高速缓存cache
·T--Z支持16位的Thumb指令集
·D--支持JTAG片上调试
·M--支持拥有长乘法操作(64位结果)的ARM指令,包含快速乘法器
·I--带有嵌入式追踪宏单元ETM,用于设置断点和观察点的调试硬件
·E--增强型DSP指令(基于TDMI)
·J--含有JAVA加速器Jazelle
·F--向量浮点单元
·S--可综合版本,意味着处理器内核是以源代码形式提供的。
注意:ARM7TMDI之后的所有ARM内核,即使ARM标志后没有包含这些字符,但也包含了TMDI特性。可以说是ARM的基本特性了吧。
JTAG是ARM用来发送和接受处理器内核与测试器之间调试信息的一系列协议 |