通过一个简单的Google搜索,我发现Tiva C Launchpad的fpu版本是fpv4-sp-d16,但是哪个文档告诉了各种微控制器(tm4c123gh6pm,stm32f407,stm32f446re等)的fpu版本?
arm-none-eabi-gcc --print-multi-lib
提供了有关体系结构和abi的信息,但是对于特定的体系结构,未提及fpu版本。
答案 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处理器技术参考手册”提供了此信息
关于fpu的7.1节说:“ Cortex-M4 FPU是ARMv7-M浮点扩展(FPv4-SP)的单精度变体的实现”。
还可以将32个单精度寄存器组合为16个双精度寄存器(d16),因此也就是fpv4-sp-d16