GCC编译ARM篇

ARM 平台下GCC编译相关介绍,待补充

ARM处理器架构

ARM处理器架构,通过选项-march指定,如-march=armv7-a,常见的有

  1. armv5te
    arm9系列使用该架构
  2. armv6
    arm11系列使用该架构
  3. armv7-a
    cortex-a系列使用该架构,如cortex-a5、a7、a8、a9、a12、a15
  4. armv8
    cortex-a系列使用该架构,如cortex-a53、a57、a72

指令集

指令集,通过选项-m指定,如-mthumb,常见的有

  1. thumb
    16位指令集,它将32位arm指令的压缩成16位的指令编码方式,节省代码存储空间,实现低功耗
  2. thumb-2
    16位/32位指令集,对thumb指令集进行了扩充,增加了一些32位指令,改善thumb指令集的性能
  3. arm
    32位指令集, 兼容所有arm架构,性能高

浮点类型

浮点运算的类型,通过选项-mfloat-abi指定,如-mfloat-abi=hard,有三种类型

  1. soft
    使用软浮点库进行浮点运算,不使用硬浮点单元,适用于不含FPUCPU
  2. softfp
    使用硬浮点单元进行浮点运算,生成硬浮点指令,调用接口的规则和soft兼容
  3. hard
    使用硬浮点单元进行浮点运算,生成硬浮点指令,与softfp的区别在于调用接口的规则不同

硬浮点指令的类型,通过选项-mfpu指定,如-mfpu=neon,常用的有两种

  1. vfp
    其中vfpv2应用于armv5te, armv6架构中的浮点计算指令集,vfpv3vfpv4应用于部分armv7a架构中的浮点计算指令集
  2. neon
    应用于cortex-a系列处理器,性能好

About me

forthebadge

Creative Commons License This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。