Forum: Compiler & IDEs New Lib Nano für Cortex M4 kompilieren


von Christian J. (Gast)


Lesenswert?

Hallo,

Könnte mal jemand für Anfänger die Shell Aufrufe posten, welche ich 
eingeben muss, damit der Source Code auf einem PC für einen STM32F4 
(Cortex M4) Core lauffähig wird? Ich benutze da nur softfp, damit ich 
zum F100 kompatibel bleibe.

Gibt soviele Arme... seufz, da blickt echt keiner mehr durch :-(

‘arm2’, ‘arm250’, ‘arm3’, ‘arm6’, ‘arm60’, ‘arm600’, ‘arm610’, ‘arm620’, 
‘arm7’, ‘arm7m’, ‘arm7d’, ‘arm7dm’, ‘arm7di’, ‘arm7dmi’, ‘arm70’, 
‘arm700’, ‘arm700i’, ‘arm710’, ‘arm710c’, ‘arm7100’, ‘arm720’, 
‘arm7500’, ‘arm7500fe’, ‘arm7tdmi’, ‘arm7tdmi-s’, ‘arm710t’, ‘arm720t’, 
‘arm740t’, ‘strongarm’, ‘strongarm110’, ‘strongarm1100’, 
‘strongarm1110’, ‘arm8’, ‘arm810’, ‘arm9’, ‘arm9e’, ‘arm920’, ‘arm920t’, 
‘arm922t’, ‘arm946e-s’, ‘arm966e-s’, ‘arm968e-s’, ‘arm926ej-s’, 
‘arm940t’, ‘arm9tdmi’, ‘arm10tdmi’, ‘arm1020t’, ‘arm1026ej-s’, ‘arm10e’, 
‘arm1020e’, ‘arm1022e’, ‘arm1136j-s’, ‘arm1136jf-s’, ‘mpcore’, 
‘mpcorenovfp’, ‘arm1156t2-s’, ‘arm1156t2f-s’, ‘arm1176jz-s’, 
‘arm1176jzf-s’, ‘generic-armv7-a’, ‘cortex-a5’, ‘cortex-a7’, 
‘cortex-a8’, ‘cortex-a9’, ‘cortex-a12’, ‘cortex-a15’, ‘cortex-a17’, 
‘cortex-a35’, ‘cortex-a53’, ‘cortex-a57’, ‘cortex-a72’, ‘cortex-r4’, 
‘cortex-r4f’, ‘cortex-r5’, ‘cortex-r7’, ‘cortex-m7’, ‘cortex-m4’, 
‘cortex-m3’, ‘cortex-m1’, ‘cortex-m0’, ‘cortex-m0plus’, 
‘cortex-m1.small-multiply’, ‘cortex-m0.small-multiply’, 
‘cortex-m0plus.small-multiply’, ‘exynos-m1’, ‘qdf24xx’, ‘marvell-pj4’, 
‘xscale’, ‘iwmmxt’, ‘iwmmxt2’, ‘ep9312’, ‘fa526’, ‘fa626’, ‘fa606te’, 
‘fa626te’, ‘fmp626’, ‘fa726te’, ‘xgene1’.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Nun, cortex-m4 steht doch mit drin in der Liste, was genau fehlt dir?

-mthumb nicht vergessen.

Muss es eigentlich unbedingt die "nano" sein?  Die meisten M4s haben
doch ausreichend Reserven, dass man die full-featured version nehmen
kann.

von Christian J. (Gast)


Lesenswert?

Jörg W. schrieb:
> Nun, cortex-m4 steht doch mit drin in der Liste, was genau fehlt dir?

Alle Bash Befehle zum Kompilieren :-)

Naja, die Nano ist klein, handlich, praktisch. Und meine Nano ist von 
2014, etwas alt.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Christian J. schrieb:
> Alle Bash Befehle zum Kompilieren :-)

Weiß ich auch nicht, haben die denn keinen configure-Script wie die
normale Newlib?

> Naja, die Nano ist klein, handlich, praktisch.

Ja, schon, aber auf den CM4s, die ich bislang in den Fingern hatte,
bin ich auch mit der regulären Variante noch nie auch nur annähernd
an die Grenzen des vorhandenen Flashs gekommen.  Für Cortex-M0[plus]
fände ich das schon eher interessant.

Was mir nicht ganz klar ist: bekommt man denn mit der nano-Version
die Chance, floating-point printf() bei Bedarf noch linken zu können?
Es by default nicht dabei zu haben, genügt sicher in vielen Fällen,
es permanent nicht verfügbar zu haben, wäre für mich ein k.o.-Kriterium.

von Christian J. (Gast)


Lesenswert?

Jörg W. schrieb:
> Was mir nicht ganz klar ist: bekommt man denn mit der nano-Version
> die Chance, floating-point printf() bei Bedarf noch linken zu können?

Hi,

bei mir kann ich das in der IDE ankreuzen, dass ich die dazu gelinkt 
haben will. Das wird vermutlich dann in irgendeinen Parameter umgesetzt. 
Ich kann den Aufruferstring leider nicht sehen.

von Christian J. (Gast)


Lesenswert?

Jörg W. schrieb:
> bin ich auch mit der regulären Variante noch nie auch nur annähernd
> an die Grenzen des vorhandenen Flashs gekommen.

Tja, dieses Thema beshcäfigt mich grad auch bei meiner Bastelei. 56k 
habe ich voll von 1MB und egal was ich noch alles dazuschreibe, es wird 
kaum mehr. Fliesskomma, Sinus, Cosinus, Wurzel, alles schon drin.

Inzwischen bin ich jedenfalls davon ab "optimierten Code" zu schreiben, 
der zwar super schnell läuft, möglichst viele Variablen vermeidet aber 
umso unleserlicher ist. Hauptsache ich blicke da später auch noch durch. 
Und bei 168 Mhz spielt es auch keine Rolle bei einer Wetterstation wie 
schnell da was ausgeführt wird, wenn die CPU nur jede Minute einmal aus 
dem Tiefschlaf aufwacht.

Das waren noch Zeiten, wo 2048 Byte ROM für alles herhalten mussten.....

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Christian J. schrieb:
> Inzwischen bin ich jedenfalls davon ab "optimierten Code" zu schreiben,
> der zwar super schnell läuft, möglichst viele Variablen vermeidet aber
> umso unleserlicher ist.

Würde sowieso nichts helfen.  Zwischenvariable etc. optimiert der
Compiler genauso schön raus, das musst du nicht für ihn erledigen.

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.