Я пытаюсь использовать приложение 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)
Я не уверен, что не так с настройками.
Эта ошибка связана с вашей цепочкой инструментов. Ваша целевая тройка указывает на более общую цепочку инструментов, но FreeRTOS, похоже, использует более конкретные функции ARM. Вы можете прочитать этот вопрос: Ошибка компиляции ARM, зарегистрированный VFP используется исполняемым файлом, а не объектным файлом
В качестве обходного пути: вызов вашего компилятора с -print-multi-lib
и проверьте, доступны ли библиотеки, необходимые для FreeRTOS. Если они есть, вам нужно их включить. Если это не так, вам придется использовать другую цепочку инструментов.
Других решений пока нет …