严格意义上这个不是原创是从网上找的资源,理解后写成的,所有资料都注明了来源
armeabi是针对所有的arm cpu,只要支持arm的指令集就可以,
v7a,v8a是针对arm后来出的指令集版本制定的cpu如符合arm7指令集的cpu
armeabi-v7a是针对有浮点运算或高级扩展功能的arm v7 cpu。
armeabi-v7a(32位ARM设备),
arm64-v8a(64位ARM设备)
EABI
百度百科:
应用程序二进制接口(application binary interface,ABI) 描述了应用程序和操作系统之间,一个应用和它的库之间,或者应用的组成部分之间的低层接口。ABI不同于应用程序接口(API),API定义了源代码和库之间的接口,因此同样的代码可以在支持这个API的任何系统中编译,然而ABI允许编译好的目标代码在使用兼容ABI的系统中无需改动就能运行。
百度百科:
EABI,全称是Embedded application binary interface, 即嵌入式应用二进制接口,是描述“可连接目标代码、库目标代码、可执行文件影像”如何连接、执行和调试,以及目标代码生成过程,和c, c++语言接口的规范,是编译连接工具的基础规范,也是研究它们工作原理的基础,可惜arm的EABI迄今为止没有完全订好。作为EABI的组成部分有过程调用规范,可执行文件格式规范,c/c++ ABI规范和调试格式规范。
EABI ,说的是这样的一种新的系统调用方式
mov r7, #num
swi 0x0
原来的系统调用方式是这样,
swi (#num | 0x900000) (0x900000是个magic值)
简单的说,ABI规范了应用程序对寄存器的使用方法,Call procedure,以及如何进入trap。符合某一平台ABI规范的应用程序就可以在这一平台上运行。这一规范是针对binary,而不是source的。所以同样的高级语言代码,使用不同的toolchain,可以得到符合不同ABI规范的binary。
arm abi,非正式称呼为eabi,是一种规范,符合这种规范的编译器有arm-eabi-gcc。
ARM是一种指令集,X86也是一种指令集
ARM是一种指令集,知识产权属于(ARM公司),X86也是一种指令集,X86指令集的知识产权属于Intel公司,ARM是精简指令集(RISC),X86使用的是复杂指令集(CISC)。
ARM推出指令集的同时,也推出了指令集的实现形式叫Cortex-A等系统架构,
当然如果有实力可以不使用指导的系统架构来做CPU(简单地说是CPU,实际是上核心),可以自己做架构(如高通,三星),
Intel的使用X86的指令集,自己做架构然后做出CPU来叫(奔腾,酷睿,I3),使用ARM指令集同进也使用ARM公司的架构做出的CPU有海思,使用ARM指令集不使用ARM公司架构的有高通系列CPU,苹果的CPU
(可以不看,不要搞混了
ARM Cortex-A8处理器是首款基于ARMv7体系结构的产品
Cortex-A8 高性能处理器目前已经非常成熟,从高端特色手机到上网本、DTV、打印机和汽车信息娱乐,Cortex-A8处理器都提供了可靠的高性能解决方案。
应用案例:TI OMAP3系列、苹果A4处理器(iPhone 4)、三星S5PC110(三星I9000)、瑞芯微RK2918、联发科MT6575等。另外,高通的MSM8255、MSM7230等也可看做是A8的衍生版本。
ARM Cortex-A7处理器隶属于Cortex-A系列,基于ARMv7-A架构,它的特点是在保证性能的基础上提供了出色的低功耗表现。
ARM Cortex-A5处理器隶属于Cortex-A系列,基于ARMv7-A架构,它是能效最高、成本最低的处理器。
)
看到移动设备对64位计算的需求后,ARM于2011年发布了ARMv8 64位架构,这是为了下一代ARM指令集架构工作若干年后的结晶。为了基于原有的原则和指令集,开发一个简明的64位架构,ARMv8使用了两种执行模式,AArch32和AArch64。
arm8,还有arm10,昙花一现,过度产品,高不成低不就,很快就被历史淹没了。
arm8和arm v4一起诞生,成为了arm7 tdmi和arm9 tdmi的垫脚石,主要技术数据都被arm7 ej给继承了。
arm10e碰上xsale大败,转而开发arm11。
arm8开发板偶尔还能遇上,完整性又比不上7ej-s,自然比较冷门。有个产品Acorn Risc PC prototype CPU card就是arm8。
在2011年11月,ARM公司发布了新一代处理器64位架构ARMv8的部分技术细节(也就是我们常说的Cortex-A57A53),代表着未来移动处理器迈入64位行列。我们得明确一点,ARM公司自己本身并没有64位芯片设计技术,他是通过了收购MIPS64处理器架构的部分技术使用权,再结合ARM的一些特性设计出来的。也就是说:MIPS、ARM、X86三大架构中,唯一没有64位技术的ARM,通过收购MIPS的形式得到了64位。
所谓的ARMv8架构,就是在MIPS64架构上增加了ARMv7架构中已经拥有的的TrustZone技术、虚拟化技术及NEON advanced SIMD技术等特性,研发成的。
作者:匿名用户
链接:https://www.zhihu.com/question/22705732/answer/22336022
来源:知乎
说到ARM,首先有必要了解一下ARM、x86(x64)、Intel处理器、骁龙处理器的区别了。
ARM与X86都是处理器的架构,ARM架构属于RISC指令集,X86构架属于典型的CISC指令集。
Intel处理器是基于x86(x64)指令集的处理器,主要用于PC端,除了英特尔,其他公司也有制造x86指令集的处理器,AMD就是Intel以外最成功的制造商。骁龙是基于ARM指令集的处理器,主要用于智能手机端,除了骁龙以外,有大量的公司制作ARM指令集的处理器,例如:三星、苹果等。
x86表示32位处理器,x64表示64位处理器。
关于ARM与x86的详细区别,可以参考下面的链接:
http://mobile.hiapk.com/knowledge/common/130718/1438966.html
通过上面的比较,我们知道了ARM是属于RISC指令集的处理器架构,
参考文章
http://blog.csdn.net/u011983531/article/details/51514033
指令集
CPU执行计算任务时都需要遵从一定的规范,程序在被执行前都需要先翻译为CPU可以理解的语言。这种规范或语言就是指令集(ISA,Instruction Set Architecture)。程序被按照某种指令集的规范翻译为CPU可识别的底层代码的过程叫做编译(compile)。x86、ARM v8、MIPS都是指令集的代号。指令集可以被扩展,如x86增加64位支持就有了x86-64。厂商开发兼容某种指令集的CPU需要指令集专利持有者授权,典型例子如Intel授权AMD,使后者可以开发兼容x86指令集的CPU。
架构
CPU的基本组成单元即为核心(core)。多个核心可以同时执行多件计算任务,前提是这些任务没有先后顺序。
核心的实现方式被称为微架构(microarchitecture)。微架构的设计影响核心可以达到的最高频率、核心在一定频率下能执行的运算量、一定工艺水平下核心的能耗水平等等。此外,不同微架构执行各类程序的偏向也不同,例如90年代末期Intel的P6微架构就在浮点类程序上表现优异,但在整数类应用中不如同频下的对手。
ARM公司可以指导对于指令集的实现,但是用不用就是公司说了算了
ARM公司将自己研发的指令集叫做ARM指令集,同时它还研发具体的微架构如Cortex系列并对外授权。但是,一款CPU使用了ARM指令集不等于它就使用了ARM研发的微架构。Intel、高通、苹果、Nvidia等厂商都自行开发了兼容ARM指令集的微架构,同时还有许多厂商使用ARM开发的微架构来制造CPU。
作者:王强
链接:https://zhuanlan.zhihu.com/p/19893066
来源:知乎