您可以从多个地方组合这些信息。首先,您必须确定您正在查看的 ARM 处理器,然后找到该处理器的 TRM。在这种情况下,Cortex-M4 TRM 可在此处获得:
http://infocenter.arm.com/help/topic/com.arm.doc.ddi0439d/DDI0439D_cortex_m4_processor_r0p1_trm.pdf
这告诉您(第 7 节)Cortex-M4 中的 FPU 是:
ARMv7-M 浮点扩展 (FPv4-SP) 的单精度变体的实现。
查看 ARMv7m 架构参考手册(可在http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0403c/index.html获得许可),我们可以了解第 A1.3 节中的浮点架构扩展。在这里,我们还可以找到以下建议:
根据为 ARMv7-A 和 ARMv7-R 架构配置文件定义的 VFP 实现选项,ARMv7-M 浮点扩展的完整特征是 FPv4-SP-D16-M。一些软件工具可能需要这种特性。
GCC 不会将“m”添加到特征的末尾,因此我们可以使用选项 -mfpu=fpv4-sp-d16。
对于 VFPv4-d16 的含义,我们必须查看 ARMv7a 架构参考手册(在此处的许可证后面http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0419c/index. html ) 其中 A1.4.1 节给出了这个定义:
VFPv4 可以使用 32 或 16 个双字寄存器来实现,请参阅第 A2-56 页的高级 SIMD 和浮点扩展寄存器。必要时,使用以下术语区分这些实施选项:
• VFPv4-D32 或 VFPv4U-D32,用于 32 个寄存器实现
• VFPv4-D16 或 VFPv4U-D16,用于 16 个寄存器实现。
在使用术语 VFPv4 的地方,它涵盖了这两个选项。