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
系列处理器,性能好