Probleme beim Übersetzen

Gast #5172596
Lesenswert?

Hallo zusammen,

ich habe versucht folgendes Tutorial versucht auf meinem Nucleo Board 
zum Laufen zu bekommen. Darauf ist ein STM32F429ZI.

https://www.carminenoviello.com/2016/01/22/getting-started-stm32-nucleo-f746zg/

Nun habe ich es versucht das erste Mal zu übersetzen allerdings bekomme 
ich da einen Fehler beim Übersetzen:

Building file: ../system/src/cmsis/system_stm32f429.c
Invoking: GNU ARM Cross C Compiler
arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=hard 
-mfpu=fpv4-sp-d16 -Og -fmessage-length=0 -fsigned-char 
-ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall 
-Wextra  -g3 -DDEBUG -DOS_USE_SEMIHOSTING -DTRACE 
-DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F429xx -I"../include" 
-I"../system/include" -I"../system/include/cmsis" 
-I"../system/include/stm32f429" -I"../system/include/stm32f4xx" 
-I"../system/include/cmsis/device" 
-I"../Middlewares/Third_Party/LwIP/src/include" 
-I"../Middlewares/Third_Party/LwIP/system" 
-I"../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F" 
-I"../Middlewares/Third_Party/FreeRTOS/Source/include" 
-I"../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS" 
-I"../Middlewares/Third_Party/LwIP/src/include/lwip" 
-I"../Middlewares/Third_Party/LwIP/src/include/lwip/apps" 
-I"../Middlewares/Third_Party/LwIP/src/include/lwip/priv" 
-I"../Middlewares/Third_Party/LwIP/src/include/lwip/prot" 
-I"../Middlewares/Third_Party/LwIP/src/include/netif" 
-I"../Middlewares/Third_Party/LwIP/src/include/netif/ppp" 
-I"../Middlewares/Third_Party/LwIP/src/include/netif/ppp/polarssl" 
-I"../Middlewares/Third_Party/LwIP/src/include/posix" 
-I"../Middlewares/Third_Party/LwIP/src/include/posix/sys" 
-I"../Middlewares/Third_Party/LwIP/system/arch" -std=gnu11 -MMD -MP 
-MF"system/src/cmsis/system_stm32f429.d" 
-MT"system/src/cmsis/system_stm32f429.o" -c -o 
"system/src/cmsis/system_stm32f429.o" 
"../system/src/cmsis/system_stm32f429.c"
In file included from ../system/include/cmsis/stm32f429.h:147:0,
                 from ../system/src/cmsis/system_stm32f429.c:40:
../system/include/cmsis/core_cm4.h:153:8: error: #error "Compiler 
generates FPU instructions for a device without an FPU (check 
__FPU_PRESENT)"
       #error "Compiler generates FPU instructions for a device without 
an FPU (check __FPU_PRESENT)"
        ^
make: *** [system/src/cmsis/system_stm32f429.o] Error 1
system/src/cmsis/subdir.mk:38: recipe for target 
'system/src/cmsis/system_stm32f429.o' failed

Es scheint eine Problem mit der FPU zugeben. Was ich nicht ganz verstehe 
ist, dass in der Datei stm32f429xx.h das __FPU_PRESENT afu 1U gesetzt 
wird aber trotzdem wird der Fehler ausgegeben. Der Code ist eigentlich 
ja auch nur durch cubeMX generiert worden.

Ich muss dazusagen ich bin totaler Anfänger was das Thema 
Microcontroller angeht und dachte mit dem Tutorial wirst du es schon 
irgendwie hinbekommen, aber man sieht es ja.

Hat jemand von euch einen Tip für mich?

Danke

Gruß
Markus
#5175248
Lesenswert?

Es sieht so aus, als ob in core_cm4.h erwartet wird, dass es eine FPU 
gibt, aber __FPU_PRESENT nicht gesetzt ist. Vermutlich includiert 
core_cm4.h deine Datei stm32f429xx.h mit dem define nicht. Es würde mich 
auch wundern, wenn eine allgemeine Datei, wie core_cm4.h einen Header 
für einen speziellen Controller includiert.

Ich würde das define __FPU_PRESENT direkt in den Compilereinstellungen 
machen, damit es dann auch allen Dateien bekannt ist.

Unter Eclipse machst du das unter:
C/C++Build->Settings->CrossARM C/C++ Compiler->Preprocessor
Dort fügst du dann unter Defined symbols __FPU_PRESENT=1 ein. Am besten 
du machst es gleich beim C und C++ Compiler.

Wenn du dann baust müsste deine Kommandozeile einen weitern Eintrag 
-D__FPU_PRESENT=1 haben.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren