1

我正在尝试将 C++ 应用程序与 FreeRTOS 一起使用。我开始了解这篇文章:- https://sourceforge.net/p/freertos/discussion/382005/thread/5d5201c0但我不确定如何以及在何处添加此 TaskCPP.h 文件。

现在我有像这样的非常简单的 main.cpp 文件。

int main(void)
{
//Set priority bits to preempt priority
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
for( ;; );
return 0;
}

这给了我一个错误:-

/usr/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/bin/ld: error: STM32F4_FreeRTOS.axf uses VFP register arguments, /usr/bin/../lib/gcc/arm-none-eabi/4.7.4/libgcc.a(unwind-arm.o) does not

/usr/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /usr/bin/../lib/gcc/arm-none-eabi/4.7.4/libgcc.a(unwind-arm.o)

我不确定设置有什么问题。

4

1 回答 1

1

该错误与您的工具链有关。您的目标三元组表示,一个更通用的工具链,但 FreeRTOS 似乎使用更具体的 ARM 功能。您可能想阅读这个问题:ARM 编译错误,VFP 注册使用的可执行文件,而不是目标文件

解决方法:调用编译器-print-multi-lib并检查 FreeRTOS 所需的库是否可用。如果是,您必须启用它们。如果不是,您将不得不使用另一个工具链。

于 2014-01-04T18:56:55.713 回答