Okay, ich habe die "project_templates.xml" von Hand geändert, das
CMSIS_4 taucht dort an drei Stellen auf.
Dann habe ich eine neue Solution erstellt und jetzt wird CMSIS 5
verwendet.
Das muss doch aber noch anders gehen??
Naja, mein Projekt compiliert zwar jetzt komplett ohne Warnungen durch
und ich musste dafür nur zwei Mal "sam.h" in <SAMC.h> ändern.
Optimierungslevel ist 2, wie auch im Atmel Studio 7.
Enable All Warnings: Yes
Enforce ANSCI Checking: Yes
In AS7 habe ich -Wall, -Wextra und -pedantic an.
Der Ausgabe vom Build nach ist das im ES in etwa das gleiche.
Nur, das was aus dem ES fällt läuft noch nicht, ist auch etwas kleiner
als das Programm aus dem AS7:
AS7: 17800 bytes
ES: "14.6KB"
Hmm, CMSIS, zwei Funktionen die ich benötige sind NVIC_SetPriority() und
NVIC_EnableIRQ() - aber nur wenn ich den SPI per DMA bediene.
Also DMA per Define ausgeschaltet, ES: "14.5KB" und funktioniert.
-> Die "project_templates.xml" von Hand zu ändern war so für sich wohl
nicht besonders erfolgreich.
Wenn das schon "läuft", schauen wir mal nach der Ausführungszeit.
AS7 / GCC 6.3.1 : 395µs
ES / GCC "arm-8-2019-q3-update : 400µs
Hmm, okay, das ist eher kein Grund zum Umsteigen.
Edit: ES mit CMSIS 4: 391µs und "13.6 KB"
Seltsam, vor allem ist in der ausgemessenen Funktion überhaupt nichts
drin was auf CMSIS zugreifen sollte.
Mit DMA und CMSIS_4 läuft das Programm auch nicht.
-> wo auch immer der Fehler ist... grr
Edit2: ach so, mit DMA ist die Funktion nur 142µs unterwegs, das ist
etwa 230 Mal weniger warten auf den SPI..