2.1.55. --fpu=name

此选项使您可以确定目标 FPU 体系结构。

如果指定此选项,则在某些情况下(例如,使用 --cpu 选项时),它将覆盖显示在命令行中的所有隐式 FPU 选项。

若要获取 FPU 体系结构的完整列表,请使用 --fpu=list 选项。

语法


--fpu=name

其中 name 是下列选项之一:

none

选择无浮点选项。 这将使用无浮点代码。 如果代码包含 float 类型,则会生成错误。

vfpv3

选择符合 VFPv3 体系结构的硬件向量浮点单元。

vfpv2

选择符合 VFPv2 体系结构的硬件向量浮点单元。 如果指定了 --fpu=vfp,则此选项为缺省选项。

Note

如果在命令行中输入了 armcc --thumb --fpu=vfpv2,则编译器会尽可能多地使用 Thumb 指令集编译代码,但会将区分硬浮点的函数编译为 ARM 代码。 在这种情况下,预定义 __thumb 的值是不正确的。

如果用 --arm 选项为 ARM C 代码指定了 vfpvfpv2,则必须使用 __softfp 关键字确保将交互操作的 ARM 代码编译为使用软浮点链接。

softvfp

选择软浮点链接。 如果未指定 --fpu 选项或者选择了不带 FPU 的 CPU,则此选项为缺省选项。

在以前版本的 RVCT 中,如果指定了 --fpu=softvfp 和具有隐式 VFP 硬件的 CPU,则链接器会选择使用 VFP 指令实现软浮点调用的库。 但现在此行为已不再有效。 如果需要这一旧式行为,请使用 --fpu=softvfp+vfp

softvfp+vfpv2

选择浮点库,该库具有使用 VFP 指令的软浮点链接。 若要使系统上的 Thumb 代码与实现 VFP 单元的 ARM 代码进行交互操作,请选择此选项。

如果选择此选项,则:

  • --thumb 进行编译的行为与 --fpu=softvfp 类似,只不过前者与使用 VFP 指令的浮点库相链接。

  • --arm 编译的行为与 --fpu=vfpv2 类似,只不过前者为所有函数指定了软浮点链接。 这意味着函数传递及返回浮点参数和结果的方式与 --fpu=softvfp 相同,只不过前者是在内部使用 VFP 指令。

Note

如果用 --arm--thumb 选项为 C 代码指定了 softvfp+vfpv2,则应确保将交互操作的浮点代码编译为使用软浮点链接。

softvfp+vfpv3

选择浮点库,该库具有使用 VFPv3 指令的软浮点链接。 若要使系统上的 Thumb 代码与实现 VFPv3 单元的 ARM 代码进行交互操作,请选择此选项。

另请参阅

Copyright © 2007 ARM Limited. All rights reserved. ARM DUI 0348AC
Non-Confidential