在GCC编译中,常常要用到 -march, -mcpu等。他们分别表达什么涵义呢?ARM(Advanced RISC Machines)是微处理器行业的一家知名企业。设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。1985年,第一个ARM原型在英国剑桥诞生。ARM公司的特点是只设计芯片,而不生产。ARM将其技术授权给世界上许多著名的半导体、软件和OEM厂商,每个厂商得到的都是一套独一无二的ARM相关技术及服务。利用这种合伙关系,ARM很快成为许多全球性RISC标准的缔造者。
ARM公司定义了6种主要的指令集体系结构版本。V1-V6(所以上面提到的ARMv6是指指令集版本号)。即:ARM architecture
ARMv1:
该版本的原型机是ARM1,没有用于商业产品。
ARMv2:
对V1版进行了扩展,包含了对32位结果的乘法指令和协处理器指令的支持。
ARMv3:
ARM公司第一个微处理器ARM6核心是版本3的,它作为IP核、独立的处理器、具有片上高速缓存、MMU和写缓冲的集成CPU。
ARMv4:
当前应用最广泛的ARM指令集版本。
ARM7TDMI、ARM720T、ARM9TDMI、ARM940T、ARM920T、Intel的StrongARM等是基于ARMv4T版本。
ARMv5:
ARM9E-S、ARM966E-S、ARM1020E、ARM 1022E以及XScale是ARMv5TE的。
ARM9EJ-S、ARM926EJ-S、ARM7EJ-S、ARM1026EJ-S是基于ARMv5EJ的。
ARM10也采用。
其中后缀意义如下:
E:增强型DSP指令集。包括全部算法和16位乘法操作。
J:支持新的Java。
ARMv6:
采用ARMv6核的处理器是ARM11系列。
ARM1136J(F)-S基于ARMv6主要特性有SIMD、Thumb、Jazelle、DBX、(VFP)、MMU。
ARM1156T2(F)-S基于ARMv6T2 主要特性有SIMD、Thumb-2、(VFP)、MPU。
ARM1176JZ(F)-S基于ARMv6KZ 在 ARM1136EJ(F)-S 基础上增加M