Forum: Digitale Signalverarbeitung / DSP / Machine Learning CMSIS-Bibliotheksfunktionen mit Atmel Studio7 benutzen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Alex (haidanai)


Lesenswert?

Hallo,
ich verwende in einem Projekt den ATSAME53xx.
Der hat ja sogar Fließpunktarithmetik, die ich bis jetzt noch nie 
benutzt habe.
Was ist alles nötig um eine CMSIS-Funktion aufrufen zu können?
Muss man die FP-Einheit extra einschalten?

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Du brauchst die CMSIS nicht um die Fließkommaeinheit zu nutzen. Oder 
möchtest du die DSP-Funktionen der CMSIS nutzen?

Alex schrieb:
> Muss man die FP-Einheit extra einschalten?

Ja:
1
SCB->CPACR |= ((3UL << 10*2) |             /* set CP10 Full Access               */
2
                 (3UL << 11*2)  );           /* set CP11 Full Access               */

Wobei dein Startupcode das eventuell schon macht.

von Bauform B. (bauformb)


Lesenswert?

Alex schrieb:
> Muss man die FP-Einheit extra einschalten?

Man muss dem Compiler noch sagen, dass er die Hardware benutzen soll:
1
CFLAGS += -march=armv7e-m+fp -mfpu=fpv4-sp-d16 -mfloat-abi=hard
2
CFLAGS += -fsingle-precision-constant
wobei die zweite Zeile Geschmackssache ist. Ohne die muss man überall 
"1.0f" schreiben und wird ständig dran erinnert. Und printf() 
funktioniert nur für double, eine float Variable wird immer als double 
übergeben. Das kostet Zeit und Platz und wahrscheinlich eine lib, die 
man sonst nicht braucht.

Da gab's ein paar Beiträge dazu:
Beitrag "GCC Compiler Flags"

: Bearbeitet durch User
von Alex (haidanai)


Lesenswert?

Hallo,
Entschuldigung dass ich so lange nicht geantwortet habe.
>> Oder möchtest du die DSP-Funktionen der CMSIS nutzen?
Beides, vor allem aber die Digitalfilter aus der CMSIS-Bibliothek.
Im Compiler muss man wohl die CMSIS auch noch einschalten, oder reicht 
das übliche #include ? #include <cmsis.h> ?

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Alex schrieb:
> Im Compiler muss man wohl die CMSIS auch noch einschalten, oder reicht
> das übliche #include ? #include <cmsis.h> ?

Das ist eine ganz gewöhnliche Bibliothek, du musst die Header 
includieren (#include <arm_math.h>). Die .c Files musst du 
mitkompilieren. Wie das geht hängt von deiner IDE/Toolchain ab. Aber du 
musst natürlich auch die FPU aktivieren wie oben schon erwähnt.

von Alex (haidanai)


Lesenswert?

OK,
vielen Dank schon mal für die Infos.
Ich werde es die nächste Zeit mal ausprobieren.
Falls dann noch Fragen sind, melde ich mich nochmal.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

PS: In der Hersteller-IDE sollte es Projekt-Templates geben in denen das 
alles schon fertig eingerichtet ist. Ist bei den STM32 jedenfalls auch 
so.

von Alex (haidanai)


Lesenswert?

Ähh,
ich verwende ATSAM53E als Prozessor und Atmel Studio7 - wie erwähnt.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Alex schrieb:
> ich verwende ATSAM53E als Prozessor und Atmel Studio7 - wie erwähnt.

Hab ich so noch nicht benutzt, aber schau nach ob es da ein fertiges 
Projekt Setup dafür gibt.

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.