Forum: Mikrocontroller und Digitale Elektronik ARM: sehr schlanke libc


von greg (Gast)


Lesenswert?

Moin,

ich benutze die newlib-nano. Ist ja eigentlich ein ganz gutes Stück 
Software, ein guter Kompromiss zwischen Konformität zum Standard und 
Codegröße, passende für typische (32+ KB Flash) ARM-MCUs.

Aber wie schauts mit ganz kleinen Dingern aus, die nur 8-16 KB Flash und 
sehr wenig RAM haben? Hat sich mal jemand damit beschäftigt, die newlib 
noch weiter zu entschlacken oder gibt's vielleicht eine frei verfügbare, 
noch schlankere libc? Keil & co haben ja anscheinend sowas.

Ich hab mir jetzt notdürftig damit beholfen, ein Minimal-printf selbst 
einzubinden. Das ist aber keine tolle Lösung und bringt nix, wenn man 
andere Funktionen aus der printf/scanf-Familie nutzt.

von crt (Gast)


Lesenswert?

Schau dir openwrt an.

von greg (Gast)


Lesenswert?

Erkläre mir doch einmal, warum die Frage so dumm sein soll...

von Schaulus Tiger (Gast)


Lesenswert?

> Das bringt doch nichts...

doch, wenn du den Kern von printf erstmal hast, kosten die restlichen 
Funktionen nur noch ein paar Byte. Außerdem möchtest du wahrscheinlich 
malloc & friends vermeiden. Damit brauchst du für viele 
newlib-Funktionen einen Ersatz. Irgendwann (ziemlich bald?) geht selbst 
schreiben dann schneller als Ersatz zu suchen. Du findest ja für jede 
Funktion ein paar offene Quellen.

Wenn "kompakt" wichtiger ist als Standard-Konformität und Schönheit des 
Quelltextes (jaja, das Auge des Betrachters...): schau dir mal die 
dietlibc an.

von Lothar (Gast)


Lesenswert?


von greg (Gast)


Lesenswert?

Schaulus Tiger schrieb:
>> Das bringt doch nichts...
>
> doch, wenn du den Kern von printf erstmal hast, kosten die restlichen
> Funktionen nur noch ein paar Byte. Außerdem möchtest du wahrscheinlich
> malloc & friends vermeiden. Damit brauchst du für viele
> newlib-Funktionen einen Ersatz. Irgendwann (ziemlich bald?) geht selbst
> schreiben dann schneller als Ersatz zu suchen. Du findest ja für jede
> Funktion ein paar offene Quellen.
>

Tja, und vielleicht hatte irgendjemand schon einmal die gleiche Idee... 
ich möchte ungern das Rad neu erfinden.

> Wenn "kompakt" wichtiger ist als Standard-Konformität und Schönheit des
> Quelltextes (jaja, das Auge des Betrachters...): schau dir mal die
> dietlibc an.

So weit ich das überblicken kann ist die dietlibc nicht schlanker als 
newlib-nano, im Gegenteil, das Ding scheint viel fetter zu sein. Aber 
naja, es ist auch von fefe...

von Uwe Bonnes (Gast)


Lesenswert?

greg schrieb:
> Moin,
>
> Aber wie schauts mit ganz kleinen Dingern aus, die nur 8-16 KB Flash und
> sehr wenig RAM haben? Hat sich mal jemand damit beschäftigt, die newlib
> noch weiter zu entschlacken oder gibt's vielleicht eine frei verfügbare,
> noch schlankere libc? Keil & co haben ja anscheinend sowas.
>
Hier die Groesse einiger STM32 Files, die ich mit Ethernut aus dem SVN 
Baum erzeugt habe:
-rwxr-xr-x 1 37856 20. Jul 19:29 ./cps_f373/cps_f373.bin
-rwxr-xr-x 1 23980 14. Sep 16:06 ./cps_f373/cps_stm32.bin
-rwxr-xr-x 1 13048  1. Sep 00:33 ./f3_discovery/f3_discovery.bin
-rwxr-xr-x 1 24696 28. Jun 13:38 ./f3discovery_lcd_str7565r/lcd_test.bin
-rwxr-xr-x 1  8812 12. Okt 18:46 ./l1_lcd/l1_lcd.bin

Teilweise da auch Bin Files mit -O0 dabei.

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.