mikrocontroller.net

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


Autor: mh (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Sebastian E. (sbe_15)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: mh (Gast)
Datum:

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

Autor: mh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Keiner ne Idee?

Autor: Sghuiopbnf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: mh (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Vincent Hamp (vinci)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Einfach in den Settings einfügen.

Autor: mh (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Vincent Hamp (vinci)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: mh (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.