Forum: Mikrocontroller und Digitale Elektronik STM32F4 DSP-Library __FPU_PRESENT Error


von mh (Gast)


Lesenswert?

Hallo zusammen,

ich versuche die CMSIS DSP_Lib in Eclipse mit der OpenSTM32-Toolchain 
für einen STM32F4 einzubinden.
Hab die Library in meinen Projektordner kopiert und die Header- und 
Source-Pfade in den Properties ergänzt.
Hab das Symbol ARM_MATH_CM4 definiert.
Danach wurde ein Error generiert, dass __FPU_PRESENT nicht gesetzt sei.
Habs nun per Hand definiert und es kompiliert soweit. Es kommt jetzt nur 
noch die Warnung: "__FPU_PRESENT" redefined
da es ja im Header für den STM definiert wird.
Gibts hierfür eine andere Lösung, als das per Hand zu definieren?
Meine Vermutung ist, dass der Preprozessor zuerst über die core_cm4.h 
drüberläuft und dann erst über die stm32f4xx.h.
Kann man das irgendwie einstellen?

von Sebastian E. (sbe_15)


Lesenswert?

Schau mal an die Stelle an der "__FPU_PRESENT redefined" angemeckert 
wird.
Vermutlich wird "__FPU_PRESENT" abhängig vom Controller-Typ definiert, 
der per Preprozessor-Define angegeben wird.

von mh (Gast)


Lesenswert?

Genau, das wird es auch.
Nur wie kann ich bei Eclipse dem Preprozessor mitteilen, dass der zuerst 
die STM-Header bearbeitet?

von mh (Gast)


Lesenswert?

Keiner ne Idee?

von Sghuiopbnf (Gast)


Lesenswert?

>Nur wie kann ich bei Eclipse dem Preprozessor mitteilen, dass der zuerst
>die STM-Header bearbeitet?

Gar nicht.
Das hängt allein von der Reihenfolge der #includes ab.

von mh (Gast)


Lesenswert?

Gibt es in Eclipse irgendwie die Möglichkeit die Reihenfolge 
festzulegen, in welcher Source-Datei der Preprozessor startet? Wenn 
dieser nämlich in einer Datei startet, in welcher zuerst arm_math.h 
inkludiert wird, dann geht es logischerweise mit dem __FPU_PRESENT 
nicht. Ich möchte, dass der in der main.c mit inkludieren anfängt. Weiß 
da jemand was?

von Vincent H. (vinci)


Angehängte Dateien:

Lesenswert?

Einfach in den Settings einfügen.

von mh (Gast)


Lesenswert?

mh schrieb:
> Danach wurde ein Error generiert, dass __FPU_PRESENT nicht gesetzt sei.
> Habs nun per Hand definiert und es kompiliert soweit. Es kommt jetzt nur
> noch die Warnung: "__FPU_PRESENT" redefined
> da es ja im Header für den STM definiert wird.
> Gibts hierfür eine andere Lösung, als das per Hand zu definieren?

Vincent H. schrieb:
> Einfach in den Settings einfügen.

Damit kompiliert es zwar, es generiert nur ein Warning (s.o.).
Gibt es dafür keine "elegantere" Lösung?

von Vincent H. (vinci)


Lesenswert?

Du arbeitest hier mit einem 40(?) Jahre alten Tool. Viel "eleganter" als 
via GUI Unterstützung und automatisch generiertem Make File wirds leider 
nicht.

von mh (Gast)


Lesenswert?

Ich meinte "eleganter" in dem Sinne, dass es für das Problem mit dem 
__FPU_PRESENT eine Lösung gibt, die kein Warning generiert.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.