适用于Cortex-M微控制器的FPU版本

时间:2019-04-29 03:44:23

标签: arm stm32 cortex-m fpu

通过一个简单的Google搜索,我发现Tiva C Launchpad的fpu版本是fpv4-sp-d16,但是哪个文档告诉了各种微控制器(tm4c123gh6pm,stm32f407,stm32f446re等)的fpu版本?

arm-none-eabi-gcc --print-multi-lib

提供了有关体系结构和abi的信息,但是对于特定的体系结构,未提及fpu版本。

2 个答案:

答案 0 :(得分:4)

FPU由ARM定义,因此您需要查看ARM内核定义。请注意,FPU对于内核是可选的,因此您确实需要检查芯片供应商的文档以了解它们是否包含FPU。

对于Cortex-M4,可选的FPU为32位,即单精度FP。请注意,这意味着无需使用FPU就可以实现双精度(即64位FP)。

Cortex-M7定义包括一个可选的64位FPU,并且可以执行单精度和双精度FP指令。

所使用的FPU正交于您的程序使用的调用约定。与FP相关。基本上,这意味着是否在常规ARM寄存器上的FP寄存器中传递函数参数。

答案 1 :(得分:0)

手臂社区提出了以下答案

“ ARM Cortex‑M4处理器技术参考手册”提供了此信息

ARM Cortex-M4 TRM

关于fpu的7.1节说:“ Cortex-M4 FPU是ARMv7-M浮点扩展(FPv4-SP)的单精度变体的实现”。

还可以将32个单精度寄存器组合为16个双精度寄存器(d16),因此也就是fpv4-sp-d16