Cortex-M 微控制器的 FPU 版本
FPU version for Cortex-M microcontrollers
通过简单的google搜索,我发现 Tiva C Launchpad 的 fpu 版本是 fpv4-sp-d16,但是哪个文档告诉了各种微控制器(tm4c123gh6pm、stm32f407、stm32f446re 等)的 fpu 版本.)?
arm-none-eabi-gcc --print-multi-lib
提供有关体系结构和 abi 的信息,但未针对特定体系结构提及 fpu 版本。
FPU是由ARM定义的,因此你需要查看ARM核心定义。请注意,FPU 对于内核是可选的,因此您需要检查芯片供应商的文档,了解它们是否包含 FPU。
对于Cortex-M4,可选的FPU是32位的,即单精度FP。请注意,这意味着双精度(即 64 位 FP)是在不使用 FPU 的情况下完成的。
Cortex-M7 定义包括一个可选的 64 位 FPU,可以执行单精度和双精度 FP 指令。
与使用的 FPU 正交的是您的程序使用的调用约定。与 FP 相关。基本上是指是否在普通ARM寄存器上传递FP寄存器中的函数参数。
arm社区给出了如下答案
"ARM Cortex‑M4 Processor Technical Reference Manual" 给出了这个信息
第 7.1 节关于 fpu 说 "The Cortex-M4 FPU is an implementation of the single precision variant of the ARMv7-M Floating Point Extension(FPv4-SP)"
此外,32 个单精度寄存器可以组合成 16 个双精度寄存器 (d16),因此 fpv4-sp-d16
通过简单的google搜索,我发现 Tiva C Launchpad 的 fpu 版本是 fpv4-sp-d16,但是哪个文档告诉了各种微控制器(tm4c123gh6pm、stm32f407、stm32f446re 等)的 fpu 版本.)?
arm-none-eabi-gcc --print-multi-lib
提供有关体系结构和 abi 的信息,但未针对特定体系结构提及 fpu 版本。
FPU是由ARM定义的,因此你需要查看ARM核心定义。请注意,FPU 对于内核是可选的,因此您需要检查芯片供应商的文档,了解它们是否包含 FPU。
对于Cortex-M4,可选的FPU是32位的,即单精度FP。请注意,这意味着双精度(即 64 位 FP)是在不使用 FPU 的情况下完成的。
Cortex-M7 定义包括一个可选的 64 位 FPU,可以执行单精度和双精度 FP 指令。
与使用的 FPU 正交的是您的程序使用的调用约定。与 FP 相关。基本上是指是否在普通ARM寄存器上传递FP寄存器中的函数参数。
arm社区给出了如下答案
"ARM Cortex‑M4 Processor Technical Reference Manual" 给出了这个信息
第 7.1 节关于 fpu 说 "The Cortex-M4 FPU is an implementation of the single precision variant of the ARMv7-M Floating Point Extension(FPv4-SP)"
此外,32 个单精度寄存器可以组合成 16 个双精度寄存器 (d16),因此 fpv4-sp-d16