Wie konfiguriere ich Coide für die Verwendung der DSP-Bibliothek für STM32f3?

Ich habe Probleme, die von ST bereitgestellte DSP-Bibliothek für mein STM32f3-Discovery-Board zu verwenden. Ich verwende Coide. Ich begann damit, arm_math.h einzufügen, da alle DSP-Bibliotheksdateien darauf verweisen.

Ich erhalte diese Fehler häufig (sie befinden sich alle in der Datei arm_math.h).

unbekannter Typname ' INLINE' erwartet '=', ',', ';', 'asm' oder '__attribute ' vor 'clip_q63_to_q31'

Ich suche jetzt seit fast zwei Tagen und kann keine brauchbare Lösung finden. Als Compiler verwende ich derzeit Yagarto.

Antworten (2)

INLINE ist eine Anweisung an den Compiler, eine Funktion zu „inlinen“, d. h. überall dort, wo er einen Funktionsaufruf sieht, kopiert er den Code für die Funktion, anstatt wie bei einer normalen Funktion zu einer einzelnen Kopie des Codes zu springen.

Dadurch wird der Gesamtcode größer, im Austausch für eine wesentlich schnellere Ausführung von INLINE-Funktionen (da kein Aufruf-/Rückgabe-Overhead vorhanden ist).

Ich habe den Yagarto-Compiler noch nie verwendet, aber ich vermute, dass er INLINE entweder nicht unterstützt (unwahrscheinlich) oder dass er eine andere Syntax hat (sehr wahrscheinlich). Wahrscheinlich eine ähnliche Geschichte für die anderen Fehler, die Sie sehen.

Versuchen Sie stattdessen, GCC zu verwenden (das INLINE erkennt und wahrscheinlich der Compiler ist, für den die ST-Bibliotheken geschrieben wurden); iirc gibt es einen Link zu einem "aktuellen Build", der auf der CooCox-Website leicht zu finden ist.

Eigentlich habe ich Arm GCC verwendet und bin dann zu YAGARTO gewechselt, als ich diesen Fehler hatte.
@Med.ali seltsam ... sagt es in der DSP-Bibliothek etwas darüber aus, für welchen Compiler es geschrieben wurde? Haben Sie versucht, die INLINE-Verweise zu löschen/kommentieren?

Eigentlich habe ich das gelöst, indem ich diese Zeile am Anfang von ARM_math.h hinzugefügt habe:

#define ARM_MATH_CM4

Als ich #define ARM_MATH_CM4 hinzufügte, trat #error "Compiler generiert FPU-Anweisungen für ein Gerät ohne FPU (check __FPU_PRESENT)" auf...