ARM 平台下GCC编译相关介绍,待补充
ARM处理器架构
ARM处理器架构,通过选项-march指定,如-march=armv7-a,常见的有
armv5tearm9系列使用该架构armv6arm11系列使用该架构armv7-acortex-a系列使用该架构,如cortex-a5、a7、a8、a9、a12、a15armv8cortex-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的CPUsoftfp
使用硬浮点单元进行浮点运算,生成硬浮点指令,调用接口的规则和soft兼容hard
使用硬浮点单元进行浮点运算,生成硬浮点指令,与softfp的区别在于调用接口的规则不同
硬浮点指令的类型,通过选项-mfpu指定,如-mfpu=neon,常用的有两种
vfp
其中vfpv2应用于armv5te, armv6架构中的浮点计算指令集,vfpv3和vfpv4应用于部分armv7a架构中的浮点计算指令集neon
应用于cortex-a系列处理器,性能好
