ARM 平台下GCC编译相关介绍,待补充
ARM处理器架构
ARM处理器架构,通过选项-march指定,如-march=armv7-a,常见的有
- armv5te- arm9系列使用该架构
- armv6- arm11系列使用该架构
- armv7-a- cortex-a系列使用该架构,如- cortex-a5、a7、a8、a9、a12、a15
- armv8- cortex-a系列使用该架构,如- cortex-a53、a57、a72
指令集
指令集,通过选项-m指定,如-mthumb,常见的有
- thumb
 16位指令集,它将32位arm指令的压缩成16位的指令编码方式,节省代码存储空间,实现低功耗
- thumb-2
 16位/32位指令集,对- thumb指令集进行了扩充,增加了一些32位指令,改善- thumb指令集的性能
- arm
 32位指令集, 兼容所有- arm架构,性能高
浮点类型
浮点运算的类型,通过选项-mfloat-abi指定,如-mfloat-abi=hard,有三种类型
- soft
 使用软浮点库进行浮点运算,不使用硬浮点单元,适用于不含- FPU的- CPU
- softfp
 使用硬浮点单元进行浮点运算,生成硬浮点指令,调用接口的规则和- soft兼容
- hard
 使用硬浮点单元进行浮点运算,生成硬浮点指令,与- softfp的区别在于调用接口的规则不同
硬浮点指令的类型,通过选项-mfpu指定,如-mfpu=neon,常用的有两种
- vfp
 其中- vfpv2应用于- armv5te, armv6架构中的浮点计算指令集,- vfpv3和- vfpv4应用于部分- armv7a架构中的浮点计算指令集
- neon
 应用于- cortex-a系列处理器,性能好
