GCC Cortex-M4 -mfpu = vfpv4 vs. -mfpu = fpv4-sp-d16

时间:2015-03-08 02:40:39

标签: gcc floating-point arm cortex-m

我使用飞思卡尔K22(Cortex-M4F)与Kinetis Design Studio,其中包括一个GNU工具链。我尝试使用Invensense提供的仅二进制库,并使用GCC编译它,以便在Cortex-M4F上使用编译器的CPU选项" -mcpu = cortex-m4 -mthumb -mfloat-abi = hard -mfpu = vfpv4"

飞思卡尔工具链默认为" -mcpu = cortex-m4 -mthumb -mfloat-abi = hard -mfpu = fpv4-sp-d16"。当我尝试将我的程序与供应商二进制文件库链接时,我收到链接错误,如:

C:/freescale/kds_1.1.1/toolchain/bin /../ LIB / GCC /臂-NONE-EABI / 4.8.0 /../../../../臂-NONE-EABI /bin/ld.exe:error:./startup/startup.o使用VFP寄存器参数,22F_eval_spi_to_invensense_CHECKED_IN.elf不 C:/freescale/kds_1.1.1/toolchain/bin /../ LIB / GCC /臂-NONE-EABI / 4.8.0 /../../../../臂-NONE-EABI / bin中/ ld.exe:无法合并文件./startup/startup.o

的目标特定数据

我可以为-mfpu = vfpv4重建Kinetis平台库,但我仍然会收到链接错误,大概是因为其他Kinetis库是用 " -mfpu = fpv4-SP-D16"

由于两者都适用于带有FPU的Cortex-M4,因此vpfv4和fpv4-sp-d16的GCC生成代码之间是否存在实际差异?它们实际上是不兼容的,还是链接器过于迂腐?

0 个答案:

没有答案