ARM体系结构版本
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ARM体系结构的版本
前面一段时间我搞过一次《MCU编译与运行》的专题,详细介绍从代码编译到代码运行以及中断机制的流程,这里想在编译部分补充一些知识点。
对于嵌入式开发人员,搭建开发环境是比较困难的一步,市面上针对ARM开发的IDE 非常多,有的编译器诸如ADS或者MDK等老编译器并不支持ARM11或者Contex系列的内核,RVDS号称支持所有ARM,但RVDS4.0仅仅支持RealViewICE,这个调试器将近2万元,个人一般无力购买,因此推荐ARM爱好者使用RVDS2.2,虽然界面和ADS一样粗糙,对Win7的支持也不好,但支持JLink等常用编译器。
之所以有的编译器不支持ARM11是因为此编译器内置的指令集达不到ARM11所需指令集的版本。ARM7与ARM9的指令集相同,是V4版本,因此编译好的ARM7代码是可以在ARM9上运行的(注意,此处仅仅说的是ARM7和ARM9内核的指令集通用,也即代码可以执行,不是指任何代码都可有效运行,毕竟不同芯片中的片内外设以及外设有所不同),ARM11使用V6版本指令集,但ARM指令集向下兼容,因此一般代码也是可以执行,但V6中增加的指令就没法执行了,会出现指令错误异常,程序会死机。下面就来看一下ARM指令集版本的升迁:ARM指令集体系结构,从最初开发至今已有了重大改进,而且将会不断完善和发展。为了精确表达每个ARM实现中所使用的指令集,到目前ARM体系结构共定义了6个版本,以版本号v1~v6表示,各版本特点如下。
1. 版本1(v1)
该版本包括:
1.基本数据处理指令(不包括乘法)
2.字节、字以及半字加载/存储指令
3.分支(branch)指令,包括用于子程序调用的分支与链接(branch-and-link)
指令
4.软件中断指令,用于进行操作系统调用
5.26位地址总线
2. 版本2(v2)
与版本1相比,版本2增加了下列指令:
1.乘法和乘加指令(multiply & multiply-accumulate)
2.支持协处理器
3.原子性(atomic)加载/存储指令SWP和SWPB(稍后的版本称v2a)
4.FIQ中的两个以上的分组寄存器。
3. 版本3(v3)
版本3较以前的版本发生了大的变化,具体改进如下:
1.推出32位寻址能力。
2.分开的CPSR(current program status register,当前程序状态寄存器)和SPSR
(saved program status register,备份的程序状态寄存器),当异常发生时,SPSR
用于保存CPSR的当前值,从异常退出时则可由SPSR来恢复CPSR
3.增加了两种异常模式,使操作系统代码可方便地使用数据访问中止异常、指令
预取中止异常和未定义指令异常
4.增加了MRS指令和MSR指令,用于完成对CPSR和SPSR寄存器的读/写;
修改了原来的从异常中返回的指令
4. 版本4(v4)
版本4在版本3的基础上增加了如下内容:
1.有符号、无符号的半字和有符号字节的load和store指令
2.增加了T变种,处理器可工作于Thumb状态,在该状态下,指令集是16位压
缩指令集(Thumb指令集)
3.增加了处理器的特权模式。在该模式下,使用的是用户模式下的寄存器
4.另外,在版本4中还清楚地指明了哪些指令会引起未定义指令异常
5.版本4不再强制要求与以前的26位地址空间兼容。
5. 版本5(v5)
与版本4相比,版本5增加或修改了下列指令:
1.提高了T变种中ARM/Thumb指令混合使用的效率
2.增加了前导零计数(CLZ)指令
3.增加了BKPT(软件断点)指令
4.为支持协处理器设计提供了更多的可选择的指令
5.更加严格地定义了乘法指令对条件标志位的影响。
6. 版本6(v6)
ARM体系版本6是2001年发布的。该版本在降低耗电的同时,还强化了图形处理性能。
通过追加有效多媒体处理的SIMD(single instruction multiple datastream,单指令流,多数据
流)功能,将语音及图像的处理功能提高到了原机型的4倍。
ARM体系版本6首先在2002年春季发布的ARM11处理器中使用。除此之外,v6还支
持多微处理器内核。
表2.1给出了ARM处理器核使用ARM体系结构版本的情况。
表2.1 ARM处理器核使用ARM体系结构版本的情况
ARM处理器核体系结构
ARM1 v1
ARM2 v2
ARM2aS、ARM3 v2a
ARM6、ARM600、ARM610 v3
ARM7、ARM700、ARM710 v3 ARM7TDMI、ARM710T、ARM720T、ARM740T v4T
Strong ARM、ARM8、ARM810 v4
ARM9TDMI、ARM920T、ARM940T v4T
ARM9E-S v5TE ARM10TDMI、ARM1020E v5TE ARM11、ARM1156T2-S、ARM1156T2F-S、ARM1176JZF-S、ARM11JZF-S v6
六 度 空 间
2011/1/3